mysql mysql的全部查詢語句和聚合函數(整理一下,忘記了能夠隨時看看)

1. 查詢全部字段

select * from 表名;php

2. 查詢自定字段

select 字段名 from 表名;java

3. 查詢指定數據

select * from 表名 where 條件;正則表達式

4. 帶關鍵字IN的查詢

select * from 表名 where 條件 [not] in(元素1,元素2);函數

5. 帶關鍵詞BETWEEN...AND...

select * from 表名 where 條件 [not] between 取值1 and 取值2;code

6. 帶like的字符匹配查詢

like屬於經常使用的比較運算符,實現模糊查詢。它有通配符"%"和"_"。
select * from 表名 where 條件 like "%取值%";
在工做中的咱們也經常使用 concat()函數來拼接字段和通配符
select * from 表名 where 條件 like concat('%',取值,'%');regexp

7. 用關鍵字IS NULL查詢空值

select * from 表名 where 條件 is [not] null;排序

8. 帶AND的多條件查詢

select * from 表名 where 條件1 and 條件2;
這裏的條件能夠是上面的任何一種,至關於邏輯運算的&&字符串

9. 帶關鍵詞OR的多條件查詢

select * from 表名 where 條件1 or 條件2;
至關於邏輯運算的||it

10. 用關鍵詞DISTINCT去除結果中的重複行

seelct distinct 字段名 from 表名;io

11. 用關鍵詞ORDER BY對查詢結果進行排序

select * from 表名 order by 字段 [ASC|DESC];

12. 用關鍵詞GROUP BY分組查詢

select * from 表名 group by 字段;
能夠多字段分組,可是會對後面的字段分組,再對前面的字段細微分組

13. 用關鍵詞LIMIT限制查詢結果的數量

  • 看前面n條數據
    select * from 表名 limit n;
  • 看從m開始的n條數據(下標從0開始)
    select * from 表名 limit m,n;

14. 聚合函數

  • count() 統計個數
  • sum() 某個字段的總數(null值除外)
  • avg() 某個字段的平均值
  • max() 某個字段最大值
  • min() 某個字段最小值

15. 連接查詢

  • 內鏈接查詢
    內鏈接查詢其實就是咱們日常的多表查詢
  • 外鏈接查詢
    外鏈接包含左外鏈接(left join)和右外鏈接(right join)。
    左外鏈接:將座標的全部數據分別與右表中的每條數據進行鏈接組合,返回結果除內鏈接數據外還有左表不符合條件的數據,並在右表的相應列添加null值。
  • ps:內鏈接和外鏈接最大的區別就是內連接查詢將會把兩張表條件爲null或者另外一張表不存在的不顯示,而外鏈接是會將左表或者右表都顯示。

16. 子查詢

子查詢就是select查詢的是另外一個查詢的附屬。

  • 帶關鍵字IN的子查詢
  • 帶比較運算符的子查詢
  • 帶關鍵字EXISTS的子查詢
    關鍵字EXISTS時,內層查詢語句不返回查詢記錄。而是返回一個真假值。
    例如:select * from tb_row where exists (select * from tb_book where id=27);
    這裏是查詢tb_book表中存在id值爲27是否存在,存在則查詢tb_row的全部行。
  • 帶關鍵字ANY的子查詢
    關鍵字ANY表示知足其中任意一個查詢條件。
    例如:select * from tb_book where row < ANY(select row from tb_row);
    表示查詢tb_book表中row比tb_row中任何row都小的行數據。
  • 帶關鍵字ALL的子查詢
    關鍵字ALL表示知足全部的條件。使用關鍵字ALL時,只知足 內層查詢語句返回的全部結果才能執行外層查詢語句。 例如:select * from tb_book where row>=ALL(select row from tb_row);
    表示查詢tb_book表中row字段的值大於tb_row表中的row字段的最大值的記錄。

17. 合併查詢結果

  • union
  • union all
  • ps:union和union all的差異就是union會去除相同的記錄,而union all會知識簡單的把結果合併到一塊兒。

18. 定義表和字段的別名

  • 爲表取別名
    可使用 直接在真表名和別名之間加一個空格。
  • 爲字段取別名
    可使用空格或者 as 關鍵字。

19. 使用正則表達式查詢

字段名 regexp '匹配方式'
模式字符 含義 應用舉例
^ 匹配以特定字符或者字符串開頭的記錄 查詢以java開頭的記錄 <br> select * from tb_book where books regexp '^java'
$ 匹配以特定字符或字符串結尾的記錄 查詢以模塊結尾的記錄select * from tb_book where books regexp '模塊$'
. 匹配字符串的任意一個字符,包括回車和換行符 查詢包含P字符的記錄select * from tb_book where books regexp 'P.'
[字符集合] 匹配「字符集合」中的任意一個字符 查詢包含PCA字符的記錄select * from tb_book where books regexp '[PCA]'
[^字符集合] 匹配除「字符集合」之外的任意一個字符 查詢包含c~z字母之外的記錄select * from tb_book where books regexp '[^c-z]'
s1豎線s2豎線s3 匹配S一、S二、S3中任意一個字符串 查詢包含php、c、java中任意一個的記錄select * from tb_book where books regexp 'php豎線c豎線java'
* 匹配多個該符號以前的字符,包括0和1個 查詢A字符前出現過J的記錄select * from tb_book where books regexp 'J*A'
+ 匹配多個該符號以前的字符,包括1個 查詢在A字符前至少出現過一個J的記錄select * from tb_book where books regexp 'J+A'
字符串{N} 匹配字符串出現屢次 查詢a字符出項3次的記錄select * from tb_book where books regexp 'a{3}'
字符串{M,N} 匹配字符串出現至少M次,最多N次 查詢A字符出現2-4次的記錄select * from books regexp 'a{2,4}'
相關文章
相關標籤/搜索