SQL必知必会
第二课:检索数据
1、分页
(1)、SQL Server 栗子 : select top 2 columns from tableName
(2)、Oracle 栗子 :select * from tableName ROWNUM <= 5
(3)、Mysql 栗子:selct * from tableName limit 5
// 注意事项:
1、mysql 分页 如果要查询 第0条开始 查询10条 栗子 select * from tableName limit 10 offset 0 简化版就是常用的 limit 0,10 其中 “0” 代表的是offset “10” 代表的是limit
第二课:排序检索数据
1、多列排序
select * from tableName order by column1,column2
说明: (1)、如果column1是唯一的,不会排序column2。
(2)、如果不是唯一的,则在不唯一(相同值的column1基础上)排序column2。
第四课:过滤数据
1、优先级
(1)、AND 比 OR 优先级高
第五课:高级过滤数据
1、NOT 和 <> 是一个意思 原本以为NOT只是使用与 NOT IN 其实是适用于所有表达式
第六课:使用通配符过滤数据
1、LIKE
(1)、能用其他方式实现就用其他方式
(2)、使用一定要放到WHERE最后一个子语句(写在WHERE条件最后)否则效率很差
第九课:汇总数据
1、聚合函数
(1)、ALL(对所有行执行计算)
(2)、DISTINCT(对不重复的行执行计算)
第14课:组合查询
1、UNION 、UNION区别 是 第一个查询不带两个(多个)sql共同查询出来的数据(只显示一个)、最后是查询出所有数据(不管是不是重复的 只要查到就显示 哪怕显示两条一样)
索引 条件:
1:肯定在where条 经常使用
2:该字段的内容不是唯一的几个值()
3:字段内容不是频繁变化
SQL 优化 :
原文:https://www.cnblogs.com/jameslif/p/6406167.html
1.下面的查询也将导致全表扫描:
select id from t where name like '%abc%' 或者
select id from t where name like '%abc' 或者
若要提高效率,可以考虑全文检索。
而select id from t where name like 'abc%' 才用到索引