日期:2014-05-16 浏览次数:20535 次
本次笔记来学习约束,约束在表中无处不在。例如,表中的数据不允许为空或者是表中id为设为主键,都是约束。
约束分类:
主键约束(PRIMARY KEY):主键表示表中一个唯一的标识,本身不能为空。
唯一约束(UNIQUE):在一个表中只能允许建立一个主键约束,其它的列不会与此列产生重复的值。
检查约束(CHECK):检查一个列的内容是否合法,如:工资在 1500 – 3000之间。
非空约束(NOT NULL):内容不能为空。
外键约束(FOREIGN KEY):两张表之间的进行约束操作。
约束也是有名字的,如果不指定约束的名字,系统会自动的为我们重建约束名,格式类似于sys_cn 。也可以自己创
建约束的名字,格式一般为:constraint 表名_列名_约束名 约束。之所以使用 “表名_列名_约束名”这样的格式,
也是为了达到一种见名知意的效果。定义的方式:列约束必须跟在列的后面进行定义,表级约束可以不跟在列的后面,进行单独的定义。
约束的范围:列级约束和表级约束,列级约束只能作用在一个列上,表级约束可以作用在多个列上,也可以作用在一个列上。
可以创建约束,也可以修改约束。创建约束在创建表的时候创建,修改约束在表创建完成之后再进行修改。
基本的语法格式:
列级约束定义:
CREATE TABLE table_name(
列名1 列的数据类型类型 [约束 | constraint 约束名称 约束],
列名2 列的数据类型类型 [约束 | constraint 约束名称 约束]
)
表级约束定义:
CREATE TABLE table_name(
列名1 列的数据类型 ,
列名2 列的数据类型 ,
constraint 约束名称 约束(列名)
)
NOT NULL 约束
非空的约束只能定义在列上。使用非空约束,表示一个字段的内容不允许为空,即:插入的数据必须是有内容
的,不允许为null 。
例:创建表emp2 ,表中包含三列,id , name , salary 。其中要求id 列不能为空。