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表关联了。

相关推荐
瓜牛_gn30 分钟前
mysql特性
数据库·mysql
奶糖趣多多2 小时前
Redis知识点
数据库·redis·缓存
CoderIsArt3 小时前
Redis的三种模式:主从模式,哨兵与集群模式
数据库·redis·缓存
师太,答应老衲吧5 小时前
SQL实战训练之,力扣:2020. 无流量的帐户数(递归)
数据库·sql·leetcode
Channing Lewis6 小时前
salesforce case可以新建一个roll up 字段,统计出这个case下的email数量吗
数据库·salesforce
毕业设计制作和分享7 小时前
ssm《数据库系统原理》课程平台的设计与实现+vue
前端·数据库·vue.js·oracle·mybatis
ketil277 小时前
Redis - String 字符串
数据库·redis·缓存
Hsu_kk8 小时前
MySQL 批量删除海量数据的几种方法
数据库·mysql
编程学无止境8 小时前
第02章 MySQL环境搭建
数据库·mysql
knight-n8 小时前
MYSQL库的操作
数据库·mysql