基础知识 | 零基础学MySQL之列约束

学前准备:创建好数据库 数据表 插入数据
对于插入的数据而言,创建了几列,就要插入几个数据。
下图是创建的库表等的代码
创建在这里插入图片描述
运行结果如下
在这里插入图片描述
当插入的数据少了时,会系统报错

在这里插入图片描述
报错,运行结果如下
在这里插入图片描述

列约束

1.主键约束-----primary key
用来表示一个特定的行
作用:声明了主键约束的列上**禁止插入重复的值,**一个表中只能有一个主键约束,不允许出现null(这里null表示空,无法确定的值,null也是关键字,不能加引号),一般用于第一列,按照升序排列,加快数据的查找速度
①情况1插入正常数据
在这里插入图片描述
运行结果如下
在这里插入图片描述
②情况2插入重复数据
在这里插入图片描述
报错,运行结果如下
在这里插入图片描述
③情况3数据顺序乱序且断开
在这里插入图片描述
运行结果如下
在这里插入图片描述
2.唯一约束------unique(此处新建了一个表,为了便于理解,表中数据有改动)
声明了唯一约束的列上,不能输入重复的值,但允许插入null每列都可以用
这里的null表示无法确定的值,所以不能确定值一样,所以可以写null

①情况1正常插入
在这里插入图片描述
运行结果如下
在这里插入图片描述
②情况2输入重复的值
在这里插入图片描述
报错,运行结果如下
在这里插入图片描述
唯一约束与主键约束相同的是都不允许输入重复的值,但唯一约束允许为null,主键约束不能为null

额外补充:自增列,为了便于区别主键约束、唯一约束、自增列之间的差别和联系

自增列------auto-increment
自动增长,插入数据的时候,只要赋值为null,就会获取最大值然后加1插入。
注:当主键约束插入自增列后,那列允许插入null值了。
也允许手动赋值
①情况1只插入auto_increment
在这里插入图片描述
报错,允许结果如下
在这里插入图片描述
②情况2在主键约束primary key后插入自增列 auto_increment
在这里插入图片描述
运行结果如下
在这里插入图片描述
③情况3输入不连续的值
在这里插入图片描述
运行结果如下
在这里插入图片描述
④情况4插入null值
在这里插入图片描述
运行结果如下
在这里插入图片描述

3.非空约束 ------not null
声明了非空约束的列上,不能有空值,即不能插入null关键字
①情况1正常输入
在这里插入图片描述
运行结果如下
在这里插入图片描述
②情况2输入数据为null时
在这里插入图片描述
运行结果如下
在这里插入图片描述
4.默认值约束-------default 默认值
声明了默认值的列上,插入default,会自动生成默认值,允许插入null值
①情况1正常输入数据
在这里插入图片描述
运行结果如下
在这里插入图片描述
②情况2插入null值
在这里插入图片描述
运行结果如下
在这里插入图片描述
③情况3插入default
在这里插入图片描述
运行结果如下
在这里插入图片描述

第二种默认值约束插入方法
insert into laptop(lid,title) values (6,‘oppo’);//只有这两个有指定的值,其他都为默认值

用desc 表名 可以查看默认值为啥

5.外键约束-------foreign key(外键列) references table-name(主键列)
table-name:表名
声明了外键约束的列,它的取值范围要到另外一个表的主键列去取,且外键列和主键列的数据类型要保持一致,一般都是int。允许插入null,一般两个表
①情况1正常插入数据
在这里插入图片描述
运行结果如下
在这里插入图片描述
②情况2插入数据为null
在这里插入图片描述
运行结果如下
在这里插入图片描述
③情况3插入的数据不在主键提供的取值范围内
在这里插入图片描述
报错,运行结果如下
在这里插入图片描述
6.检查约束----check
也称为自定义验证,可以根据需求自定义约束条件
mysql不支持,会对服务器造成比较大的压力,后期用js代替

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值