图灵程序设计丛书(SQL必知必会)笔记

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%' 才用到索引

 

原文地址:https://www.cnblogs.com/yi1036943655/p/9042884.html