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
主站蜘蛛池模板: 国产一级做美女做受视频| 亚洲视频四区| 欧美在线国产| 久久久久亚洲精品无码网站| 国产精品理论片| 中国一级毛片免费观看| 亚洲 欧美 日韩综合一区| 热99精品视频| 国产精品嫩草影院av | 国产真实二区一区在线亚洲| 精品无码国产自产野外拍在线| 白浆免费视频国产精品视频| 亚洲香蕉在线| 精品欧美日韩国产日漫一区不卡| 丁香婷婷激情网| 久久99国产视频| 亚洲成年人网| 精品欧美视频| 国产对白刺激真实精品91| 一级一级特黄女人精品毛片| 亚洲综合18p| 视频国产精品丝袜第一页| 色吊丝av中文字幕| 国语少妇高潮| 欧美成人综合在线| 免费看美女毛片| 一级毛片免费不卡在线| 40岁成熟女人牲交片免费| 亚洲h视频在线| 日韩欧美国产成人| 91成人在线免费观看| 国产后式a一视频| 欧美日韩久久综合| 欧美一区二区三区欧美日韩亚洲| 免费看a级毛片| 久996视频精品免费观看| 日韩精品一区二区三区大桥未久| 国产欧美亚洲精品第3页在线| 国产精品太粉嫩高中在线观看| 亚洲人成亚洲精品| 国产91色在线| 欧美影院久久| 亚洲成av人无码综合在线观看| 国产精品尤物铁牛tv| 国产美女无遮挡免费视频网站| 99热这里只有精品5| 综合天天色| 日韩欧美中文字幕一本| 欧美成人免费一区在线播放| 另类综合视频| 久久人搡人人玩人妻精品一| 精品国产女同疯狂摩擦2| 欧美国产成人在线| 国产精品成人AⅤ在线一二三四| 国产精欧美一区二区三区| 精品夜恋影院亚洲欧洲| 国产成人a毛片在线| 色香蕉影院| 国产精品福利导航| 午夜丁香婷婷| 婷婷色婷婷| 久久天天躁夜夜躁狠狠| 麻豆AV网站免费进入| 老司机精品一区在线视频| 91久久偷偷做嫩草影院| 亚洲视频a| 波多野结衣在线se| 欧洲成人免费视频| 青草视频网站在线观看| 欧美成人午夜影院| 久久国产香蕉| 中文字幕在线播放不卡| 成·人免费午夜无码视频在线观看 | 国产丝袜啪啪| 国产精品香蕉| 9丨情侣偷在线精品国产| 国产精品无码一区二区桃花视频| 中文字幕乱妇无码AV在线| 手机在线免费不卡一区二| 免费三A级毛片视频| 国产美女在线观看| 91久久国产综合精品女同我|