表的约束
空属性(NULL)
此时 name 的 Null 被置为 No
默认值
列描述
没有实际含义,专门用来描述字段,相当于注释
zerofill
没有啥实际用处,就是一个用来展示的
主键
可以看到key中多了PRI字符,即代表主键,主键不能为空
主键属性
定义的时候,可以给列的属性当中增加 priary key 来定义为主键
①当前被定义为主键的列,不能为空,不能重复
测试:
发现插入时如果未插入主键会自动填入并发出警告
如果插入相同的主键则会报错无法插入数据
②一张表当中只能有一个主键
复合主键
一张表当中只能有一个主键,但是可以由多个列作为复合主键
追加主键
当表创建好后,可以追加主键
删除主键
alter table [表名] drop primary key;
自增长
auto_increment:当相应的字段,不给值时会被系统自动触发,系统会对当前字段中已经有的最大值进行+1操作,通常和主键搭配使用,作为逻辑主键
特点:
任何一个字段要做自增长,前提是本身是一个索引(key一栏有值)
自增长字段必须是整数
一张表最多只能有一个自增长
唯一键
唯一键可以解决表中有多个字段需要唯一性约束的问题
唯一键允许为空,且可以有多个为空,空字段不做唯一性比较
如果不想为空可以在后面加上not null
如果一个数据表中有列被设为唯一键的同时被设置为非空,那么第一个设为唯一键并非空的列会被设为主键
外键
外键用于定义主表和从表之间的关系
此时有两张表,一张代表了学生,一张代表班级
此时如果想添加学生,就要在班级下添加,即学生受班级的约束,班级表可以当做基础表,学生受clss_id的外键约束
班级表为主表,学生表为从表
设置外键为:
foreign key (此表中需要被外键关联的列名) references [主表名](外键关联名);
例如刚才的学生作为从表班级作为主表
此时尝试往学生表中插入不属于班级表中的班级信息
报错了