前言
空属性
两个值:null(默认的)和not null(不为空)
自增(auto_increment)
自增长的特点:
- 任何一个字段要做自增长,前提是本身是一个索引(key一栏有值)
- 自增长字段必须是整数
- 一张表最多只能有一个自增长
获取上次插入的 AUTO_INCREMENT 的值:select last_insert_id();
主键(primary key)
primary key用来唯一的约束该字段里面的数据,不能重复,不能为空,一张表中最多只能有一个主键;
- 新增主键:alter table tb2 add prinary key(欲为主键column)
- 删除主键: alter table tb2 drop primary key; # 主键唯一不用指明具体column;
- 当主键加上auto_increment约束后,如果欲删除主键,仅仅alter table tb2 drop primary key;不行,需要先去自增约束,再alter table tb2 drop primary key;
- 复合主键:有多个字段共同作为主键
唯一键(unique)
- 一张表中有往往有多个字段需要唯一性,数据不能重复,但是一张表中只能有一个主键:唯一键就可以解决表中有多个字段需要唯一性约束的问题。
- 唯一键允许为空,而且可以多个为空,空字段不做唯一性比较。
- 唯一键和主键的区别:
主键不能为空,唯一键可以;
主键更多的是标识唯一性的。而唯一键更多的是保证在业务上,不要和别的信息
出现重复。
外键(foreign key (字段名) references 主表(列))
- 外键用于定义主表和从表之间的关系:
- 外键约束主要定义在从表上,主表则必须是有主键约束或unique约束。
- 参照完整性:当定义外键后,要求外键列数据必须在主表的主键列“存在或为null”。
举例:班级表id只有10,20;向从表插入时的class_id的值只能为10 / 20 / null;
- 数据一致性:当对主表中的主键数据进行修改(如更新或删除)时 ,通过设置外键约束的 ON DELETE 和 ON UPDATE 选项(如 CASCADE、SET NULL 等),可以自动、一致地更新或处理从表中的相关数据。
列描述(comment)/ 默认值(default)
列描述:类似于注释
默认值:类似于缺省值
举例:gender char(2) default ‘男’ comment '性别‘ # 都是单引号