文章目录
- 约束
- 约束的分类:
- 按照约束的作用效果不同
- 唯一约束
- 主键约束
- 外键约束
- 检查约束
- 非空约束
- 默认值约束
- 按照是否跟随列和字段属性来创建约束
- 行级约束
- 表级约束
- 创建约束
- 创建唯一约束
- 创建完表之后创建唯一约束
- 创建表的同时创建唯一约束
- 行级约束
- 表级约束
约束
CONSTRAINT
作用:作用在表中,让你的表按照约束条件和规则录入数据,让表更符合实际
约束的分类:
按照约束的作用效果不同
唯一约束
UNIQUE
作用:该字段插入的数据唯一,不能重复,可以为空
主键约束
PRIMARY KEY
作用:该字段不能重复而且不能为空
外键约束
FOREIGN KEY
作用:该字段数据的取值来自于另一张表的某字段
检查约束
CHECK
作用:是根据实际需求自定义约束内容
非空约束
NOT NULL
作用:该字段不能有空值
默认值约束
DEFAULT
作用:该字段不插入数据的时候,会自动填入默认值
按照是否跟随列和字段属性来创建约束
行级约束
在建表的同时,仅跟随字段和字段属性来声明约束,这就叫行级约束
CREATE TABLE 表名(列名1 字段属性 约束,列名2 字段属性......)
是指在列名后添加约束,为行级约束
表级约束
在建表的同时,声明所有字段和字段属性后,再单独声明约束
CREATE TABLE 表名(列名1 字段属性,
列名2 字段属性,
....,
约束)
创建约束
创建唯一约束
创建完表之后创建唯一约束
ALTER TABLE 表名 ADD CONSTRAINT 约束名 UNIQUE(列名1,列名2.....)
注意:如果括号内两个字段添加了一个唯一约束,即两个字段都相同才算重复,如ename,job字段,都是SMITH跟MANAGER才算重复,SMITH跟ANALYSE不算重复
ALTER TABLE Heih ADD CONSTRAINT un_HeiH_xingming UNIQUE (ename)
注意:
1.唯一约束约束不了空值
2.当有违反约束的数据村则,则创建约束会失败
创建表的同时创建唯一约束
行级约束
CREATE TABLE 表名 (列名1 字段属性 UNIQUE, ---给列名1添加唯一约束
列名2 字段属性........)
UNIQUE跟在哪个字段后面,就约束谁
约束名自动分配
如果想自己取名
CREATE TABLE 表名 (列名1 字段属性 CONSTRAINT 约束名 UNIQUE, ---给列名1添加唯一约束
列名2 字段属性........)
如此可以自己取约束名
表级约束
语法:
CREATE TABLE 表名(列名1 字段属性
,列名2 字段属性
,..........
,CONSTRAINT 约束名 UNIQUE (列名1,列名2,列名3,.....))