MySQL数据库非空、主键、外键到底管什么完整指南(附详细图文)
平时做技术实践时,很多问题不是概念不会,而是细节没串起来。拿“MySQL数据库非空、主键、外键到底管什么详细解析(附详细图文)”来说,它看着像小点,放到项目里常会牵出环境、配置、兼容性和维护成本。下面按实际采用顺序,把思路、关键写法和容易踩坑的地方讲清楚,便于大家直接对照操作。
目录
- 前言
- 一、非空约束
- 二、default 约束
- 三、comment 列描述
- 四、zerofill 约束
- 五、主键约束
- 六、auto increment 约束
- 七、唯一键
- 八、外键
- 总结
前言
表的约束:表中一定要有各种约束,借助各种约束,保证未来数据库中的数据的准确的;约束的本质是:借助技术手段倒逼程序员,插入正确的数据,进而保证数据库中的数据的正确的;
一、非空约束
两个值:null(默认的)和not null(不为空)
从实现思路看,数据库默认字段基本都是字段为空,但是实际开发时,尽可能保证字段不为空,因为数据为空没办法参与运算。
null Vs ''
null : 表示什么都没有;
'':有,但是为空;
二、default 约束
default: 跟 C++ 的缺省值一样;
not null and default:
注意:如果我们的表中没有设置 default 和 not null 约束,他默认 default null,如果设置了 not null 则不会有 default null;
三、comment 列描述
列描述跟注释没什么区别;
四、zerofill 约束
int(10) 没有 zerofill 约束是没有意义的:
落到代码里,相当于 int(10) 里面的 10 就是数字的长度,如果少于 10 个数字,用0来补充显示;
五、主键约束
主键:primary key用来唯一的约束该字段里面的数据,不能重复,不能为空,一张表中最多只能有一个主键;主键所在的列通常是整数类型。
去除主键约束:
添加主键约束:
复合主键:主键不是只能给一列设置,给多列设置主键的就是符合主键;
注意:复合主键只有设置有主键的那几列同时和过往的数据相同时就会产生主键冲突;
六、auto increment 约束
auto_increment:当对应的字段,不给值,会自动的被系统触发,系统会从当前字段中已经有的最大值+1操作,得到一个新的不同的值。通常和主键搭配采用,作为逻辑主键。
自增长的特点:
任何一个字段要做自增长,前提是本身是一个索引(key一栏有值)
自增长字段必须是整数
一张表最多只能有一个自增长
自定义自增长值:
查看最后一次的插入的自增长的值:
七、唯一键
结合项目来看,主键不能为空,而唯一键能够为空,NULL 的意思的什么都没有,NULL 不参与计算;
注意:一张表中只能有一个主键,但是能够有多个唯一键;
八、外键
因为学生是从属于某个班级的,所以:
外键主要是:表与表之间的约束;
新建外键:
实际处理时,外键用来定义主表和从表之间的关系:外键约束主要定义在从表上,主表则必须是有主键约束或unique约束。当定义外键后,要求外键列数据必须在主表的主键列存在或为null。
总结
到此这篇关于MySQL数据库非空、主键、外键到底管什么的文章就介绍到这了,更多相关MySQL非空、主键、外键内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多兼容脚本之家!
您可能感兴趣的文章:
- mysql主键,外键,非空,唯一,默认约束及新建表的方法
- MySQL单表约束超详细实战用法(主键 / 非空 / 唯一 / 默认)
-
09.09
Git分布式版本控制工具使用及说明实用指南
-
09.09
git删除分支实现方式步骤实用指南
-
09.09
SQL Server数据库自动备份完整配置详细指南实用指南
-
09.09
SQL中表的字符串内置函数完整指南
-
09.09
Oracle数据库空间回收从诊断到优化实践指南实用教程实用指南
-
09.09
Oracle数据库物理备份与恢复实践教程实用指南
-
-
下载
- |
-
-
下载
- 《行尸走肉第一章》免安装中文汉化硬盘版下载
- 单机|436 MB
- 一款以动作冒险为主题的游戏
-
-
下载
- 《街头霸王X铁拳》免安装中文汉化硬盘版下载
- 单机|111MB
- 一款非常好玩的格斗游戏
-
-
下载
- |
-
-
下载
- 《暗黑破坏神3》免安装繁体中文正式版下载
- 单机|7630 MB
- 一款以角色扮演为主题的游戏
-
-
下载
- 《马克思佩恩3》免安装硬盘版下载
- 单机|27033 MB
- 一款以第三人称射击为主题的游戏