mysql中的表的约束

表一定要有约束,通过约束,让我们未来插入的数据符合预期要求,插入正确的数据,反过来,凡是插入的数据一定符合条件。

常见的约束条件

空属性

NULL和not NULL

约束数据是否可以为空。默认所以的数据可以为空。

创建了两个不能为空的数据,和一个空数据。

插入''也算字符,要求非空的约束,一定要插入信息。

默认值

defalut设置默认值。

用于提前设置,如果不输入用默认的。

列描述

comment 列描述字段,用于说明这个数据是什么无实际含义。

zerofill

填充0,如果数字类型没有达到长度会自动填充0;

主键

设置主键使数据不重复。
primary key;

插入主键值id时不可以重复
也可以设置复合主键,如primary key(id, course) -- id和course为复合主键,必须同时冲突才会冲突。

自增长

一般搭配主键使用。

auto_increment:当对应的字段,不给值,会自动的被系统触发,系统会从当前字段中已经有的最大值
+1操作,得到一个新的不同的值。通常和主键搭配使用,作为逻辑主键。

唯一键

设置唯一键的数据不可以重复但可以为NULL,为NULL不进行比较;

unique key

外键

外键用于定义主表和从表之间的关系:外键约束主要定义在从表上,主表则必须是有主键约束或unique
约束。当定义外键后,要求外键列数据必须在主表的主键列存在或为null。
foreign key (字段名) references 主表(列)

相关推荐
谢亮_vipxieliang4 小时前
Go Channel 高级模式——从底层原理到扇出扇入实战
java·数据库·golang
ggaofeng5 小时前
自己编写邮件服务器和客户端
数据库
java1234_小锋5 小时前
【技术专题】Mysql8 数据库 - Mysql8 添加,更新,删除数据
数据库·mysql
PaperData5 小时前
2015-2024年各省绿色贸易数据
数据库
小羊没烦恼!5 小时前
系统内部模块(子系统)之间的耦合以及模块(子系统)划分
java·开发语言·前端·数据库·算法·c#
麦壳饼6 小时前
深入探讨:SonnetDB 的文件格式与存储布局
数据库·sonnetdb
for_ever_love__6 小时前
Redis 持久化讲透:RDB、AOF 与混合持久化怎么选
java·数据库·redis·持久化·aof·区别·rdb
l1t6 小时前
测试bicdb 20261007提交的0.2版功能
数据库
内存漫游7 小时前
锁与死锁——数据库为什么会发生事务等待?
数据库