MySQL中的常见约束

MySQL可以对插入的数据进行特定的验证,只有满足条件才允许插入到数据表中,否则被认为是非法的插入。

约束是一种限制,用于限制表中的数据,为了保证表中的数据的准确和可靠性(一致性)。

例如:一个人的性别只能是男或者女,一个人的年龄0~100之间。

1.非空约束——NOT NULL

NOT NULL:非空约束,声明了非空约束的列上不能插入NULL,用于保证该字段的值不能为空,比如姓名、学号等。

2.默认约束——DEFAULT

DEFAULT:默认约束,用于保证该字段有默认值。

可以使用DEFAULT关键字声明默认值,有两种方式可以应用默认值:

INSERT INTO xz_laptop_family VALUES(40,'苹果',DEFAULT);
INSERT INTO xz_laptop_family(fid,fname) VALUES(50,'华硕');

3.主键约束——PRIMARY KEY

PRIMARY KEY :用于保证该字段的值具有唯一性,比如学号,员工编号等。声明了主键列上的值不能出现重复,表中查询的记录会按照主键由小到大排序——加快查找的速度;通常主键添加到编号列中。

注意:一个表中只能有一个主键。

主键约束和唯一约束的对比
(1)主键约束和唯一约束都可以保证唯一性,但是主键的值不能为空,而唯一约束的值可以为空;

(2)主键约束列在表中至多只能有1列,而唯一约束列可以在表中有多列;

(3)主键约束与唯一约束都允许进行组合(主键组合时,只有当为主键列的全部列的值都相同时才会报错),但是,都不推荐二者的组合使用。

4.唯一约束——UNIQUE

UNIQUE:声明了唯一约束的列上不能插入重复的值,但是允许插入NULL,而且允许插入多个NULL。

NULL表示空,通常使用在插入数据时,无法确定要保存的数据的情况。例如:无法确定员工的姓名、工资。

5.检查约束——CHECK

CHECK:检查约束可以对插入的数据进行检验。
示例

	CREATE TABLE student( 
    	age TINYINT CHECK(age>=18 AND age<=60 )
  	);

注意:MySQL不支持检查约束,会降低数据的插入速度。

6.外键约束——FOREIGN KEY

FOREIGN KEY:声明了外键约束的列,取值必须在另一个表的主键列上出现过,且列类型要保持一致,取值可以是NULL。

语法

	FOREIGN KEY(familyId) (此为外键)
	REFERENCES xz_laptop_family(fid)(此为引用的主键)

注意
(1)要求在从表上设置外键约束;

(2)从表的外键列类型要与主表的关联列的类型要求一致或者兼容,但列名无要求;

(3)主表上的关联列要求必须时一个key(一般时主键约束、唯一约束或者外键约束);

(4)插入数据时,先插入主表,再插入从表,而删除数据时,先删除从表再删除主表。

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值