~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
开发工具与关键技术:Oracle sql*plus PLSQL Developer
撰写时间:2019年04月04日
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
约束是表级的强制规定,在创建表的时候定义约束,也可以在建完表之后通过ALTER TABLE语句添加或删除约束、有效化或无效化约束,但是不能对约束进行修改;约束有非空约束(NOT NULL)、唯一性约束(UNIQUE)、主键约束(PRIMARY KEY)、外键约束(FOREIGN KEY)和检查性约束(CHECK)五种;
外键约束(FOREIGN KEY):假如为某个列定义外键约束,则需要通过REFERENCES关键字指定一张外表作为父表,指定父表中的某个列(具有唯一性的列或主键)作为两张表连接的桥梁,而且定义了外键约束的这个列的值必须要在父表指定的列中存在,外键约束可以定义在表级或列级,如果未使用CONSTRAINT关键字为约束命名则系统会自动为约束命名;
例如: 先创建一个班级表,再创建一个学生表,指定班级表中的主键ID作为学生表中的外键ID;
create table ClassTable(
ClassId number(10) primary key,
ClassName varchar2(10)
)
定义在列级的写法:
create table StudentTable(
StudentId number(10) ,
StudentName varchar2 (10) ,
ClassId number(10) REFERENCES ClassTable(ClassId)
)
定义在表级的写法(需要指定定义外键约束的列):
create table StudentTable(
studentId number(10),
studentName char(10) ,
classId number(10),
CONSTRAINT stu_classId_Fk FOREIGN KEY
(classId) REFERENCES ClassTable(classId)
)