学前准备:创建好数据库 数据表 插入数据

对于插入的数据而言,创建了几列,就要插入几个数据。

下图是创建的库表等的代码

mysql删除主见约束_database


运行结果如下

mysql删除主见约束_database_02


当插入的数据少了时,会系统报错

mysql删除主见约束_mysql删除主见约束_03


报错,运行结果如下

mysql删除主见约束_database_04

列约束

1.主键约束-----primary key

用来表示一个特定的行

作用:声明了主键约束的列上**禁止插入重复的值,**一个表中只能有一个主键约束,不允许出现null(这里null表示空,无法确定的值,null也是关键字,不能加引号),一般用于第一列,按照升序排列,加快数据的查找速度

①情况1插入正常数据

mysql删除主见约束_主键_05


运行结果如下

mysql删除主见约束_mysql删除主见约束_06


②情况2插入重复数据

mysql删除主见约束_database_07


报错,运行结果如下

mysql删除主见约束_mysql删除主见约束_08


③情况3数据顺序乱序且断开

mysql删除主见约束_mysql_09


运行结果如下

mysql删除主见约束_mysql删除主见约束_10


2.唯一约束------unique(此处新建了一个表,为了便于理解,表中数据有改动)

声明了唯一约束的列上,不能输入重复的值,但允许插入null每列都可以用

这里的null表示无法确定的值,所以不能确定值一样,所以可以写null①情况1正常插入

mysql删除主见约束_主键_11


运行结果如下

mysql删除主见约束_mysql_12


②情况2输入重复的值

mysql删除主见约束_主键_13


报错,运行结果如下

mysql删除主见约束_database_14


唯一约束与主键约束相同的是都不允许输入重复的值,但唯一约束允许为null,主键约束不能为null

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

自增列------auto-increment

自动增长,插入数据的时候,只要赋值为null,就会获取最大值然后加1插入。

注:当主键约束插入自增列后,那列允许插入null值了。

也允许手动赋值

①情况1只插入auto_increment

mysql删除主见约束_mysql删除主见约束_15


报错,允许结果如下

mysql删除主见约束_mysql删除主见约束_16


②情况2在主键约束primary key后插入自增列 auto_increment

mysql删除主见约束_主键_17


运行结果如下

mysql删除主见约束_主键_18


③情况3输入不连续的值

mysql删除主见约束_database_19


运行结果如下

mysql删除主见约束_主键_20


④情况4插入null值

mysql删除主见约束_主键_21


运行结果如下

mysql删除主见约束_mysql删除主见约束_22

3.非空约束 ------not null

声明了非空约束的列上,不能有空值,即不能插入null关键字

①情况1正常输入

mysql删除主见约束_mysql_23


运行结果如下

mysql删除主见约束_mysql_24


②情况2输入数据为null时

mysql删除主见约束_主键_25


运行结果如下

mysql删除主见约束_mysql删除主见约束_26


4.默认值约束-------default 默认值

声明了默认值的列上,插入default,会自动生成默认值,允许插入null值

①情况1正常输入数据

mysql删除主见约束_database_27


运行结果如下

mysql删除主见约束_主键_28


②情况2插入null值

mysql删除主见约束_mysql_29


运行结果如下

mysql删除主见约束_mysql_30


③情况3插入default

mysql删除主见约束_database_31


运行结果如下

mysql删除主见约束_mysql_32

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

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

5.外键约束-------foreign key(外键列) references table-name(主键列)

table-name:表名

声明了外键约束的列,它的取值范围要到另外一个表的主键列去取,且外键列和主键列的数据类型要保持一致,一般都是int。允许插入null,一般两个表

①情况1正常插入数据

mysql删除主见约束_主键_33


运行结果如下

mysql删除主见约束_数据库_34


②情况2插入数据为null

mysql删除主见约束_主键_35


运行结果如下

mysql删除主见约束_数据库_36


③情况3插入的数据不在主键提供的取值范围内

mysql删除主见约束_数据库_37


报错,运行结果如下

mysql删除主见约束_mysql_38


6.检查约束----check

也称为自定义验证,可以根据需求自定义约束条件

mysql不支持,会对服务器造成比较大的压力,后期用js代替