SQL六大约束

一、六大约束条件

 

1.1 not null非空约束

该字段的值不能为空。

1.2 default默认值约束

如果插入数据时,该字段没有赋值,则为默认值。

 

1.3 primary key主键约束

该字段不能重复,且不能为空。

比如学号。

一个表中只能有一个主键约束。

通过表级约束对两个字段设置联合主键:

1.4 unique唯一约束

该字段值不能重复,可以为空,但只能有一个null值。

比如座位号。

一个表中可以有多个唯一约束。

 

1.5 check检查约束

用于检查字段值是否正确。

比如检查年龄是否规范,性别是否不男不女。

 

1.6 foreign key外键约束

该字段的值必须要来自约束关联的外表字段值。

比如学生成绩表的学号必须来自学生信息表的学号字段。

注意 : 外键foreign( 从 ) 必须关联references 其他表的某个字段( 主 )。

被关联的主表字段必须时一个key ( 主键或者唯一 )。

插入数据时,必须先插主表,再插从表。

删除数据时,先删除从表,再删除主表

 

1.7主键(primary key)和唯一(unique)约束的比较

 

唯一性

Nullable

一个表允许存在几个约束

是否允许组合

主键

不允许

最多一个

允许,但是不推荐

唯一

允许

可以有多个

允许,但是不推荐

 

 

二、在定义字段时添加约束(列级约束)

 

①添加 主键约束

#语法 :

           字段名 字段类型 primary key,

        例如:

       empNo varchar2(50) primary key,

 

②添加默认约束和非空约束

#语法 :

           字段名 字段类型  default 默认值 not null,

       例如:

nation varchar2(20) default '汉族' not null,

注意:not null约束必须加在default末尾。

 

③添加唯一约束和非空约束

#语法 :

           字段名 字段类型 unique,

       例如:

       IDnumber varchar2(50) unique not null,

注意:not null约束必须加在unique末尾。

 

④添加外键约束

#语法 :

           字段名 字段类型 constraint 约束名

                               references 主表(关联字段)

       例如:

       empDeptNo number(10) constraint FK_EMPINFO_EMPDEPTNO

                              references dept(deptno)

 

 

⑤添加检查约束

#语法 :

           字段名 字段类型 constraint 约束名

                               check (检查的内容)

        例如:

        empSex char(4) constraint CK_EMPINFO_EMPSEX

                       check(empSex = '男' or empSex = '女'),

 

 

三、在定义字段后添加约束

 

注意:非空和默认约束无法使用表级约束实现

推荐使用表级约束建表,将基本约束写在字段之后,检查和外键约束写在之后。

5.7.3 列级约束和表级约束的区别

 

位置

支持类型

能否起约束名

列级约束

列的后面

全都支持

只能给外键和检查约束起名

表级约束

所有列的下面

不支持默认和非空

可以

 

  • 12
    点赞
  • 89
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值