我整理了一下网上的sql优化,有错误望指正
设计数据库时尽量不要让字段默认为空
少用
外连接>内连接>自然连接
内连接语法
Select 查询列表 from 表1 inner join表2 on 连接条件
外连接语法(分左外与左内)
Select 查询列表 from 表1 left join表2 on 连接条件 (左外以左边表为主)
Select 查询列表 from 表1 right join表2 on 连接条件 (右外以右边表为主)
自然连接
Select 查询列表 from 表1,表2 where 连接条件
where 条件1 or 条件2 可以使用union代替
Select 查询列表 from 表名 where 条件1
Union
Select 查询列表 from 表名 where 条件2
使用union只会显示结果集中不同数据,要是显示所有数据使用 union all,尽量使用union all
使用union时两个查询结果集字段数量必须相同,类型相同
语法:
Select 查询列表 from 表
Union
Select 查询列表 from 表1
尽量使用count(1)代替count(
)
尽量使用数字字段
查询一定范围可以使用between小的数值 and 大的数值(条件为连续数值不要用in)
模糊查询中少使用%
Select 查询列表 from where 字段 like ‘%条件%’%代表任意字符串 _代表一个字符
在where或order by中尽量不要对索引字段操作
子查询表大用exists,子查询表小用in
select 查询列表 from 表 where exists(查询语句)有结果集返回true,反之false