關於Mysql的一些整理
阿新 • • 發佈:2018-12-15
一、SQL的select語句完整的執行順序
- from子句組裝來自不同資料來源的資料
- where子句基於指定的條件對記錄行進行篩選
- group by子句將資料劃分為多個分組
- 使用聚集函式進行計算
- 使用having子句進行篩選分組
- 計算所有的表示式
- select欄位
- 使用order by 對結果集進行排序
二、SQL值聚合函式
聚合函式是對一組值進行計算並返回單一的值的函式,它經常與select語句中的gruop by 子句一同使用
- avg():返回的是指定組中的平均值,空值被忽略.
- count():返回的是指定組中的專案個數
- max():返回指定資料中的最大值
- min():返回指定資料中的最小值
- sum():返回指定資料的和,只能用於數字列,控制忽略
- group by():對資料進行分組,對執行完group by之後的組進行聚合函式的運算,計算每一組的值。最後用having去掉不符合條件的 組,having子句中的每一個元素必須出現在select列表中
三、SQL之連線查詢
- 外連線:
左連線(左外連線):以左表為基準進行查詢,左表資料會全部顯示出來,右表如果和左表匹配的資料則顯示對應欄位的資料,如果 不匹配則顯示為null
右連線(憂外連結):以右表為基準進行查詢,右表資料會全部顯示出來,左表如果和右表匹配的資料則顯示對應的欄位資料,如果 不匹配則顯示為null
全連線:先以左表進行左外連線,再以右表進行右外連線。
- 內連線:顯示錶之間有連線匹配的所有行
四、Mysql的效能優化
- 當只要一行的資料時使用limit 1
- 選擇正確的資料庫引擎
- 用not exists 代替 not in
- 對操作符的優化,儘量不採用不利於索引的操作符
五、sql面試題
給大家推薦一篇非常好的部落格,該部落格中收集了最常見的 Mysql 常見面試題和筆試題。
部落格連結: http://www.cnblogs.com/qixuejia/p/3637735.html