1. SELECT ..., ..., ... (存在聚合函数)
FROM ... (LEFT/RIGHT) JOIN ... ON 多表连接条件 (LEFT/RIGHT) JOIN ... ON 多表连接条件
WHERE 不包含聚合函数的过滤条件
GROUP BY ..., ...
HAVING 包含聚合函数的过滤条件
ORDER BY ..., ...(ASC/DESC)
LIMIT ..., ...
执行顺序:FROM -> ON -> JOIN -> WHERE -> GROUP BY -> HAVING -> SELECT -> DISTINCT -> ORDER BY -> LIMIT
2.数据类型
COLLATE utf8_bin 二进制比较,区分大小写;COLLATE utf8_general_ci 不区分大小写。
日期时间字段自动初始化和更新: dt datetime not null default current_timestamp on update current_timestamp
3.存储引擎
InnoDB(默认,支持外键、事务、行锁,B+树)、MyISAM(表锁)
聚簇索引:主键,叶子节点存储完整数据(所有列)
二级索引:非聚簇索引,叶子节点存储索引列和主键列的值,查询其他字段时需要回表
MyISAM索引的叶子节点存放的是数据记录的地址
4.索引
4.1适合创建索引:
(1)唯一性约束(2)频繁进行where、group by、order by的列(3)distinct字段(4)多表join的关联字段(5)使用字符串前缀创建前缀索引(6)联合索引优于单列索引
4.2索引失效:
(1)违反联合索引的最左前缀原则(2)计算、函数、类型转换包括隐式转换(3)不等于!= <>(4)like以通配符%开头(5)or的左右存在非索引列
4.3 explain
type:
5.事务
ACID、隔离级别
隔离性:锁机制
原子性、一致性:undo回滚日志
持久性:redo重做日志
并发问题解决:并发读 MVCC,并发写 加锁
6.其他
bin log :数据恢复、主从复制
mysqldump :数据备份(sql文件)
......