语法格式:
创建数据库表的 SQL 命令格式如下:
CREATE [[GLOBAL] TEMPORARY] TABLE <表名定义> <表结构定义>;
应用举例
在 DMHR 模式下创建 CLASSES、STUDENTS 和 STUDY 表,表的字段要求见下表
① 创建 CLASSES 表:
SQL> CREATE TABLE dmhr.classes
(
classid NUMBER(4,0) PRIMARY KEY,
classname VARCHAR(20) NOT NULL,
startdate DATE NOT NULL,
enddate DATE NOT NULL
);
② 创建 STUDENTS 表:
SQL> CREATE TABLE dmhr.students
(
studentid VARCHAR(10) PRIMARY KEY,
name VARCHAR(20) NOT NULL,
birthday DATE NOT NULL
);
③ 创建 STUDY 表:
CREATE TABLE dmhr.study
(
studentid VARCHAR(10),
classid NUMBER(4,0),
studydate DATE NOT NULL,
CONSTRAINT studentid_fk FOREIGN KEY (studentid) REFERENCES dmhr.students(studentid),
CONSTRAINT classid_fk FOREIGN KEY (classid) REFERENCES dmhr.classes(calssid),
CONSTRAINT study_pk PRIMARY KEY (studentid, classid)
);
附加说明。
① 表至少要包含一个字段,在一个表中,各字段名不能相同。一张表中最多可以包含 2048 个字段。
② 当字段类型为 DATE 类型时,指定默认值时,格式如 DEFAULT DATE '2005-13-26',会对数据进行有效性检查。
③ 如果字段未指明 NOT NULL,也未指明子句>,则隐含为 DEFAULT NULL。
④ 如果完整性约束只涉及当前正在定义的列,则既可定义成列级完整性约束,也可以定义成表级完整性约束;如果完整性约束涉及该表的多个列,则只能在语句的后面定义成表级完整性约束。定义与该表有关的列级或表级完整性约束时,可以用 CONSTRAINT< 约束名>子句对约束命名,系统中相同模式下的约束名不得重复。如果不指定约束名,系统将为此约束自动命名。经定义后的完整性约束被存入系统的数据字典中,用户操作数据库时,由 DBMS 自动检查该操作是否违背这些完整性约束条件。