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

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

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

陳誠 向沖

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

關鍵詞:SQL Server數(shù)據(jù)庫;連接查詢;嵌套查詢

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

1.引言

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

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

1.1什么是連接查詢

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

1.2連接查詢的分類

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

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

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

連接查詢根據(jù)比較方式分為:

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

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

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

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

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

1.2.2.1左外連接(LEFTOUTER JOIN)

左外連接是限制連接條件右邊的表中的數(shù)據(jù)必須滿足連接條件,而不關左邊的表中的數(shù)據(jù)是否滿足連接條件,均輸出左邊表中的內(nèi)容。

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

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

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

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

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

例如:同上例內(nèi)容,查詢語句為

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

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

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

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

例如:同左外連接例子內(nèi)容,查詢語句為:

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

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

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

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

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

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無關子查詢。無關子查詢的執(zhí)行不依賴于外部嵌套。查詢的執(zhí)行過程為:首先執(zhí)行子查詢,子查詢得到的結果作為外部查詢的條件使用,然后執(zhí)行外部查詢。通常使用比較運算符或[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相關子查詢。相關子查詢是指在子查詢中,子查詢的查詢條件中引用了外層查詢表中的值。執(zhí)行時先執(zhí)行外部查詢語句,然后根據(jù)外部查詢返回的結果執(zhí)行內(nèi)部查詢語句。通常使用[NOT]EXISTS 關鍵字。

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

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

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

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

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

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

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

4.總結

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

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

參考文獻:

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

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

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

主站蜘蛛池模板: 五月天香蕉视频国产亚| 国产成人精品综合| 国产91在线|日本| 欧美a在线| 国产精品香蕉| 精品福利国产| 中文字幕亚洲专区第19页| 成人午夜免费观看| 天天激情综合| 亚洲天堂伊人| 免费一级全黄少妇性色生活片| 国产精品va| 欧美日韩资源| 亚洲男人在线| 精品少妇人妻无码久久| 在线精品自拍| 91九色视频网| 欧美国产视频| 国产美女在线免费观看| 91精品网站| 免费观看男人免费桶女人视频| 国产婬乱a一级毛片多女| 狠狠躁天天躁夜夜躁婷婷| 91po国产在线精品免费观看| 一级毛片免费高清视频| 人妻丰满熟妇AV无码区| 国产浮力第一页永久地址| 无码精品国产dvd在线观看9久| 四虎成人免费毛片| 亚洲国产精品一区二区第一页免 | 一级毛片中文字幕| 在线观看无码a∨| 日韩 欧美 小说 综合网 另类| 国产激情无码一区二区三区免费| 四虎永久免费在线| 91免费片| 很黄的网站在线观看| 久久久久无码国产精品不卡| 极品国产在线| 国产自在线拍| 成年人福利视频| 久久久黄色片| 国产精品专区第一页在线观看| 青青热久免费精品视频6| 99热这里只有精品免费国产| 中文字幕日韩欧美| 亚洲精品无码人妻无码| 无码AV动漫| 欧美中文字幕一区| 亚国产欧美在线人成| 99精品一区二区免费视频| 国产精品任我爽爆在线播放6080| 免费在线a视频| 日韩在线2020专区| 人妻21p大胆| 国产美女在线免费观看| a级毛片一区二区免费视频| 国产成人无码久久久久毛片| 国产丝袜丝视频在线观看| 日本免费一区视频| 国产欧美日韩专区发布| 一级片一区| 亚洲欧美日韩成人高清在线一区| 一边摸一边做爽的视频17国产| 亚洲Av激情网五月天| 91av国产在线| 国产微拍精品| 国产白浆一区二区三区视频在线| 久久人体视频| 国产91丝袜| 久久精品亚洲热综合一区二区| 国产高清免费午夜在线视频| 色综合手机在线| 婷婷丁香色| 国产亚洲欧美在线专区| 国产精品入口麻豆| 黄色在线网| 国产精品美女免费视频大全| 精品国产香蕉在线播出| 中文字幕佐山爱一区二区免费| 九九久久99精品| 国产一区免费在线观看|