tip: 通过 desc 表名命令查看当前表信息
tip2: as 关键字可以为我们的字段或者表取别名
Mysql约束
顾名思义就是对表中的数据进行限定, 目的是保证数据的正确性, 有效性和完整性
主键约束...primary key
什么是主键
关系表中记录的唯一标识(不能为null, 不可重复)
选取和业务无关的字段, 常用的主键就是自增id
数据库引擎会通过主键建立索引, 索引是一个有序结构, 我们希望当前主键的值不要改变...性能问题
插数据需要校验
并发问题
在高并发的事务场景下, 使用外键容易造成死锁.
扩展性问题
外键就相当于把对象之间的关系交给数据库来维护, 如果遇到分库分表, 外键是不生效的....作数据迁移时, 触发器, 存储过程和外键都很难迁移, 增加了维护成本.
维护成本
需要有专业DBA来维护庞大的数据库关系
default
默认约束, 默认会填充当前字段....如果我们没有给一个有默认约束的字段create_time值, 那么该字段会默认填充CURRENT_TIMESTAMP
分组查询GROUP BY
将数据按某个字段进行分组, 配合SUM, AVG, COUNT