MySQL分組,聚合函數,連表查詢,子查詢


>>>分組:

  set global sql_mode="strict_trans_tables,only_full_group_by";  更改數據庫模式,在分組后,只能顯示被分組字段和使用聚合函數選取出來的字段.

  group by + group_concat

  

  分組:類似於將一個班級的學生,按照性別或其他條件,分成若干個組,最終以小組為單位顯示,如上圖中,以post字段對表進行分組,若想在分組后,操作每個組內的數據,有兩種方式,一種是通過聚合函數(max,min,avg,sum),一種是group_concat.

  聚合函數(max,min,avg,sum)

    max:取每個組內某個字段值的最大值

    min:取每個組內某個字段值的最小值

    avg:求第個組的內某個字段值的平均值

    sum:求每個組內某個字段值的和

  group_concat:可以提取分組中的字段,並可以將值與值進行拼接顯示.

  

  having:必須在group by 之后,作用是,對分組后的數據,進行再次篩選

  

  如上圖:求每個部門中薪資最高的人,且只保留薪資大於10000的人

 

>>>連表查詢

  

 

  inner join:內連接:只取兩張表有對應關系的記錄

  

 

  left join:左連接: 在內連接的基礎上保留左表沒有對應關系的記錄

  

 

  right join:右連接: 在內連接的基礎上保留右表沒有對應關系的記錄    

       

 

   union:全連接:在內連接的基礎上保留左、右面表沒有對應關系的的記錄

  

 

>>>子查詢

  將表1的查詢結果,做為表2的查詢條件,即為子查詢.

  

  如圖:查詢員工jason所在的部門.


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM