介绍
实用SQL语句总结
CRUD
查询
- 强制使用索引
SELECT * FROM students FORCE INDEX (idx_class_id) WHERE class_id = 1 ORDER BY id DESC;
DML
新增字段
ALTER TABLE table_name ADD field VARCHAR(100) CHARACTER SET utf8mb4 NULL DEFAULT
新增字段,具体操作步骤:
- 首先创建新的临时表,表结构通过命令ALTAR TABLE新定义的结构
- 然后把原表中数据导入到临时表
- 删除原表
- 最后把临时表重命名为原来的表名
注意事项:
- 选择业务不繁忙,低流量下执行,避免锁表影响业务
- 关注日志、监控、告警
- 预发环境模拟,评估风险
清空表数据
truncate table table_name;
delete * from table_name;
- truncate是整体删除,速度快;delete是按记录逐条删除,速度慢
- truncate不写服务器log;delete写服务器log,也就是delete比较慢的原因
- truncate不触发触发器,但会重置identity(自增列、标识列),自增列会被置为初始值;而delete自增列不会
- 删除部分数据,使用delete + where组合