约束(Constraint)

NOT NULL约束(只能定义在列级上):

确保被约束的列所有记录都不能为空值。

指定约束的名字:

(ename varchar2(20)constraint emp_ename nn NOT NULL)

UNIQUE约束:

确保表中的某一列或者某几列组合的行数据必须唯一,每个表可以有多个unique约束,unique约束允许输入空值

指定约束的名字:

列级:(dname varchar2(20) contraint dept_d_uk unique)
表级:(dname varchar2(20) contraint dept_d_uk unique(dname))

PRIMARY KEY约束

主键约束,用来确保表中的某一列或者某几列组合的所有行数据必须唯一,并且确保作为主键的一部分的列不能为空,每个表只有一个主键

指定约束的名字:

列级:
(dname varchar2(20) contraint dept_dname_pk primary key)     
表级:(dname varchar2(20) contraint dept_d_pk primary key(dname))  

FOREIGN KEY约束:

1.确保相关联的两个字段的关系:

————外键列的值必须在引用列值的范围内,或者为空;
————外键参照的列必须是主键或者唯一键;

2.主键表主键值被外键参照时,主键记录不允许被删除
列级:(`constaint emp_deptno_fk references dept(deptno)`)      
 表级:(`constraint emp_deptno_fk foreign key (deptno) references dept(deptno) `)  

CHECK约束:

检查性约束,确保某个列的所有行数据都必须满足的条件
 列级:(`constaint emp_deptno_ck check(deptno between 10 and 99)`)   
 表级:(`constraint emp_deptno_ck check(deptno between 10 and 99)

追加约束
1.在emp表中的mgr上添加一个外键约束指示该列的值必须引用emp表中的empno值。

alter table emp add constraint  emp_mgr_fk
foreign key (mgr)
references emp (empno)

2.追加NOT NULL约束

alter table emp modify 
(column {contraint 约束名} not null)

删除约束
1.从emp表中删除emp_mgr_fk约束

alter table emp drop constraint emp_mgr_fk

2.删除dept表上的primary key约束,并且删除相关联的在emp表deptno上的foreign key约束

ALTER TABLE DEPT DROP PRIMARY KEY CASCADE(级联删除)

禁用约束

alter table 表名 disable constraint 约束名{cascade}

启用约束

alter table 表名 enable constraint 约束名

相关的数据字典
不行GGle

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1. 了解SQL 1.1 数据库基础 ​ 学习到目前这个阶段,我们就需要以某种方式与数据库打交道。在深入学习MyS...
    锋享前端阅读 4,853评论 0 1
  • 1、create table选项1、指定列选项:default、comment2、指定表选项:engine、aut...
    老头子_d0ec阅读 1,683评论 0 0
  • 上一次没写是上个月的24号,这一次也是,真的好巧。都是一天都在忙,累成狗,然后上床倒头就睡,忘了写。 要是以前的话...
    四横阅读 1,274评论 0 0
  • 独立生活,没人会永远为你遮风挡雨
    栀子wxz阅读 981评论 0 0
  • 我以为这是日久生情 却没想到你的一时新鲜 我以为只是我们没有迈出这一步 却没想到是你并没有想对我采取行动 完全是我...
    奶茶凉了不好喝阅读 1,105评论 0 0