学前准备:创建好数据库 数据表 插入数据
对于插入的数据而言,创建了几列,就要插入几个数据。
下图是创建的库表等的代码
运行结果如下
当插入的数据少了时,会系统报错
报错,运行结果如下
列约束
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代替