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

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

2015-06-26 01:21:08向沖陳誠
亞太教育 2015年16期
關鍵詞:課程學生

文/向沖 陳誠

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]王良元,SQ連接、嵌套與混合查詢 [J],電腦學習,2005

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

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

猜你喜歡
課程學生
《無機化學》課程教學改革
云南化工(2021年6期)2021-12-21 07:31:42
快把我哥帶走
數字圖像處理課程混合式教學改革與探索
軟件設計與開發實踐課程探索與實踐
計算機教育(2020年5期)2020-07-24 08:53:38
為什么要學習HAA課程?
《李學生》定檔8月28日
電影(2018年9期)2018-11-14 06:57:21
趕不走的學生
學生寫話
學生寫的話
“學而時習之”的課程值得贊賞
教育與職業(2014年1期)2014-04-17 14:28:07
主站蜘蛛池模板: 国产精品爽爽va在线无码观看| 国产极品美女在线| 亚洲高清资源| 最新加勒比隔壁人妻| 欧美丝袜高跟鞋一区二区| 9966国产精品视频| 国产爽爽视频| 久久综合结合久久狠狠狠97色| 国产精品部在线观看| 高清无码一本到东京热| 亚洲国产日韩欧美在线| 18禁黄无遮挡网站| 久久99国产综合精品1| 国产一级无码不卡视频| 97在线公开视频| 亚洲国产一区在线观看| 久草性视频| 亚洲精品动漫| 青青网在线国产| 五月天在线网站| 国产亚卅精品无码| 亚洲综合经典在线一区二区| 大陆国产精品视频| 国产簧片免费在线播放| 99热这里只有精品在线观看| 91久久青青草原精品国产| 黄色网址免费在线| 国产真实乱人视频| 片在线无码观看| 青青久视频| 黄色不卡视频| 亚洲男女在线| 国产在线视频福利资源站| 国产欧美视频一区二区三区| 亚洲国产成人综合精品2020 | 亚洲人成网址| 亚洲va欧美va国产综合下载| 欧美成人午夜影院| 亚洲无码高清视频在线观看| 国产高清又黄又嫩的免费视频网站| 国产视频你懂得| 中文字幕在线观| 在线欧美国产| 一本一道波多野结衣av黑人在线| 国产精品三级av及在线观看| 亚洲一级毛片免费看| 国禁国产you女视频网站| 97国产成人无码精品久久久| 91年精品国产福利线观看久久| 97免费在线观看视频| 538国产视频| 成人av专区精品无码国产| 国产成人久久777777| 国产精品浪潮Av| 亚洲国产中文综合专区在| 最新精品久久精品| 玖玖精品在线| 国产成人精品高清在线| 国产成人精品视频一区二区电影 | 国产精品国产主播在线观看| 欧美69视频在线| 午夜性刺激在线观看免费| 国产免费网址| 在线精品亚洲国产| 久草视频中文| 国产精品无码翘臀在线看纯欲| 无码丝袜人妻| 久久久久夜色精品波多野结衣| 国产9191精品免费观看| 亚洲国模精品一区| 亚洲AV成人一区二区三区AV| 1024国产在线| 在线播放91| 最新国产你懂的在线网址| 亚洲精品国偷自产在线91正片| 亚洲天堂2014| 五月婷婷综合网| 一本大道无码日韩精品影视| 日韩激情成人| 日韩成人高清无码| 波多野结衣无码视频在线观看| 国产精品网拍在线|