首页
找靠谱产品
找解决方案
找靠谱公司
找案例
找对的人
专家智库
悬赏任务
SAAS
ToB门户
了解全球最新的ToB事件
论坛
潜水/灌水快乐,沉淀知识,认识更多同行。
ToB圈子
加入IT圈,遇到更多同好之人。
微博
Follow
记录
Doing
博客
Blog
文库
业界最专业的IT文库,上传资料也可以赚钱
下载
分享
Share
排行榜
Ranklist
相册
Album
应用中心
qidao123.com ToB IT社区-企服评测·应用市场
»
论坛
›
物联网/工业互联网
›
物联网
›
【MySQL】表的束缚
返回列表
发新帖
【MySQL】表的束缚
[复制链接]
发表于 2025-11-17 09:54:16
|
显示全部楼层
|
阅读模式
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要
登录
才可以下载或查看,没有账号?
立即注册
×
在上一篇的内容中,我们学习了MySQL的数据范例,数据范例本身就是一种束缚。
但是只有数据范例束缚是不敷的。
1. 空属性 null
null(默认的)
not null
数据库
默认字段根本都是字段为空
,但是现实开发时,尽大概包管字段不为空,由于数据为空没办法到场运算。
设置了非空束缚后,空值就无法插入进表中
2. 默认值 default
默认值:某一种数据会常常性的出现某个详细的值,可以在一开始就指定好,在必要真实数据的时间,用户可以选择性的利用默认值。
假如用户不指定值,但设置了默认值,则利用默认值; 未设置默认值,MySQL设置默认值为NULL。
在上面的结构中,gender一列我既设置了非空,又设置了默认值,如许故意义吗?
假如一列指定了非空束缚
设置了默认值,用户没有明确指定插入的值,则利用default的值,插入乐成;
没有设置默认值,用户未明确指定插入的值,插入失败。
null 与默认值二者不辩论,是相互增补的
not null 和 defalut一样寻常不必要同时出现,由于default本身有默认值,不会为空
3. 形貌 comment
列形貌:comment,没有现实寄义,专门用来形貌字段,会根据表创建语句生存,用来给步伐员或
数据库
管理员来举行相识。
通过desc检察不到表明信息,通过show可以检察到
4. zerofill
在我们属性的范例设置为 int 范例时,编译器会默认给我们有划范围 int(10),背面带数字是什么意思呢?为什么mysql会默认加上?
int的范围是21亿多,10位数刚好可以表现几十亿。
有符号数,则默认是11位
一样寻常我们检察时,位数是不会全表现的。若设置了 zerofill,且表现的宽度小于()中指定长度,则利用0添补。
要留意的是,这只是末了表现的效果,在MySQL中现实
存储
的照旧原来插入的值。补0只是设置了zerofill属性后的一种格式化输出而已
5. 主键、复合主键
主键:primary key用来唯一的束缚该字段内里的数据,不能重复,不能为空,
一张表中最多只能有一个主键
;主键所在的列通常是整数范例
5.1 主键
主键可以在创建表的时间直接在字段上指定主键
当表创建好以后但是没有主键的时间,可以再次追加主键
建表
时
指定主键
也可在创建表的末了指定主键
建表
后
追加主键
删除主键
5.2 复合主键
一张表只能有一个主键,但是不意味着一个表的主键,只能添加给一列。
当主键添加给多列时,就叫做复合主键;
复合主键只要不是全部的列全都辩论,则可以添加乐成。
举个例子:
弟子选课时,一名弟子可以选则差异的课程,但是每门课程他只能选择一次,此时就可以将学号与课程设置为复合主键,防止辩论。
在创建表的时间,在全部字段之后,利用primary key(主键字段列表)来创建主键,假如有多个字段作为主键,可以利用复合主键。
6. 自增长 auto_increment
auto_increment:当对应的字段,
不给值,会自动的被体系触发,体系会从当前字段中已经有的最大值+1操纵
,得到一个新的差异的值。通常和主键搭配利用,作为逻辑主键。
自增长的特点:
任何一个字段要做自增长,条件是本身是一个索引(索引部分再详细讲 )
自增长字段
必须是整数
,默认从1开始,也可以本身设置
一张表最多只能有一个自增长
在插入后可通过 last_insert_id() 获取前次插入的 AUTO_INCREMENT 的值(批量插入获取的是第一个值)
7. 唯一键 unique
一张表中有通常有很多字段必要唯一性,数据不能重复,但是
一张表中只能有一个主键
,唯一键就可以办理表中有多个字段必要唯一性束缚的题目。
唯一键的本质和主键差不多,唯一键允许为空,而且可以多个为空,
空字段不做唯一性比力
。
唯一键和主键的区别:
主键更多的是标识唯一性的;而唯一键更多的是包管在业务上,不要和别的信息出现重复(如电话号码,学号,工号等)。
8. 外键 foreign key
外键用于界说主表和从表之间的关系:外键束缚告急界说在从表上,
主表则必须要有主键束缚或unique束缚。
当界说外键后,要求外键列数据必须在主表的
主键列存在
或
为null
。
foreign key (列名) references 主表(列名)
复制
代码
必须在全部字段背面指定:
两张表在业务上是有相干性的,但是在业务上没有创建束缚关系,那么就大概出现题目。
创建外键的本质着实就是把相干性交给mysql去稽核了,提前告诉mysql表之间的束缚关系,那么当用户插入不符合业务逻辑的数据的时间,mysql不允许你插入。
回复
使用道具
举报
返回列表
浏览过的版块
DevOps与敏捷开发
SAAS
Java
分布式数据库
程序人生
SQL-Server
数据仓库与分析
开源技术
前端开发
没腿的鸟
+ 我要发帖
登录后关闭弹窗
登录参与点评抽奖 加入IT实名职场社区
去登录
微信订阅号
微信服务号
微信客服(加群)
H5
小程序
快速回复
返回顶部
返回列表