Oracle中的建表约束

来源:互联网 发布:淘宝网触屏版首页 编辑:程序博客网 时间:2024/06/06 05:35

约束是表一级的限制
如果存在依赖关系,约束可以防止错误的删除数据
约束的类型:
NOT NULL
UNIQUE
PRIMARY KEY
FOREIGN KEY
CHECK

用户可以自定义约束,也可以使用Oracle Server的sys_cn格式命名约束
约束创建的时机:
创建表的时候,同时创建约束
表结构创建完成后
约束可以定义在列一级,或者是表一级
通过数据字典查看约束

非空约束 NOT NULL 保证列的值不能为空

唯一性约束 UNIQUE 保证列的值唯一

主键约束 PRIMARY KEY 将列设为主键

外键约束 FOREIGN KEY 将列设为外键
FOREIGN KEY: 在子表中,定义了一个表级的约束
REFERENCES: 指定表和父表中的列
ON DELETE CASCADE: 当删除父表时,级联删除子表记录
ON DELETE SET NULL: 将子表的相关依赖记录的外键值置为null

检查性约束 check
定义每一行记录所必须满足的条件
下面的表达式可以使用在check约束中:
引用CURRVAL, NEXTVAL, LEVEL, 和ROWNUM
调用SYSDATE, UID, USER, 和USERENV 函数
另一个表的查询记录

 create table student( sid number constraint student_PK primary key,sname varchar2(20) constraint student_name_notnull not null,gender varchar2(4) constraint student_gender check (gender in ('男','女')),email varchar2(40) constraint student_email_unique unique                constraint student_email_notnull not null,deptno number constraint student_FK references dept(deptno) ON DELETE CASCADE);