MySQL可以对要插入的值进行验证,只有符合条件才允许插入,例如:编号不允许重复,性别的值只能是男女...
create table t1 (
id int primary key , 列类型 + 列约束
);
1.主键约束---primary key
声明了主键约束的列上不允许出现重复的值,一个表中只能有一个主键约束,通常加在编号列上,会加快数据的查找速度。
null表示空,表示一个暂时无法确定的值,例如:无法确定商品的价格,库存量(null是关键字不能加引号)
声明了主键约束的列上不允许插入null
2.非空约束---not null
声明了非空约束的列上不允许插入null。
3.唯一约束----unique
声明了唯一约束的列上不允许插入重复的值,允许插入null,甚至多个null
4.默认值约束----default
可以使用default关键字来设置默认值,如果不设置默认值,则默认值为null,具体应用默认值有两种方式:
insert into laptop values(1,'小米',default...);
insert into laptop(lid,title) values(2,'戴尔');#没有出现的列会自动使用默认值。
5.检查约束----check
也称自定义约束,用户可以添加自定义的约束条件
create table student(
score tinyint check(score>=0 and score 分数0-100
);
mysql 不支持检查约束,后期通过JS来实现
6.外键约束
声明了外键约束的列上要插入的值必须在另一个表的主键中出现过,目的是为了让两个表之间建立关联。
外键约束允许插入null
foreign key(外键列) references 另一个表(主键列)
外 当前表 参考
外键列的列类型要和另一个表主键列的列类型要保持一致 |
另外,自增列也是数据库中常用的:
auto_incerment: 自动增长,设置了自增列,在插入数据的时候,只需要赋值为null,就会获取最大值然后加1插入
注意事项: 自增列必须添加在整数形式的主键列 自增列允许手动赋值 |