Mysql----表的约束


提示:以下是本篇文章正文内容,下面案例可供参考

一、表的约束

表的约束:表中一定要有约束,通过约束让插入表中的数据是符合预期的。它的本质是通过技术手段,让程序员插入正确的数据,约束的最终目标是保证表的完整性和可预期性。

(1)null 和not null:

只要设置了not null.插入的数据就不可以为空。

(2)default:

默认:如果用户没有插入数据,就使用默认的,如果用户插入了数据,就用用户的。

如果既设置not null 和 default ,它们之间是互补关系。对于not null来说,要么用户插入合法数据,要么插入null.由于是not null,插入null报错。如果用户忽略不插入,就使用default默认的值,没有default就报错。

需要要注意的是:如果我们没有not null ,mysql会设置default 为空。反之设置了not null 就不是在了。

(3)comment

描述:

desc t4.查询是不显示的,除非查询表的创建语句

(4) zerofill

修改表的属性,格式化显示。

int(10)括号这个数字代表,如果输入的数字没有占10位它就会用0来填充,前提是用zerofill来修饰了,如果没有zerofill,int(10)和int没区别。

当然如果你设置int(11)mysql认为你这个int类型是有符号类型。int(10)就是无符号类型的。

(5)key

主键,标识唯一同时一个表中只要一个主键。既然是唯一的,如果重复就不让你插入了 。

1.我们可以在建表之后再添加主键

2.建表的时候,添加主键

3.删除主键

(6)复合主键:primary key

在创建表的时候,在所有字段之后,使用primary key(主键字段列表)来创建主键,如果有多个字段作为主键,可以使用复合主键。注意的是,主键只有一个。

以下例子,设置了id和name构成主键,由于唯一性,再次插入就触发。

(7)自增长:auto_cretement

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

使用:1 .必须和primary key 搭配使用 2.字段是整型 3.一个表中只能有一个自增长

那么它是怎么知道每次从哪开始自增的,表会记录,通过查看表语句

(8)唯一键:unique

唯一键和主键一样,标识唯一。不过unique可以为空,主键不为空。

一张表中有往往有很多字段需要唯一性,数据不能重复,但是一张表中只能有一个主键:唯一键就可以解决表中有多个字段需要唯一性约束的问题。

(9)外键

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

语法:foreign key (字段名) references 主表(列)

1.建主表

2.建立从表

插入数据,主表和从表是互相约束的。这里的插入class_id必须是myclass中存在的或者class_id

暂时为空。又或者如果对myclass表进行删除等操作,除非stu表中已经没有和class表关联了。

相关推荐
皓空揽月2 小时前
Win10安装MongoDB(详细版)
数据库·mongodb
源代码:趴菜2 小时前
MySQL表操作
数据库·mysql
字节跳动数据平台2 小时前
深耕分析型数据库领域,火山引擎ByteHouse入围《2024爱分析数据库厂商全景报告
数据库·后端·云原生
续亮~2 小时前
6、Redis系统-数据结构-07-QuickList
数据结构·数据库·redis
想做后端的前端2 小时前
Redis的持久化机制
数据库·redis·bootstrap
李长安的博客2 小时前
Oracle PL / SQL update更新数据
数据库·sql·oracle
生活真难2 小时前
Postgresql - 用户权限数据库
数据库
韩楚风2 小时前
【手写数据库内核组件】0201 哈希表hashtable的实战演练,多种非加密算法,hash桶的冲突处理,查找插入删除操作的代码实现
c语言·数据结构·数据库·哈希算法·散列表
☀️3 小时前
Redis 的过期策略
数据库·redis·缓存
续亮~3 小时前
9、Redis 高级数据结构 HyperLogLog 和事务
数据结构·数据库·redis