1. 约束概念
表中一定要有各种约束,通过约束,让未来插入数据库表中的数据是符合预期的
约束本质是 通过技术手段,倒逼程序员 插入正确的数据
站在mysql的视角,凡是插入进来都是符合数据约束的
约束的最终目标:保证 数据的完整性和可预期性
如:使用VS时,当代码写错了,编译器就会报错,如果不改错而执行代码,就会导致执行不通过
必须将错误修改正确,才能执行才能通过
2. 空属性
在mysql中 NULL表示没有
’ ’ 表示空串,有只不过是空的
3. 默认值
某一种数据会经常性的出现某个具体的值,可以在一开始就指定好,在需要真实数据的时候,用户可以选择性的使用默认值
4. comment——列描述
comment 后面跟的相当于注释
5. 主键
primary key 用来唯一的约束该字段里面的数据,不能重复,不能为空,一张表最多只有一个主键
主键所在的列 通常是整数类型
创建一张表 test_key,内部包含 被设置为主键的学号 以及 不能设置为空的 名字
学号id中并没有设置为非空,但是查询test_key表结构时,发现自动将其设置为 not null
由于学号被设置为主键
所以查询时 在key 列(表示当前列是否为主键列),发现id所在列为 PRI (当前为主键列)
6. 复合主键
虽然一个表中只能有一个主键,但是并不意味着一个表中的主键,只能添加给一列
即 一个主键 也可以被添加到多列 ——复合主键
7. 自增长
auto_increment :当对应的字段 不给值,会自动的被系统触发,系统会从当前字段中已经有的最大值+1操作,得到一个新的不同的值,通常和主键搭配使用,作为逻辑主键
自增长的特点:
任何一个字段要自增长,前提key一栏要有值
自增长字段必须是整数
一张表最多只能有一个自增长
8. 唯一键
一张表中有很多字段需要唯一性,数据不能重复,但是一张表中只能有一个主键
唯一键就可以解决表中多个字段需要唯一约束的问题
唯一键和主键差不多,唯一键允许为空,而且可以多个为空,空字段不做唯一性比较
9. 外键
外键用于主表和从表之间的关系,外键约束主要定义在从表上,主表则必须是有主键约束或者unique约束(唯一键约束)
当定义外键后,要求外键列数据必须在主表的主键列存在或为null
语法:
foregin key(字段名) references 主表(列)