日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

SQL语法基础篇 —— 常用的SQL标准

發布時間:2023/12/14 数据库 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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這一列
SELECT player_id, player.team_id, player_name, height, team_name FROM player, team WHERE player.team_id = team.team_id;

查詢結果

進行等值連接的時候,可以使用表的別名,這樣會讓SQL語句更簡潔。

SELECT player_id, a.team_id, player_name, height, team_name FROM player AS a, team AS b WHERE a.team_id = b.team_id;

注:如果使用了表的別名,在查詢字段中就只能使用別名進行代替,不能使用原有的表名。

非等值連接

進行多表查詢的時候,如果連接多個表的條件是等號時,就是等值連接,其他的運算符連接就是非等值查詢。

創建一個身高級別表height_grades

player表中有身高height字段,如果想要每個球員的身高的級別,可以采用非等值連接查詢。

SELECT p.player_name, p.height, h.height_level FROM play AS p, height_grades AS h WHERE p.height BETWEEN h.height_lowest AND h.height_highest;

查詢結果

外連接

除了查詢滿足條件的記錄以外,外連接還可以查詢某一方不滿足條件的記錄。兩張表的外連接,會有一張是主表,另一張是從表。

在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中不存在,只能用(+)表示。

自連接

自連接可以對多個表進行操作,也可以對用一個表進行操作。也就是查詢條件使用了當前的字段。

實例:

  • 查看比布雷克·格里芬高的球員都有誰,以及他們的對應身高:
SELECT b.player_name, b.height FROM player as a, player as b WHERE a.player_name = '布雷克-格里芬' and a.height < b.height;

查詢結果(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标准的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。