SQL - Data Definition Language
CREATE TABLE Statement
CREATE TABLE语句使用给定的名称、给定的属性名称和类型以及给定的逻辑一致性约束创建一个新的关系表.
属性类型包括:
VARCHAR(size) 可变长度字符串,最大大小65535字节。
CHAR(size) 固定长度字符串,最大大小255字节。
INTEGER 整数 范围为:[-2147483648, 2147483647]
REAL(M,D) 总数为M位,小数点后为D位的实数。
NUMBER(M) 存储精度为M位的整数。
NUMBER(M,D) 实数,总共有M位,小数点后有D位,存储精度精确。
DATE 期/时间,默认的输入格式t ‘DD-MON-YYYY’。
TIMESTAMP 时间戳,默认格式为 ‘DD-MON-YYYY HH.MI.SS.MMMMMM’。
举个例子:
CREATE TABLE DEPARTMENT(
name VARCHAR(50) NOT NULL,
code CHAR(5) NOT NULL,
total_staff_number NUMBER(2) NOT NULL,
chair VARCHAR(50) NULL,
budget NUMBER(9,1) NOT NULL,
CONSTRAINT dept_pkey PRIMARY KEY(name),
CONSTRAINT dept_ckey1 UNIQUE(code),
CONSTRAINT dept_ckey2 UNIQUE(chair)
CONSTRAINT dept_check1 CHECK (total_staff_number BETWEEN 1 AND 50) );
这代表了创建了一个表DEPARTMENT,这个表有以下属性:
- name : 主键,可变大小字符串,不超过50个字符,不能为空。
- code : 候选键,固定大小的字符串,精确为5个字符,不能为空。
- total staff : 员工总数,整数,范围在1到50之间,不能为空。
- chair : chaiperson,可变大小字符串,不超过50个字符,可选。
- budget : 实数,不超过9位,小数点后1位,不能为空。
第一部分 CREATE TABLE DEPARTMENT 是表格名称。
第二部分像name,code这样的叫做属性名称。
第三部分像 CHAR(5),VARCHAR(50) NOT NULL之类的叫做属性类型。
第四部分像CONSTRAINT dept_pkey PRIMARY KEY(name) 叫做主键约束(Primary key constraint)。
第五部分像下面这样的叫做候选键约束( Candidate key constraints)。
CONSTRAINT dept_ckey1 UNIQUE(code),
CONSTRAINT dept_ckey2 UNIQUE(chair),
最后这一部分给定范围的叫做域约束( Domain constraint).
CONSTRAINT dept_check1 CHECK (total_staff_number BETWEEN 1 AND 50)
DROP TABLE Statement
DROP TABLE语句永久删除关系表的内容并从数据库中删除其定义。
通过执行CREATE TABLE语句,可以将已删除的关系表重新创建为空表。
DROP TABLE DEPARTMENT PURGE;
要注意的是,表删除的顺序很重要,如果别的表有参考主表的外键,那么就先删外表后主表。
顺序不对就会报错!
ALTER TABLE Statement
ALTER TABLE语句永久地改变关系表的定义。
ALTER TABLE语句可以用于:
添加、删除列、修改列类型、添加、删除一致性约束、重命名关系表。
在表中添加一个属性:
ALTER TABLE DEPARTMENT ADD COLUMN category VARCHAR(20);
删除一个属性:
ALTER TABLE DEPARTMENT DROP COLUMN budget;
更改属性的类型:
ALTER TABLE DEPARTMENT MODIFY code CHAR(6) NOT NULL;
添加一个约束:
ALTER TABLE DEPARTMENT ADD CONSTRAINT dept_check2
CHECK (code = UPPER(code));
删除一个约束:
ALTER TABLE COURSE DROP CONSTRAINT course_fkey1;
重命名关系表:
ALTER TABLE DEPARTMENT RENAME TO NEWDEPARTMENT;
References
-
T. Connoly, C. Begg, Database Systems, A Practical Approach to Design, Implementation, and Management, Chapters 7.1, 7.2, 7.3 (except 7.3.5, 7.3.6) SQL: Data De?nition, Pearson Education Ltd, 2015.
-
D. Darmawikarta, Oracle SQL : A Beginner’s Tutorial Brainy Software Inc. First Edition: June 2014.