數(shù)據(jù)庫系統(tǒng)原理課件:數(shù)據(jù)查詢功能與視圖_第1頁
數(shù)據(jù)庫系統(tǒng)原理課件:數(shù)據(jù)查詢功能與視圖_第2頁
數(shù)據(jù)庫系統(tǒng)原理課件:數(shù)據(jù)查詢功能與視圖_第3頁
數(shù)據(jù)庫系統(tǒng)原理課件:數(shù)據(jù)查詢功能與視圖_第4頁
數(shù)據(jù)庫系統(tǒng)原理課件:數(shù)據(jù)查詢功能與視圖_第5頁
已閱讀5頁,還剩123頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、1第4章 SQL語言4.1 SQL語言概述4.2 數(shù)據(jù)定義功能與約束4.3 數(shù)據(jù)操縱功能4.4 數(shù)據(jù)查詢功能與視圖2查詢語句的基本結(jié)構(gòu)SELECT FROM WHERE GROUP BY HAVING ORDER BY 34.4 數(shù)據(jù)查詢功能與視圖5.4.1 單表查詢5.4.2 查詢條件的設(shè)置5.4.3 聚合函數(shù)5.4.4 分組5.4.5 查詢結(jié)果的排序5.4.6 多表連接查詢5.4.7 子查詢5.4.8 視圖4單表查詢數(shù)據(jù)源只涉及一張表的查詢選擇列5查詢語句的結(jié)構(gòu)SELECT FROM 6CREATE TABLE 演員( 姓名 char ( 20 ), 工號 char ( 10 ), 性別

2、char (2), PRIMARY KEY (工號 ) )CREATE TABLE 電影( 片名 char ( 60 ), 導演 char ( 20 ), 年代 datetime, PRIMARY KEY (片名,年代 ) )CREATE TABLE 出演( 工號 char ( 10 ), 片名 char ( 60 ), 年代 datetime, 片酬 money, PRIMARY KEY (工號,片名,年代 ) )7姓名工號性別王菲A010女寧靜A120女梁朝偉A231男葛優(yōu)A751男片名導演年代重慶森林王家衛(wèi)1994紅河谷馮小寧1998不見不散馮小剛1998花樣年華王家衛(wèi)2000工號片名年

3、代片酬A120紅河谷199850kA231花樣年華2000100kA751不見不散1998120k演員電影出演8查詢指定的列查詢演員的姓名與性別SELECT 姓名,性別 FROM 演員查詢結(jié)果姓名性別王菲女寧靜女梁朝偉男葛優(yōu)男9查詢?nèi)苛胁樵內(nèi)w演員的記錄SELECT * FROM 演員查詢結(jié)果姓名工號性別王菲A010女寧靜A120女梁朝偉A231男葛優(yōu)A751男10數(shù)據(jù)庫管理系統(tǒng)中的函數(shù)getdate()取當前的系統(tǒng)日期year(date)取日期時間型參數(shù)date的年份month(date)day(date)11使用常量列和計算列查詢電影的片名以及拍攝距今時間SELECT 片名, 拍攝距今,

4、 year(getdate()-year(年代), 年 FROM 電影查詢結(jié)果片名重慶森林拍攝距今11年紅河谷拍攝距今7年不見不散拍攝距今7年花樣年華拍攝距今5年12改變列標題計算列、函數(shù)列和常量列的顯示結(jié)果都沒有列標題,通過指定列的別名可以改變查詢結(jié)果的列標題改變列標題的語法: 列名 | 表達式 AS 列標題 或:列標題 列名 | 表達式13改變列標題的示例查詢電影的片名以及拍攝距今時間SELECT 片名, year(getdate()-year(年代) AS 拍攝距今年限 FROM 電影查詢結(jié)果片名拍攝距今年限重慶森林11紅河谷7不見不散7花樣年華514姓名工號性別王菲A010女寧靜A12

5、0女梁朝偉A231男葛優(yōu)A751男片名導演年代重慶森林王家衛(wèi)1994紅河谷馮小寧1998不見不散馮小剛1998花樣年華王家衛(wèi)2000工號片名年代片酬A120紅河谷199850kA231花樣年華2000100kA751不見不散1998120k演員電影出演15查詢結(jié)果中相同行被自動消除查詢數(shù)據(jù)庫中的電影拍攝年代SELECT year(年代) AS 拍攝年代 FROM 電影查詢結(jié)果拍攝年代199419982000165.4 數(shù)據(jù)查詢功能與視圖5.4.1 單表查詢5.4.2 查詢條件的設(shè)置5.4.3 聚合函數(shù)5.4.4 分組5.4.5 查詢結(jié)果的排序5.4.6 多表連接查詢5.4.7 子查詢5.4.8

6、 視圖17查詢語句的結(jié)構(gòu)SELECT FROM WHERE 18常用查詢條件 WHERE子句常用查詢條件 謂 詞 比較(比較運算符) =, , =, , =, (或!=),NOT+上述比較運算符 確定范圍 BETWEEN AND, NOT BETWEEN AND 確定集合 IN, NOT IN 字符匹配 LIKE, NOT LIKE 空值 IS NULL, IS NOT NULL 多重條件(邏輯謂詞) AND, OR 19查詢條件:比較運算1查詢女演員的姓名SELECT 姓名 FROM 演員 WHERE 性別女姓名王菲寧靜20查詢條件:比較運算2查詢拍攝距今超過10年電影的片名SELECT 片

7、名 FROM 電影 WHERE year(getdate()-year(年代) 10查詢結(jié)果片名重慶森林21字符匹配的條件運算符用于查找指定列中符合匹配模式的元組列名 NOT LIKE 匹配串中可包含如下四種通配符 _ 匹配任意一個字符; % 匹配0個或多個字符; 匹配 中的任意一個字符; 不匹配 中的任意一個字符22查詢條件的設(shè)置:字符匹配 1查詢 “張”“王”“李”姓演員的情況SELECT 姓名 FROM 演員 WHERE 姓名 LIKE 張王李%查詢結(jié)果姓名王菲23查詢條件的設(shè)置:字符匹配 2查詢姓名第2個字不是“菲”或者“優(yōu)” 的演員的情況SELECT 姓名 FROM 演員 WHERE

8、 姓名 LIKE _菲優(yōu)%查詢結(jié)果姓名寧靜梁朝偉24查詢條件的設(shè)置:字符匹配 3查詢姓名由2個字組成的演員的情況SELECT 姓名 FROM 演員 WHERE 姓名 LIKE _ _查詢結(jié)果姓名王菲寧靜葛優(yōu)25判斷空值的條件運算符空值(NULL)表示不確定的值判斷取值為空的語句格式: 列名 IS NULL判斷取值不為空的語句格式: 列名 IS NOT NULL26涉及空值的查詢查詢有片酬記錄的出演情況SELECT * FROM 出演 WHERE 片酬 IS NOT NULL查詢結(jié)果27多重條件的組織在WHERE子句中可以使用邏輯運算符AND和OR來組成多重條件查詢用AND連接的條件表示必須全部

9、滿足所有的條件的元組才被選中用OR連接的條件表示只要滿足其中一個條件的元組即被選中28多重條件查詢 1查詢王姓女演員的情況SELECT * FROM 演員 WHERE 姓名 LIKE 王% AND 性別女 查詢結(jié)果29多重條件查詢 2查詢王姓演員和全體男演員的情況SELECT * FROM 演員 WHERE 姓名 LIKE 王% OR 性別男 查詢結(jié)果30確定范圍的條件運算符 BETWEENAND和 NOT BETWEENAND格式 列名 | 表達式 NOT BETWEEN 下限值 AND 上限值31查詢條件的設(shè)置:確定范圍 1查詢拍攝距今5至10年的電影SELECT 片名 FROM 電影 W

10、HERE year(getdate()year( 年代) BETWEEN 5 AND 10不見不散紅河谷花樣年華片名查詢結(jié)果32查詢條件的設(shè)置:確定范圍 2查詢拍攝距今5至10年的電影SELECT 片名 FROM 電影 WHERE year(getdate()year( 年代) = 5 AND year(getdate()year( 年代) = 10 33查詢條件的設(shè)置:確定范圍 3查詢拍攝距今不到5年或者10年以上的電影SELECT 片名 FROM 電影 WHERE year(getdate()year( 年代) NOT BETWEEN 5 AND 10查詢結(jié)果片名重慶森林34查詢條件的設(shè)置

11、:確定范圍 4查詢拍攝距今不到5年或者10年以上的電影SELECT 片名 FROM 電影 WHERE year(getdate()year( 年代) 10 35集合的條件運算符 IN和NOT IN格式 列名 NOT IN (集合)36查詢條件的設(shè)置:確定集合 1查詢拍攝距今為5,10或者15年的電影SELECT 片名 FROM 電影 WHERE year(getdate() - year( 年代) IN (5, 10, 15)查詢結(jié)果片名花樣年華37查詢條件的設(shè)置:確定集合 2查詢拍攝距今為5,10或者15年的電影SELECT 片名 FROM 電影 WHERE year(getdate()ye

12、ar( 年代) = 5 OR year(getdate()year( 年代) = 10 OR year(getdate()year( 年代) = 15 38查詢條件的設(shè)置:確定集合 3查詢拍攝距今年限不是5,10或者15的電影SELECT 片名 FROM 電影 WHERE year(getdate() - year( 年代) NOT IN (5, 10, 15)查詢結(jié)果片名重慶森林紅河谷不見不散39查詢條件的設(shè)置:確定集合 4查詢拍攝距今年限不是5,10或者15的電影SELECT 片名 FROM 電影 WHERE year(getdate()year( 年代) != 5 AND year(ge

13、tdate()year( 年代) != 10 AND year(getdate()year( 年代) != 15 405.4 數(shù)據(jù)查詢功能與視圖5.4.1 單表查詢5.4.2 查詢條件的設(shè)置5.4.3 聚合函數(shù)5.4.4 分組5.4.5 查詢結(jié)果的排序5.4.6 多表連接查詢5.4.7 子查詢5.4.8 視圖41使用計算函數(shù)匯總數(shù)據(jù)計算函數(shù)=集合函數(shù)=聚合函數(shù)=聚集函數(shù)對一組值進行計算并返回一個單值42SQL提供的計算函數(shù) COUNT( * ): 統(tǒng)計表中元組個數(shù)COUNT( ): 統(tǒng)計本列列值個數(shù)MAX( ):求列值最大值MIN( ):求列值最小值SUM( ): 計算列值總和AVG( ):

14、計算列值平均值43使用計算函數(shù)的注意事項在SELECT,HAVING子句中使用計算函數(shù)不能直接出現(xiàn)在WHERE子句中如果使用了計算函數(shù)或者分組,那么 SELECT子句中的列必須是計算函數(shù)或者是分組依據(jù)列SUM 與AVG只能用于數(shù)值類型的列,參數(shù)可以是計算列要求只有一個參數(shù)除COUNT(*)外,其他函數(shù)在計算過程中均忽略NULL值44出演表例子 45COUNT函數(shù)的使用 1查詢演員出演的總?cè)舜螖?shù)查詢演員出演記錄的總條數(shù)SELECT COUNT(*) FROM 出演SELECT COUNT(演員姓名) FROM 出演SELECT COUNT(片名) FROM 出演SELECT COUNT(年代)

15、FROM 出演 SELECT COUNT(片酬) FROM 出演查詢結(jié)果46COUNT函數(shù)的使用 2查詢有片酬記錄的總條數(shù)SELECT COUNT(片酬) AS 片酬記錄條數(shù)FROM 出演查詢結(jié)果47COUNT函數(shù)的使用 3查詢出演表中不同演員的人數(shù)SELECT COUNT(DISTINCT 演員姓名) AS 演員總數(shù)FROM 出演查詢結(jié)果48SUM函數(shù)的使用 1查詢出演表中支付的片酬總數(shù)SELECT SUM(片酬) AS 總片酬FROM 出演查詢結(jié)果49SUM函數(shù)的使用 2查詢梁朝偉的片酬總數(shù)SELECT 演員姓名,SUM(片酬) AS 總片酬FROM 出演WHERE 演員姓名 梁朝偉查詢結(jié)

16、果 列 出演.演員姓名 在選擇列表中無效,因為該列未包含在聚合函數(shù)中,并且沒有 GROUP BY 子句。50SUM函數(shù)的使用 3查詢梁朝偉的片酬總數(shù)SELECT SUM(片酬) AS 梁朝偉的總片酬FROM 出演WHERE 演員姓名 梁朝偉查詢結(jié)果51AVG函數(shù)的使用 1查詢每人次出演支付的片酬平均數(shù)SELECT AVG(片酬) AS 平均片酬FROM 出演查詢結(jié)果52NULL對計算函數(shù)的影響SELECT AVG(片酬), SUM(片酬)/COUNT(片酬), SUM(片酬)/COUNT(*)FROM 出演查詢結(jié)果53AVG函數(shù)的使用 2查詢梁朝偉的平均片酬SELECT 演員姓名,AVG(片酬

17、) AS 平均片酬FROM 出演WHERE 演員姓名 梁朝偉查詢結(jié)果 列 出演.演員姓名 在選擇列表中無效,因為該列未包含在聚合函數(shù)中,并且沒有 GROUP BY 子句。54AVG函數(shù)的使用 3查詢梁朝偉的平均片酬SELECT AVG(片酬) AS 梁朝偉的平均片酬FROM 出演WHERE 演員姓名 梁朝偉查詢結(jié)果55MIN與MAX函數(shù)的使用 1查詢出演表中支付的最高片酬SELECT MAX(片酬) AS 最高片酬FROM 出演查詢結(jié)果56MIN與MAX函數(shù)的使用 2查詢最低片酬以及獲得最低片酬的演員姓名SELECT 演員姓名,MIN(片酬) AS 最低片酬FROM 出演查詢結(jié)果 列 出演.演

18、員姓名 在選擇列表中無效,因為該列未包含在聚合函數(shù)中,并且沒有 GROUP BY 子句。57MIN與MAX函數(shù)的使用 3查詢最低片酬以及有關(guān)演員的姓名SELECT 演員姓名FROM 出演WHERE 片酬 MIN(片酬) 查詢結(jié)果 聚合不應(yīng)出現(xiàn)在 WHERE 子句中,除非該聚合位于 HAVING 子句或選擇列表所包含的子查詢中,并且要對其進行聚合的列是外部引用。585.4 數(shù)據(jù)查詢功能與視圖5.4.1 單表查詢5.4.2 查詢條件的設(shè)置5.4.3 聚合函數(shù)5.4.4 分組5.4.5 查詢結(jié)果的排序5.4.6 多表連接查詢5.4.7 子查詢5.4.8 視圖59查詢語句的結(jié)構(gòu)SELECT FROM

19、WHERE GROUP BY HAVING 60對查詢結(jié)果進行分組計算分組把一個表劃分為子集,可以細化計算函數(shù)的作用對象HAVING子句指定滿足條件的組在一個查詢語句中,可以使用任意多個列進行分組分組依據(jù)列不能是text,ntext,image和bit類型61GROUP BY子句的使用查詢每位演員拍片數(shù)目以及個人平均片酬,個人最低/最高片酬SELECT 演員姓名,COUNT(片名) 拍片數(shù)目,AVG(片酬) 個人平均片酬, MIN(片酬) 個人最低片酬, MAX(片酬) 個人最高片酬FROM 出演GROUP BY 演員姓名626364上述查詢的結(jié)果 65HAVING子句的功能HAVING子句用

20、于對分組后的結(jié)果再進行過濾HAVING子句的作用對象是組而不是行在HAVING子句中可以使用計算函數(shù)HAVING與GROUP BY子句一起使用66HAVING子句的使用查詢出演不少于2部電影的演員姓名676869使用HAVING子句的查詢方案SELECT 演員姓名,COUNT(片名) 拍片數(shù)目FROM 出演GROUP BY 演員姓名HAVING COUNT(*)=270上述查詢的執(zhí)行步驟與結(jié)果先用GROUP BY按演員姓名分組再用COUNT(*)統(tǒng)計每組包含的記錄條數(shù)最后挑選記錄條數(shù)=2的組,返回對應(yīng)的演員姓名和該組記錄的條數(shù)查詢結(jié)果71計算函數(shù)與分組的聯(lián)合使用 1查詢梁朝偉的個人片酬總數(shù)與個

21、人平均片酬SELECT 演員姓名,SUM(片酬) 個人總片酬, AVG(片酬) 個人平均片酬FROM 出演GROUP BY 演員姓名HAVING 演員姓名 梁朝偉72查詢結(jié)果73計算函數(shù)與分組的聯(lián)合使用 2SELECT 演員姓名, AVG(片酬) 個人平均片酬FROM 出演WHERE year(年代)100000查詢2000年以前個人最低片酬大于100k的演員的個人平均片酬7475上述查詢的結(jié)果 76計算函數(shù)與分組的聯(lián)合使用 3SELECT 演員姓名, AVG(片酬) 個人平均片酬FROM 出演GROUP BY 演員姓名HAVING MIN(片酬)100000 and year(年代)2000

22、查詢結(jié)果列 出演.年代 在 HAVING 子句中無效,因為該列既不包含在聚合函數(shù)中,也不包含在 GROUP BY 子句中。查詢2000年以前個人最低片酬大于100k的演員的個人平均片酬77計算函數(shù)與分組的聯(lián)合使用 4查詢2000年以前演員的個人平均片酬SELECT 演員姓名, AVG(片酬) 個人平均片酬FROM 出演GROUP BY 演員姓名WHERE year(年代)100000 and year(年代)2000GROUP BY 演員姓名查詢結(jié)果聚合不應(yīng)出現(xiàn)在 WHERE 子句中,除非該聚合位于 HAVING 子句或選擇列表所包含的子查詢中,并且要對其進行聚合的列是外部引用。查詢2000年

23、以前個人最低片酬大于100k的演員的個人平均片酬795.4 數(shù)據(jù)查詢功能與視圖5.4.1 單表查詢5.4.2 查詢條件的設(shè)置5.4.3 聚合函數(shù)5.4.4 分組5.4.5 查詢結(jié)果的排序5.4.6 多表連接查詢5.4.7 子查詢5.4.8 視圖80查詢語句的結(jié)構(gòu)SELECT FROM WHERE GROUP BY HAVING ORDER BY 81對查詢結(jié)果進行排序 1排序子句的格式為: ORDER BY ASC | DESC , n 為排序的依據(jù)列,可以是列名或列的別名ASC表示對列進行升序排序,DESC表示對列進行降序排序默認的排序方式為升序排序82對查詢結(jié)果進行排序 2指定多個排序列時

24、,首先按最前面的列進行排序如果排序后存在多個列值相同的記錄,則對這些記錄依據(jù)后續(xù)排序列進行排序83對查詢結(jié)果進行排序示例 1查詢?nèi)w演員的情況,按姓名排序SELECT * FROM 演員 ORDER BY 姓名查詢結(jié)果84對查詢結(jié)果進行排序示例 2查詢?nèi)w演員的情況,先女后男再按姓名排序SELECT * FROM 演員 ORDER BY 性別 DESC, 姓名查詢結(jié)果85分組與排序的聯(lián)合使用 1SELECT 演員姓名, AVG(片酬) 個人平均片酬FROM 出演WHERE year(年代)100000 ORDER BY 演員姓名 DESC查詢結(jié)果查詢2000年以前個人最低片酬大于100k的演員

25、的個人平均片酬86分組與排序的聯(lián)合使用 2SELECT 演員姓名, AVG(片酬) 個人平均片酬FROM 出演WHERE year(年代)100000查詢結(jié)果在關(guān)鍵字 GROUP 附近有語法錯誤。查詢2000年以前個人最低片酬大于100k的演員的個人平均片酬875.4 數(shù)據(jù)查詢功能與視圖5.4.1 單表查詢5.4.2 查詢條件的設(shè)置5.4.3 聚合函數(shù)5.4.4 分組5.4.5 查詢結(jié)果的排序5.4.6 多表連接查詢5.4.7 子查詢5.4.8 視圖88多表連接查詢查詢結(jié)果來源于多張表匹配不同表的公共列,實現(xiàn)多表連接連接的類型內(nèi)連接外連接89內(nèi)連接FROM 表1,表2 WHERE . . 連接

26、列必須是可比較的語義相同90姓名工號性別王菲A010女寧靜A120女梁朝偉A231男葛優(yōu)A751男片名導演年代重慶森林王家衛(wèi)1994紅河谷馮小寧1998不見不散馮小剛1998花樣年華王家衛(wèi)2000黑駿馬管虎2000工號片名年代片酬A120紅河谷1998NULLA231花樣年華2000100kA751不見不散1998120k演員電影出演91內(nèi)連接的使用 1查詢演員出演電影的情況SELECT 演員.姓名,出演.片名,出演.年代FROM 演員,出演WHERE 演員.工號 出演.工號92姓名性別工號王菲女A010寧靜女A120梁朝偉男A231葛優(yōu)男A751工號片名年代片酬A120紅河谷1998NULL

27、A231花樣年華2000100kA751不見不散1998120k演員出演查詢結(jié)果93內(nèi)連接的使用 2查詢演員與導演的合作情況SELECT 姓名,導演, 電影.片名, year(電影.年代) 年代 FROM 演員,電影,出演WHERE 演員.工號=出演.工號 AND 出演.片名=電影.片名 AND 出演.年代=電影.年代 94片名年代導演重慶森林1994王家衛(wèi)紅河谷1998馮小寧不見不散1998馮小剛花樣年華2000王家衛(wèi)黑駿馬2000管虎工號片名年代片酬A120紅河谷1998NULLA231花樣年華2000100kA751不見不散1998120k演員電影出演姓名性別工號王菲女A010寧靜女A1

28、20梁朝偉男A231葛優(yōu)男A75195上述查詢的結(jié)果 96內(nèi)連接的使用3 自連接查詢與王家衛(wèi)影片同年拍攝的其他導演的影片SELECT 電影1.片名, 電影1.導演, year(電影1.年代) 年代FROM 電影 電影1,電影 電影2WHERE 電影2.導演 = 王家衛(wèi) AND 電影2.年代 = 電影1.年代 AND 電影1.導演 != 王家衛(wèi)97片名導演年代重慶森林王家衛(wèi)1994紅河谷馮小寧1998不見不散馮小剛1998花樣年華王家衛(wèi)2000黑駿馬管虎2000電影 1年代導演片名1994王家衛(wèi)重慶森林1998馮小寧紅河谷1998馮小剛不見不散2000王家衛(wèi)花樣年華2000管虎黑駿馬電影 2查詢

29、結(jié)果98外連接連接時,輸出一方的全部元組和對方的匹配元組FROM 表1 LEFT | RIGHT OUTER JOIN 表2 ON 99左外連接FROM 表1 LEFT OUTER JOIN 表2 ON 輸出:表1全部,表2滿足連接條件元組100右外連接FROM 表1 RIGHT OUTER JOIN 表2 ON 輸出:表1滿足連接條件元組,表2全部101左外連接的使用 查詢所有演員出演影片的情況,包括沒有出演記錄的演員SELECT 姓名, 片名FROM 演員 LEFT OUTER JOIN 出演 ON 演員.工號=出演.工號102姓名性別工號王菲女A010寧靜女A120梁朝偉男A231葛優(yōu)男

30、A751工號片名年代片酬A120紅河谷1998NULLA231花樣年華2000100kA751不見不散1998120k演員出演查詢結(jié)果103右外連接的使用 查詢所有演員出演影片的情況,包括沒有出演記錄的演員SELECT 姓名, 片名FROM 出演 RIGHT OUTER JOIN 演員 ON 演員.工號=出演.工號104工號姓名性別A010王菲女A120寧靜女A231梁朝偉男A751葛優(yōu)男片名年代片酬工號紅河谷1998NULLA120花樣年華2000100kA231不見不散1998120kA751演員出演查詢結(jié)果1055.4 數(shù)據(jù)查詢功能與視圖5.4.1 單表查詢5.4.2 查詢條件的設(shè)置5.

31、4.3 聚合函數(shù)5.4.4 分組5.4.5 查詢結(jié)果的排序5.4.6 多表連接查詢5.4.7 子查詢5.4.8 視圖106子查詢SQL的查詢塊:一個SELECTFROMWHERE的組合體子查詢內(nèi)層查詢:嵌套在SELECT、UPDATE或DELETE等語句中的查詢塊主查詢外層查詢:包含子查詢的語句107子查詢的用法子查詢要寫在圓括號中引入子查詢的保留字為IN子查詢通常用在外層查詢的WHERE子句或HAVING子句中108姓名工號性別王菲A010女寧靜A120女梁朝偉A231男葛優(yōu)A751男片名導演年代重慶森林王家衛(wèi)1994紅河谷馮小寧1998不見不散馮小剛1998花樣年華王家衛(wèi)2000黑駿馬管虎

32、2000工號片名年代片酬A120紅河谷1998NULLA231花樣年華2000100kA751不見不散1998120k演員電影出演109子查詢的使用 查詢片酬最低的演員姓名SELECT 演員.姓名FROM 演員, 出演WHERE 演員.工號=出演.工號 AND 片酬 IN ( SELECT MIN (片酬) FROM 出演 )110姓名工號性別王菲A010女寧靜A120女梁朝偉A231男葛優(yōu)A751男片名導演年代重慶森林王家衛(wèi)1994紅河谷馮小寧1998不見不散馮小剛1998花樣年華王家衛(wèi)2000黑駿馬管虎2000工號片名年代片酬A120紅河谷1998NULLA231花樣年華2000100kA

33、751不見不散1998120k演員電影出演111查詢結(jié)果112 WHERE Sage ANY( ) AND Sdept IS ORDER BY Sage DESC 例(帶ANY或ALL謂詞的子查詢)找出比IS系至少一名學生年齡小的其他系學生名單。 SELECT Sname,Sage,Sdept FROM StudentSELECT distinct Sage FROM Student WHERE Sdept=IS113WHERE ( Sage ALL( ) ) AND ( Sdept IS )ORDER BY Sage DESC 例 查詢比IS系所有學生年齡都小的其他各系學生姓名, 年齡,系名

34、。SELECT Sage FROM Student WHERE Sdept=IS SELECT Sname,Sage,Sdept FROM Student114 例1 查找選修了課程1或課程2的學生學號和姓名。 SELECT SC.Sno, Sname FROM SC, Student WHERE (Cno=2) AND (SC.Sno =Student.Sno) SELECT SC.Sno, Sname FROM SC, Student WHERE (Cno=1) AND (SC.Sno =Student.Sno) UNION集合查詢就是對幾個查詢塊的結(jié)果集進行并、交、差運算。115 例1 查找選修了課程1或課程2的學生學號和姓名。 SELECT SC.Sno, Sname FROM SC, Student WHERE ( (Cno=1) OR (Cno=2) AND (SC.Sno =Student.Sno)集合查詢就是對幾個查詢塊的結(jié)果集進行并、交、差運算。116 AND Sno IN (SELECT Sno FROM SC WHERE Cno =2) 例2 查找既選修課程1,又選修課程2的學生集合 這實際上是查找選修了課程1學生,與選修了課程2 的學生的交集。SELECT SnoFROM SCW

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論