SQL之数据定义语言

二)数据定义语言
1.概述
SQL的数据定义功能是针对数据库三级模式结构的各种数据对象进行定义的。在标准SQL中主要包括表、视图、索引,在oracle中还包括触发器、游标、过程、程序包等。
标准sql语言中不支持对索引定义的操作和修改视图的操作,只能通过删除再创建的方法。在orale中可以通过ALTER VIEW进行视图修改。
2.语句详解
1)CREATE创建表、函数、视图
CREATE TABLE <表名>(<列名> <数据类型> [列级完整性约束]
[,<列名> <数据类型> [列级完整性约束]]...
[,<表级完整性约束>]);
CREATE TABLE ABC(a varchar2<10>,b char<10>);

CREATE VIEW <视图名>[(<列名>[,<列名>]...)]
AS<子查询>
[WITH CHECK OPTION]

CREATE [UNIQUE][CLUSTER] INDEX<索引名>
ON<表名>(<列名>[<次序>][,<列名>[<次序>]]...)
[TABLESPCAE tablespace_name];

2)ALTER改变表、函数
ALTER TABLE <表名>
[ADD <新列名><数据类型>[完整性约束]]
[DROP<完整性约束名>]
[MODIFY<列名><数据类型>]

3)DROP删除
DROP TABLE<表名>;
DROP VIEW<视图>;
DROP INDEX<索引>;

4)实例
【例1】创建一个名为IT_EMPLOYEES的表,它由编号EMPLOYEE_ID、名FIRST_NAME、姓LAST_NAME、邮箱EMAIL、电话号码PHONE_NUMBER、部门编号JOB_ID、薪资SALARY和部门经理编号MANAGER_ID八个属性组成。
create table IT_EMPLOYEES
(
EMPLOYEE_ID NUMBER(6) not null unique,
FIRST_NAME VARCHAR2(20),
LAST_NAME VARCHAR2(25) not null,
EMAIL VARCHAR2(25),
PHONE_NUMBER VARCHAR(20),
JOB_ID VARCHAR2(10),
SALARY NUMBER(8,2),
MANAGER_ID NUMBER(6)
);

【例2】建立程序员的视图PROG_EMPLOYEES(JOB_ID=’IT_PROG’),其中隐含了视图的列名.
create view prog_employees
as
select employee_id,first_name,last_name,email,phone_number,salary,manager_id
from it_employees
where job_id = 'IT_PROG';

【例3】执行下面的CREATE INDEX语句,创建索引:
CREATE INDEX IT_LASTNAME ON IT_EMPLOYEES(LAST_NAME);

【例4】将前文创建的视图PROG_EMPLOYEES删除.
DROP VIEW PROG_EMPLOYEES;

【例5】向IT_EMPLOYEES表中增加“雇员生日”列,其数据类型为日期型:
ALTER TABLE IT_EMPLOYEES ADD BIRTHDATE DATE;

【例6】将IT_EMPLOYEES表的MANAGER_ID字段改为8位:
ALTER TABLE IT_EMPLOYEES MODIFY MANAGER_ID NUMBER(8);

【例7】删除IT_EMPLOYEES表EMPLOYEE_ID字段的UNIQUE约束:
ALTER TABLE IT_EMPLOYEES DROP UNIQUE(EMPLOYEE_ID);

你可能感兴趣的:(sql)