MySQL
中约束保存在
information_schema
数据库的
table_constraints
中,可
以通过该表查询约束信息;
约束主要完成对数据的检验,
保证数据库数据的完整性;
如果有相互依赖数据,
保证该数据不被
删除。
常用五类约束:
’’
not
null
:非空约束,指定某列不为空
unique
:
唯一约束,指定某列和几列组合的数据不能重复
Primary key
:主键约束,指定某列的数据不能重复、唯一
foreign
key
:外键,指定该列记录属于主表中的一条记录,参照另一条数据
check
:检查,指定一个表达式,用于检验指定数据
注意:
MySQL
不支持
check
约束,但可以使用
check
约束,而没有任何效果;
根据约束数据列限制,约束可分为:
单列约束:每个约束只约束一列
多列约束:每个约束约束多列数据
1
、
not
null
约束
非空约束用于确保当前列的值不为空值,非空约束只能出现在表对象的列上。
Null
类型特征:
所有的类型的值都可以是
null
,包括
int
、
float
等数据类型
空字符串
””
是不等于
null
,
0
也不等于
null
create
table
temp(
id
int
not
null
,
name
varchar
(255)
not
null
default
‘abc’,
sex
char
null
)
上面的
table
加上了非空约束,也可以用
alter
来修改或增加非空约束
增加非空约束
alter
table
temp
modify
sex
varchar
(2)
not
null
;
取消非空约束
alter
table
temp
modify
sex
varchar
(2)
null
;
取消非空约束,增加默认值
alter
table
temp
modify
sex
varchar
(2)
default
‘abc’
null
;
2
、
unique
唯一约束是指定
table
的列或列组合不能重复,保证数据的唯一性。虽然唯一约束不允许出现
重复的值,但是可以为多个
null
同一个表可以有多个唯一约束,
多个列组合的约束。
在创建唯一约束的时候,
如果不给唯一约束
名称,就默认和列名相同。
MySQL
会给唯一约束的列上默认创建一个唯一索引;
create
table
temp (
id
int
not
null
,
name
varchar
(25),
password
varchar
(16),
--
使用表级约束语法,
constraint
uk_name_pwd
unique
(name, password)
);
表示用户名和密码组合不能重复
添加唯一约束
alter
table
temp
mysql约束 来自淘豆网m.daumloan.com转载请标明出处.