MySQL表的约束
1、空属性
约束词:null/not null
- 数据库默认字段为空,但有些字段不能为空,就要设成非空
示例:
2、默认值
约束词:default
示例:
默认值的生效:插入数据时不给该字段赋值,就会使用默认值。
注意:只有设置了default的列,才可以在插入值的时候,对列进行省略;
not null和defalut一般不需要同时出现,因为default本身有默认值,不会为空。
3、列描述
约束词:comment
列描述:没有实际含义,专门用来描述字段,会根据表创建语句保存,类似于代码注释。
示例:
通过desc查看不到注释信息:
通过show可以看到:
4、零填充
约束词:zerofill
零填充:是一种格式化输出,将int()中未显示的部分用0填充上,显示出来。
示例:
可以看到int(10),这个代表什么意思呢?整型不是4字节吗?这个10又代表什么呢?
其实没有zerofill这个属性,括号内的数字没有意义,设置为零填充才会显示出来。
设置零填充前:
设置零填充:
展示:
这次可以看到a的值由原来的1变成00001,这就是zerofill属性的作用:如果宽度小于设定的宽度(这里
设置的是5),自动填充0。要注意的是,这只是最后显示的结果,在MySQL中实际存储的还是1。
5、主键
约束词:primary key
主键:primary key用来唯一的约束字段里面的数据,主键约束的字段内写入的数据不能重复,不能为空,一张表中最多只能有一个主键。
示例:
- 创建表的时候直接在字段上指定主键
- 当表创建好以后但是没有主键的时候,可以再次追加主键
alter table 表名 add primary key(字段列表);
- 删除主键
alter table 表名 drop primary key;
复合主键:
创建表的时候,可以在所有字段之后,使用 primary key(主键字段列表) 来创建主键,如果有多个字段
作为主键,可以使用复合主键。
6、自增长
约束词:auto_increment
auto_increment:当对应的字段,不给值,会自动的被系统触发,系统会赋予当前字段中已经有的最大值+1的值给它。通常和主键搭配使用,作为逻辑主键。
自增长的特点:
- 任何一个字段要做自增长,前提是本身是一个索引(key一栏有值)
- 自增长字段必须是整数
- 一张表最多只能有一个自增长
示例:
7、唯一键
约束词:unique
唯一键:设置unique的字段写入的数据不能重复,唯一键允许为空,而且可以多个为空,空字段不做唯一性比较;一个表内可以设置多个unique。
示例:
8、外键
约束词:foreign key (字段名) references 主表(列)
示例:
如果将班级表中的数据都设计在每个学生表的后面,那就会出现数据冗余,所以我们可以设计成让 stu->class_id 和 myclass->id 形成关联的关系 => 外键约束
对上面的示意图进行设计:
- 先创建主键表
- 再创建从表
原文地址:https://blog.csdn.net/m0_74197455/article/details/144086163
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!