MySQL學習(四)查詢

1、group_concat()函數。把groupby的分組中字段數據組合顯示出來函數

  select s_id , GROUP_CONCAT(要顯示的字段名)  from table group by 分組字段ui

2、group_by 與 Having 結合 :根據條件篩選分組條件spa

  select s_id ,group_concat(f_name) as names from fruits group by a_id having count(f_name) > 1設計

  Having  與 where 區別:it

  1. 關鍵字用來在數據分組以後進行分組篩選。
  2. where在分組以前篩選記錄,且where排除掉的數據不會出如今分組的結果中

3、多字段分組table

  使用group by進行分組,指定多個字段,能夠按照層次分組,先根據第一個字段進行分組,而後在對分組根據第二根第二個字段進行分組。class

4、使用LImit限制查詢結果的數量select

  Limit [位置偏移量],行數im

  偏移量能夠不指定,行數指返回的數據的條數數據

  select * from frults limit 4:返回查詢結果的前4條數據

  select * from frults limit 5,3 :返回查詢結果偏移量爲5(從第六條數據開始)後的三條數據

5、內鏈接查詢

  select * from frults ,suppliers where frults.s_id = suppliers.s_id

  select * from frults inner join suppliers on frults.s_id = suppliers.s_id

  兩種方式同樣的

6、自鏈接查詢

  查詢中設計的表示在物理上同一張表,邏輯上是兩張表。自鏈接是一種特殊的內鏈接

  select  f1.s_id , f2.s_id from frults as f1 ,frults as f2 where f1.s_id = f2.s_id and f1.s_id = "a1"

7、左外鏈接查詢

  包括左表的全部行,若是右表沒有匹配行就會爲NUL

  select * from frults left outer join suppliers on frults.s_id = suppliers.s_id

8、右外鏈接查詢

  包括右表的全部行,若是左表沒有匹配行就會爲NUL

  select * from frults right outer join suppliers on frults.s_id = suppliers.s_id

9、ANY,SOME只要知足其中一個就返回true

10、ALL 全部條件都知足才返回True

11、exists關鍵字:若是子查詢返回結果不爲空,則會進行主查詢,不然不會進行主查詢,能夠在where中使用

相關文章
相關標籤/搜索