数据库中的约束

啥是约束?

约束含义: 一种限制,用于限制表中的数据,为了保证表中的数据的准确和可靠性。
添加约束的时机:
1.创建表时
2.修改表时

六大约束

关键字意思说明
NOT NULL非空用于保证该字段的值不能为空。比如:姓名,学号等。
DEFAULT默认用于保证该字段有默认值。比如:性别。
PRIMARY KEY主键用于保证该字段的值具有唯一性,并且非空。比如学号,员工编号等。
UNIQUE唯一用于保证该字段的值具有唯一性,可以为空。比如座位号。
CHECK检查检查约束[mysql中不支持]比如年龄、性别。
FOREIGN KEY外键用于限制两个表的关系,用于保证该字段的值必须来自于主表的关联列的值在从表添加外键约束,用于引用主表中某列的值。比如学生表的专业编号,员工表的部门编号,员工表的工种编号。

主键和唯一的大对比:

是否保证字段唯一性是否允许为空一个表中可以有多少个是否允许组合
主键保证不允许至多有1个可以,但是不推荐
唯一保证允许可以有多个可以,但是不推荐

外键的说明:

  • 要求在从表设置外键关系
  • 从表的外键列的类型和主表的关联列的类型要求一致或兼容,名称无要求
  • 主表的关联列必须是一个key(一般是主键或唯一)
  • 插入数据时,先插入主表,再插入从表
    删除数据时,先删除从表,再删除主表。
  • 外键是可以为空的,为空代表该列段尚未明确

添加列级约束

语法: 直接在字段名和类型后面追加约束类型即可。
只支持: 默认、非空、主键、唯一
CREATE TABLE 表名(
		字段名 字段类型 列级类型,
		....
		....
		字段名 字段类型,
		表级约束
)

在这里插入图片描述

添加表级约束

语法: 在各个字段的最下面
constraint  约束名  约束类型(字段名)

除了非空,默认,其他的都支持

在这里插入图片描述

修改表时添加约束

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

修改表时删除约束

在这里插入图片描述
在这里插入图片描述

列约束和表约束对比

名称位置支持的约束类型是否可以起约束名
列级约束列的后面语法都支持,但外键没有效果不可以
表级约束所有列的下面默认和非空不支持,其他支持可以(主键没有效果)

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

本质上没有啥太大的区别。
列级约束只能约束当前这一个列。
表级约束可以同时约束多个列。
  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值