SQL必知必会(1)--带你了解SQL的各种子句

SQL语句的执行顺序:

    下面按照在SQL语句中各关键词的顺序排放

  • 前面的第几步是数据库执行SQL语句时的执行顺序
  • 我的排列顺序是书写SQL语句时各关键词的排放顺序,不要搞混。
  • –第五步:执行SELECT投影列

  • –第一步:执行FROM

  • –第二步:WHERE条件过滤

  • –第三步:GROUP BY分组

  • –第四步:HAVING条件过

  • –第六步:执行ORDER BY 排序   注:如果又使用到了MySQL中的limit关键字,则limit要放在order by之后。

 

ORDER BY子句(检索数据的排序):

  • 可以按多个列进行排序,只有当第一个列的值相同时才会按第二个列排序。

  • DESC表示降序排序,ASC表示升序排序(数据默认按升序排序,所以一般用不到)

  • ORDER BY子句永远是SQL最后一句子句

 

WHERE子句条件操作符(部分冗余操作符未列出):

  • =:等于

  • >:大于

  • <:小于

  • !=:不等于

  • >=:大于等于

  • <=:小于等于

  • BETWEEN:范围检查,例:SELECT name,age,sex FROM `user` WHERE age BETWEEN 10 AND 20。

  • IS NULL :为NULL值(即未赋值),例:SELECT name,age,sex FROM `user` WHERE age IS NULL。

 

GROUP BY子句(对数据进行分组):

  • 可以包含多个列

  • 必须出现在WHERE子句之后,ORDER BY子句之前。

  • 子句中不能使用聚集函数

 

HAVING子句(过滤分组):

  • 一般与GROUP BY子句一块使用,对GROUP BY子句产生的分组做筛选。

  • 支持所有WHERE操作符,句法相同

  • WHERE在分组前进行过滤,HAVING在分组进行过滤。

 

组合查询:

  • 利用UNION操作符将多条SELECT语句的结果组成单个结果集。

  • UNION的使用很简单,只需在多条SELECT语句之间加上UNION关键字即可。例:SELECT * FROM `user` WHERE age=15 UNION SELECT * FROM `user` WHERE age=20

  • UNION连接的每个查询必须包含相同的列、表达式或聚集函数。

  • UNION查询时自动去除了重复的行,要返回所有行可以使用UNION ALL;

  • 使用UNION时,只能使用一条ORDER BY子句,且必须出现在最后一条SELECT语句之后

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章