MySQL在SQL中,合理的別名可以讓SQL更容易以及可讀性更高。別名使用as來表示,可以分為表別名和列別名,別名應該是先定義後使用才對,所以首先要瞭解sql的執行順序(1) from(2) on(3) join(4) where(5) group by(開始可以使用select的別名,後面的也行) ...
MySQL
在SQL中,合理的別名可以讓SQL更容易以及可讀性更高。別名使用as來表示,可以分為表別名和列別名,別名應該是先定義後使用才對,所以首先要瞭解sql的執行順序
(1) from
(2) on
(3) join
(4) where
(5) group by(開始可以使用select的別名,後面的也行)
(6) avg,sum…
(7) having
(8) select
(9) distinct
(10) order by
註意:from是最先執行的,select是在having之後運行的
這裡有兩張表
一
1.1 列別名
SQL語句select id,name as colname from students;
,結果為
在這裡可以看到我們給 name 添加了一個別名,輸出後原表的 name 欄位變為現在的別名欄位 colname;
1.2 表別名
SQL語句select stu.name,sc.score from students as stu,score as sc where stu.id=sc.id;,結果為
我們給表students起個別名stu,給score起個別名sc。
二
JOIN連接
2.1 inner join
以上面兩表為例,下麵連接上面的兩張表,匹配id相同的信息
SQL語句為select a.id,a.name,a.subject,b.score from students a inner join score b on a.id=b.id;(on/where),結果是
INNER JOIN 的表關聯模型如下:
綠色部分即為兩張表關聯的部分。
2.2 left join
LEFT JOIN 與 INNER JOIN 有所不同,LEFT JOIN 會讀取左側數據表的全部數據,即使右側表中無對應數據。我們將students表作為左側表,score為右側表
SQL語句select a.id,a.name,a.subject,b.score from students a left join score b on a.id=b.id;結果為
因為兩張表的id均為3,所以結果看起來和inner join效果一樣,其實不然,這裡重點將用法!!!
LEFT JOIN 的表關聯模型如下:
上圖中綠色的部分,為兩表的左關聯結果。
原文鏈接:https://blog.csdn.net/sun_xiao_kai/article/details/88075501
如有侵權,請立即聯繫我