SQL语法基础篇 —— 常用的SQL标准
常用的SQL標準
SQL有兩個主要的標準,分別是SQL92和SQL99。92和99代表了標準提出的時間,SQL92就是92年提出的標準規范。除了SQL92和SQL99以外,還有其他的標準。
最重要的SQL標準就是SQL92和SQL99。一般來說SQL92的形式更簡單,但是寫的SQL語句會比較常,可讀性較差。而SQL99相比于SQL92來說,語法更加復雜,但可讀性高。
在SQL92中式如何使用連接的
相比于SQL99,SQL92規則更簡單,更適合入門。
陳旸老師創建的NBA球員和球隊兩張表,SQL文件可以從GitHub上下載。
player表為球員表,一共有37個球員
team表為球隊表,一共有3支球隊
SQL92中的5中連接方式
a.笛卡爾積
b.等值連接
c.非等值連接
d.外連接(左連接、右連接)
e.自連接
笛卡爾積
實例:
-- 假定player表的數據是集合X,進行SQL查詢 SELECT * FROM play; -- 假定team表的數據為集合Y,進行SQL查詢 SELECT * FROM team;兩張表的笛卡爾積的結果
SELECT * FROM play, team;查詢結果(111條記錄)
笛卡爾積也稱為交叉連接,英文是CROSS JOIN,它的作用就是可以把任意表進行連接,即使這兩張表不相關。
等值連接
兩張表的等值連接就是用兩張表中都存在的列進行連接。
實例:
- 針對player表和team表都存在team_id這一列
查詢結果
進行等值連接的時候,可以使用表的別名,這樣會讓SQL語句更簡潔。
注:如果使用了表的別名,在查詢字段中就只能使用別名進行代替,不能使用原有的表名。
非等值連接
進行多表查詢的時候,如果連接多個表的條件是等號時,就是等值連接,其他的運算符連接就是非等值查詢。
創建一個身高級別表height_grades
player表中有身高height字段,如果想要每個球員的身高的級別,可以采用非等值連接查詢。
查詢結果
外連接
除了查詢滿足條件的記錄以外,外連接還可以查詢某一方不滿足條件的記錄。兩張表的外連接,會有一張是主表,另一張是從表。
在SQL92中采用(+)代表從表所在的位置,而且在SQL92中,只有左外連接和右外連接,沒有全外連接。
-- 左連接,就是左邊的表是主表,而右側的表是從表,(+)表示哪個是從表 SELECT * FROM player, team WHERE player.team_id = team.team_id(+);相當于SQL99中的
SELECT * FROM player LEFT JOIN team on player.team_id = team.team_id;右外連接
SELECT * FROM player, team WHERE player.team_id(+) = team.team_id;相當于SQL99中的
SELECT * FROM player RIGHT JOIN team on player.team_id = team.team_id;注:LEFT JOIN和RIGHT JOIN只存在于SQL99及以后的標準中,在SQL92中不存在,只能用(+)表示。
自連接
自連接可以對多個表進行操作,也可以對用一個表進行操作。也就是查詢條件使用了當前的字段。
實例:
- 查看比布雷克·格里芬高的球員都有誰,以及他們的對應身高:
查詢結果(6條記錄)
如果不用自連接的話,需要采用兩次SQL查詢。
首先需要查詢布雷克·格里芬的身高
SELECT height FROM player WHERE player_name = '布雷克-格里芬';查詢結果:2.08
然后再查詢比2.08高的球員都有誰,以及他們的對應身高
SELECT player_name, height FROM player WHERE height > 2.08;查詢結果和自連接的結果一致
小結
總結
以上是生活随笔為你收集整理的SQL语法基础篇 —— 常用的SQL标准的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 基于51/52单片机毕业设计课题选题表/
- 下一篇: SQL 标准发布第 15 部分:ISO/