999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

淺談《SQL Server數據庫》教學中的連接查詢和嵌套查詢

2015-06-26 17:42:38陳誠向沖
亞太教育 2015年16期

陳誠 向沖

摘要:本文通過對《SQL Server數據庫》課程中的連接查詢和嵌套查詢從定義、分類、使用等方面對比分析得出:兩者有時可以互換,各有其優缺點。在實際查詢過程中,可根據實際需求以及使用習慣,選取合適的查詢方式。

關鍵詞:SQL Server數據庫;連接查詢;嵌套查詢

中圖分類號:TP3文獻標志碼:A文章編號:2095-9214(2015)06-0147-02

1.引言

SQL語言是目前數據庫領域中非常實用、流行的主流語言。SQL是Structure Query Language的英文縮寫,意思是結構化查詢語言。包括:數據查詢(SQL)、數據操縱(DML)、數據定義(DDL)和數據控制(DCL)等功能于一體。數據查詢是數據庫的核心內容,也是我們最常用的操作。數據查詢是通過SQL語句來實現的,利用SQL語句可以從數據庫中查詢出我們所需要的各種數據。[1]

數據查詢分為單表查詢和多表查詢。單表查詢是對一個表的查詢,因為比較簡單,這里不再說明。多表查詢是對多個表,將分布在不同表中的數據根據需要進行查詢。多表查詢可以通過連接查詢和嵌套查詢來實現。[2]下面以學生管理數據庫為例,介紹以上兩種查詢。其中學生表和成績表的關系模式如下:學生(學號,姓名,性別,出生日期,籍貫,班級代碼);成績(學號,課程號,成績)。

1.1什么是連接查詢

1.1.1定義。根據各個表之間的邏輯關系從兩個或多個表中查詢數據。如:查詢學生的學號、姓名、課程名稱和成績,涉及到的數據表有學生、課程和成績。

1.2連接查詢的分類

1.2.1內連接。內連接(inner join)是一種最常用的連接類型。內連接是一種任意條件的查詢,如果兩個表的相關字段滿足連接條件,就從這兩個表中提取數據并組合成新的記錄,也就是在內連接查詢中,只有滿足條件的元組才能出現在結果關系中。[3]

例如:要查詢每個已經選課的學生的情況,查詢語句為:

SELECT * FROM學生INNER JOIN成績ON學生.學號=成績.學號

連接查詢根據比較方式分為:

1.2.1.1等值連接:使用等號(=)運算符比較被連接的列的列值,稱為等值連接。

1.2.1.2不等連接:使用除等于運算符以外的其它比較運算符比較被連接的列的列值,稱為不等連接。包括>、>=、<=、<、!>、!<和<>等運算符。

1.2.1.3自然連接:使用等于(=)運算符比較被連接列的列值,但刪除連接表中的重復列,稱為自然連接。它屬于等值連接的一種特殊情況。

1.2.2外連接。外連接是指將不滿足限制條件的表中的數據也顯示在最終結果中。

根據限制表的不同,外連接分為三種情況:

1.2.2.1左外連接(LEFTOUTER JOIN)

左外連接是限制連接條件右邊的表中的數據必須滿足連接條件,而不關左邊的表中的數據是否滿足連接條件,均輸出左邊表中的內容。

例如:要查詢所有學生的選課情況,包括已經選課的和還沒有選課的學生,查詢語句為:

SELECT學生.學號,姓名,班級代碼,課程號,成績

FROM學生LEFT OUTER JOIN成績ON學生.學號=成績.學號

左外連接查詢中左邊表中的所有元組的信息都得到了保留。

1.2.2.2右外連接(RIGHTOUTERJOIN)。右外連接與左外連接類似,只是右端表中的所有元組都列出,限制左端表的數據必須滿足連接條件,而不管右端表中的數據是否滿足連接條件,均輸出表中的內容。

例如:同上例內容,查詢語句為

SELECT學生.學號,姓名,班級代碼,課程號,成績

FROM學生RIGHTOUTERJOIN成績ON學生.學號=成績.學號

右外連接查詢中右邊表中的所有元組的信息都得到了保留。

1.2.2.3全外連接(FULL OUTER JOIN)。全外連接查詢的特點是左、右兩端表中的元組都輸出,如果沒能找到匹配的元組,就使用NULL來代替。

例如:同左外連接例子內容,查詢語句為:

SELECT學生.學號,姓名,班級代碼,課程號,成績

FROM學生FULL OUTER JOIN成績ON學生.學號=成績.學號

全外連接查詢中所有表中的元組信息都得到了保留。

1.2.3自連接。在同一個表內進行自身連接,這種查詢稱為自連接查詢,自連接必須為表指定兩個別名。

例如:要求檢索出和劉鑫同班同學的信息,查詢語句為:

SELECT 學生.*FROM學生JOIN學生AS學1 ON學生.班級代碼=學生1.班級代碼

WHERE學生1.姓名=‘劉鑫and學生1.學號<>學生.學號

1.2.4交叉連接。交叉連接即笛卡兒乘積,是指兩個關系中所有元組的任意組合。一般情況下,交叉查詢是沒有實際意義的。

例如:如果希望得到學生和成績兩個關系模式的乘積,查詢語句為:

2.SELECT * FROM學生CROSS JOIN成績

2.1什么是嵌套查詢

2.1.1定義。嵌套查詢是指在一個SELECT語句的WHERE子句中嵌套另一條SELECT語句的查詢,又稱為子查詢。

2.2嵌套查詢的分類

2.2.1無關子查詢。無關子查詢的執行不依賴于外部嵌套。查詢的執行過程為:首先執行子查詢,子查詢得到的結果作為外部查詢的條件使用,然后執行外部查詢。通常使用比較運算符或[NOT]IN關鍵字。

2.2.1.1返回一個值的子查詢。子查詢的返回值只有一個時,可以使用比較運算符如=、<、>、>=、<=、!=等將父查詢和子查詢連接起來。

例如:要求檢索出和劉鑫同班同學的信息,查詢語句為:

SELECT * FROM 學生 WHERE 班級代碼=

(SELECT 班級代碼FROM 學生 WHERE 姓名=劉鑫)AND 姓名<>劉鑫

2.2.1.2返回一組值的子查詢。子查詢的返回值不止一個,而是一個集合時,可以在比較運算符和子查詢之間插入ANY、SOME或ALL關鍵字。其中等值關系可以使用IN關鍵字。

例如:查詢成績高于選修了“計算機基礎”課程平均成績的學生的學號和姓名。

SELECT學生.學號,學生.姓名FROM成績JOIN學生ON學生.學號=成績.學號

JOIN課程ON成績.課程號=課程.課程號WHERE課程名='計算機基礎' AND

成績>ANY(SELECT avg(成績)FROM成績,課程WHERE成績.課程號=課程.課程號and課程名=‘計算機基礎)

2.2.2相關子查詢。相關子查詢是指在子查詢中,子查詢的查詢條件中引用了外層查詢表中的值。執行時先執行外部查詢語句,然后根據外部查詢返回的結果執行內部查詢語句。通常使用[NOT]EXISTS 關鍵字。

例如:查詢沒有學習任何課程的學生的學號和姓名。

SELECT 學號,姓名FROM 學生WHERE NOT EXISTS(SELECT * FROM 成績 WHERE 成績.學號=學生.學號)

3.連接查詢和嵌套查詢對比分析

從“要求檢索出和劉鑫同班同學的信息”這個例子中我們可以看到,使用連接查詢和嵌套查詢實現該查詢的結果完全相同。由此我們可以得出這樣一個結論:連接查詢和嵌套查詢之間有時是可以相互替換的,但不是所有情況下都可以互換。下面將分別介紹連接查詢和嵌套查詢的優劣。

3.1連接查詢的優勢和劣勢。連接查詢使用簡單,但因為在各表連接的同時對所有的條件綜合查詢,所以不易發現錯誤,一旦出錯,糾錯也比較麻煩。另外,連接查詢實際上是將所有表根據條件先合并成一個表。因此在數據量很大的情況下,對計算機系統的要求較高,需占用更多的系統資源。

3.2嵌套查詢的優勢和劣勢。嵌套查詢是用戶必須清楚每一個子查詢的結果及各表之間的邏輯關系,對用戶要求較高。但嵌套查詢是逐步求解,需要的計算機系統開銷較小。

3.3怎樣合理運用連接查詢和嵌套查詢。綜上可以看出,連接查詢和嵌套查詢各自有其優勢和劣勢,在實際查詢過程中到底采用哪種查詢方式,因根據使用習慣及對兩種查詢方式的熟練程度確定,也可以混合使用。

4.總結

綜上所述,查詢的優化必須符合以下條件:滿足查詢需求的同時提高查詢速度,并能減少計算機系統開銷為原則。熟練掌握SQL查詢功能及技巧是基礎,另外了解每種查詢的優劣才能更好的選擇合適的查詢方式。筆者首先介紹了連接查詢和嵌套查詢的定義和分類,然后通過兩者的對比分析,比較了兩者的優勢和劣勢,總結出實際使用過程中可根據自身的實際需求和使用習慣選擇合適的查詢方式。

(作者單位:1.武昌職業學院;2.湖北華秦教育軟件技術有限公司)

參考文獻:

[1]王良元,SQ連接、嵌套與混合查詢[J],電腦學習,2005

[2]張文雯,SQ嵌套查詢[J],信息技術,2011

[3]雷琳,SQL查詢語句優化的研究[J],武漢船舶職業技術學院,2011

主站蜘蛛池模板: 67194成是人免费无码| 啪啪啪亚洲无码| 日本精品视频一区二区| 亚洲精品波多野结衣| 欧美成人二区| 国产成人综合久久| 亚洲国产91人成在线| 亚洲娇小与黑人巨大交| 无码中文AⅤ在线观看| 国产簧片免费在线播放| 国产第一页免费浮力影院| 国产素人在线| 亚洲娇小与黑人巨大交| 国产一区二区三区免费观看| 精品乱码久久久久久久| 国产精品太粉嫩高中在线观看| 国产亚洲精品自在久久不卡| 2021国产乱人伦在线播放 | 人妻精品久久无码区| 人妻中文久热无码丝袜| 国产无码精品在线播放| 欧美日韩亚洲国产主播第一区| 国产麻豆精品久久一二三| 成人无码一区二区三区视频在线观看| 成人日韩欧美| 成人在线综合| 97国产在线播放| 国产一在线| 四虎永久免费地址| 日本黄色a视频| 国产精品9| 无码AV高清毛片中国一级毛片| 青青国产视频| 热九九精品| 成人福利视频网| 欧美啪啪网| 这里只有精品免费视频| 亚洲欧洲美色一区二区三区| 欧美日韩国产在线观看一区二区三区| 欧美乱妇高清无乱码免费| 日本欧美视频在线观看| 亚洲精品无码久久毛片波多野吉| 在线视频精品一区| 成人午夜精品一级毛片 | 亚洲成人免费看| 欧美国产精品不卡在线观看| 日韩少妇激情一区二区| 97精品久久久大香线焦| 伊人婷婷色香五月综合缴缴情| 色有码无码视频| 久精品色妇丰满人妻| 一本一本大道香蕉久在线播放| 亚洲第一综合天堂另类专| 99手机在线视频| 日本伊人色综合网| 亚洲日本一本dvd高清| 亚洲综合中文字幕国产精品欧美| 亚洲色图欧美视频| 色天堂无毒不卡| 五月天福利视频 | 亚洲av无码牛牛影视在线二区| 666精品国产精品亚洲| 成人国产小视频| 丁香婷婷激情网| 中文字幕久久亚洲一区| 欧美中出一区二区| 日韩免费毛片视频| 中文字幕久久亚洲一区| 高h视频在线| 99资源在线| 国产哺乳奶水91在线播放| 超清无码熟妇人妻AV在线绿巨人| 国产三区二区| 国产视频自拍一区| 精品人妻AV区| 热这里只有精品国产热门精品| 综合网天天| 亚洲人成影院午夜网站| 天天操天天噜| 久久99国产综合精品1| 丁香五月婷婷激情基地| www.国产福利|