一、昨日内容回顾
约束条件之主键
primary key
1.InnoDB规定表必须有且只有一个主键(单列主键 联合主键)
id int primary key 单例主键
id int,uid int,primary key(id,uid) 联合主键
id int primary key auto_increment 主键自增
2.如果表中有主键 那么基于主键查询数据速度会非常快
3.单从约束层面而言 等价于not null unique
4.如果表中没有写primary key的字段 但是有not null unique的字段 那么会从上往下将第一个字段升级为主键
5.以后创建表的时候应该有一个序号相关的字段 并且应该作为主键(id nid uid)
约束条件之自增
auto_increment
1.一张表中只能有一个自增字段!!!!!!!!!!!!!!!!!
2.并且自增字段只能是键(最常见的是主键)
3.自增特性
delete from 不会影响主键自增
truncate 重置
约束条件之外键
外键字段:记录表与表之间数据的关系
数据关系的四种情况
一对多、多对多、一对一、没有关系
数据关系的判断法则
基于换位思考循环两个问题:各自表中的单条数据能否对应多条
一个可以一个不可以:一对多(外键字段建在多的一方)
两个都可以:多对多(需要单独开设第三张表)
两个都不可以:没有关系、一对一(建议建在查询频率较高的表)
相关SQL语句
foreign key(字段) references 表名(字段)
on update cascade
on delete cascade
外键字段特性
"""
外键字段也不一定非要用 很多大型项目为了解耦合 甚至不用外键
自己写代码或者SQL建立逻辑层面上的关系
"""
二、操作表的sql语句
# alter 改变
1.修改表名