约束

作者: 李昱俊 | 来源:发表于2017-12-17 15:23 被阅读0次

not null

  • NOT NULL约束 :也叫非空约束,确保被约束列的所有行记录都不能为空值。

NOT NULL约束只能定义在在列级上。

create table emp2(
empno number(5),
ename varchar2(10) not null,
job varchar2(9),
mgr number(4),
hiredate date,
sal number(7,2),
comm number(7,2)
deptno number(7,2) constraint emp2_deptno_nn not null,
)

unique

  • UNIQUE约束:也叫唯一约束,用来确保表中的某一列或者某几列组合的所有行数据必须唯一,定义UNIQUE约束的列 (或列组合) 被称为唯一键。

  • 每个表可以有多个为UNIQUE约束。

create table dept2(
deptno number(2),
dname varchar2(14) constraint dept2_dname_uq unique,
loc varchar2(13),
)

定义在表级:

create table dept2(
deptno number(2),
dname varchar2(14),
loc varchar2(13),
constraint dept2_dname_uq unique(name)
)

primary key

  • PRIMARY KEY约束:主键约束,用来确保表中的某一列或者某几列组合的所有行数据必须唯一,并且确保作为主键一部分的列不能包含空值。
  • 每个表只能创建一个主键约束。
create table dept2(
deptno number(2) constraint dept_deptno_pk primary key,
dname varchar2(13),

)

定义在表级:

create table dept2(
deptno number(2),
dname varchar2(13),
 constraint dept_deptno_pk primary key(deptno)
)

foreign key

  1. FOREIGN KEY,也叫外键约束,外键确保了相关联的两个字段的关系:
  • 外键列的值必须在引用列值的范围内,或者为空;
  • 外键参照的是列必须是主键或者唯一键;

2.主键表主键值被外键表参照时,主键表记录不允许被删除。

create table empss(
empno number(4),
ename varchar2(10) constraint empss_ename_nn not null,
job varchar2(9),
deptno number(7,2) not null constraint empss_deptno_fk foreign key references dept (deptno),
sal number(7,2)
)
create table empss(
empno number(4),
ename varchar2(10) constraint empss_ename_nn not null,
job varchar2(9),
deptno number(7,2) not null ,
sal number(7,2),
constraint empss_deptno_fk foreign key(deptno) references dept (depyno) on delete cascade
)

check

create table empss(
empno number(4),
ename varchar2(10) not null,
deptno number(7,2) constraint empss_deptno_ck check(deptno between 10 and 99),
sal number (7,2)
)

追加约束

  • 追加foreign key约束

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

alter table emp 
add constraint emp_mgr_fk foreign key(mgr) references emp(empno)
  • 追加 not null
alter table emp
modify(empno constraint emp_empno_nn not null )

删除约束

  • 例:从emp表中删除emp_mgr_fk约束
alter table emp 
drop constraint emp_mgr_fk(约束名)
  • 例:删除dept表上的PRIMARY KEY约束,并且删除相关联的在emp表deptno上的FOREIGN KEY约束;
alter table dept
drop primary key cascade

约束启用与禁用

  • 禁用
alter table 表名 disable constraint 约束名 cascade

应用CASCADE选项禁用相依赖的外键约束

  • 启用
alter table 表名 enable constraint 约束名

相关文章

  • mysql约束

    1, mysql 不支持外键约束 ,条件约束约束分为列级约束,primary 主键约束check 条件约束for...

  • 2018-11-20 mysql 表约束

    知识点一: 表约束 非空约束,唯一约束,自增长,默认约束,主键约束,外键约束 1 not null 非空约束 例子...

  • mysql 约束

    mysql 中常见的约束: 默认约束 非空约束 主键约束 唯一约束 外键约束 自增长约束 顾命思议,主要讲几个容易...

  • MySQL约束简介

    约束能保证数据的完整性和一致性。约束类型:主键约束、唯一约束、非空约束、默认约束、外键约束 主键约束(PRIMAR...

  • mysql基础(二)

    约束 约束保证数据的完整性和一致性,约束分为表级约束和列级约束。表级约束和列级约束有五种约束: NOT NULL ...

  • 初学oracle

    约束: 非空约束:not null 唯一约束:unique 检查约束:check 主键约束:primary ke...

  • MySQL 基础 4 多表设计之外键约束

    1.1 约束 1.1.1 约束的作用   约束是用来保证数据的完整性。 1.1.2 单表约束 主键约束 唯一约束 ...

  • 17/12/13约束

    17/12/13约束 约束命名规则 表明_列名 _约束类型 unique约束(唯一约束) constraint(建...

  • 数据库约束

    约束类型 非空约束 not null 唯一性约束 unique 主键约束 primary key 外键约束 for...

  • XML约束——DTD约束

    约束 XML技术中,可以编写一个文档来约束一个XML的书写规范,约束文档定义了在XML中允许出现的元素名称、属性及...

网友评论

      本文标题:约束

      本文链接:https://www.haomeiwen.com/subject/wgpywxtx.html