工做以來用Mysql的頻率很是高,愈來愈以爲本身MySql的基礎知識很是差,故重學一下Mysql,順便作下筆記和總結,文章所涉及內容及資料均來自極客時間《SQL必知必會》專欄,有興趣的同鞋可自行購買,小弟就不貼推廣連接了~sql
按照SQL語言能夠劃分4個部分:
一、DDL(Data Definition Language),用來定義數據庫對象,數據表和列。使用DDL建立,刪除,修改數據庫和表的結構;
二、DML(Database Manipulation Language),數據庫操做語言,操做數據庫的相關數據,好比增長,刪除,修改表中的數據;
三、DCL(Data Control Language),數據控制語言,用它來定義訪問權限和安全等級;
四、DQL(Data Query Language),數據查詢語言,用它來查詢數據;數據庫
Mysql是Client/Server架構,體系架構圖以下:緩存
由如下幾個部分組成:安全
SELECT DISTINCT player_id, player_name, count(*) as num # 順序 5 FROM player JOIN team ON player.team_id = team.team_id # 順序 1 WHERE height > 1.80 # 順序 2 GROUP BY player.team_id # 順序 3 HAVING num > 2 # 順序 4 ORDER BY num DESC # 順序 6 LIMIT 2 # 順序 7
完整的順序是:
一、FROM子句組裝數據(包括JOIN)
二、WHERE子句進行條件篩選
三、GROUP BY分組
四、使用匯集函數進行計算;
五、HAVING篩選分組;
六、計算全部的表達式;
七、SELECT 的字段;
八、ORDER BY排序
九、LIMIT篩選架構
MySQL 中的流程是:SQL 語句→緩存查詢→解析器→優化器→執行器。分佈式