freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

數(shù)據(jù)庫概論-關系數(shù)據(jù)庫標準語言-文庫吧

2025-01-02 12:41 本頁面


【正文】 分組查詢是通過 GROUP BY 子句實現(xiàn)的。 ? 將查詢結(jié)果表按某一列或多列值分組,值相等的為一組; ? 當對多列進行分組時,所有的組函數(shù)統(tǒng)計都是對最后的分組列進行的; ? 對查詢的結(jié)果分組的目的是為了細化統(tǒng)計函數(shù)的作用對象; ? 如果未對查詢分組,組函數(shù)將作用于整個查詢結(jié)果;如果分組后組函數(shù)將作用于每一個組,即每一個分組都有一個組函數(shù); ? 在包含 GROUP BY子句的查詢語句中,SELECT子句后面的所有字段列表(除組函數(shù)外),均應該包含在 GROUP BY 子句中,即 所選項與分組的一致性。 例 23:求各門課程的平均成績與總成績。 例 24:求各系中各個班級的人數(shù)及平均年齡。 例 25(?): SELECT SNAME, SDEPT, COUNT(*) FROM STUDENT GROUP BY SDEPT。 例 26(?): SELECT SAGE FROM STUDENT GROUP BY SNO。 ? HAVING 子句 如果分組后還要按一定的條件對這些分組進行篩選,只輸出滿足條件的組,則應該使用 HAVING短語指定篩選條件。 HAVING 子句用來選擇滿足條件的分組。 WHERE與 HAVING的區(qū)別: 作用對象不同 ? WHERE 作用于基本表或視圖,從中選擇滿足條件的元組; ? HAVING短語作用于組,從中選擇滿足條件的組。 例 27:求學生人數(shù)不足百人的系號及其相應 學生人數(shù)的。 例 28:求各系中年齡大于 20歲的除 1班之外的 各班級人數(shù)。 SELECT 列名 FROM 表名 WHERE 條件 GROUP BY 列名 HAVING 條件 ORDER BY 列名 投影 連接 選取 分組 去組 排序 小結(jié) 連接查詢是通過各表中相應列的公共數(shù)據(jù)把一個表中的某些行與另一個表中的某些行連接起來。 表之間的聯(lián)系是通過表的字段值來體現(xiàn)的,這種字段通常稱為 連接字段 。連接字段就是在兩個表中都包含的一個公共字段。連接操作的目的就是通過加在連接字段的條件將多個表連接起來。 連接查詢 涉及兩個以上的表 1. 無條件連接 ? 在連接操作中,如果不用連接條件,則稱為無條件連接。 ? 無條件連接將產(chǎn)生大量的行,當n1,n2,… ,nn 這 n個表進行連接時,產(chǎn)生的記錄是 n1*n2*… *nn。 例: SELECT SNO, SNAME, CNO, GRADE FROM STUDENT, GRADE。 不帶 WHERE子句的連接語句是笛卡兒乘積。 2. 等值連接與非等值連接 連接條件的一般格式是: [表名 1.]列名 1 比較運算符 [表名 2.]列名 2 其中:比較運算符主要有: =、 、 、 =、 =、 != 表名 1.列名 1:指明是哪個表的哪個列 限定符 連接查詢一定要帶上連接條件 WHERE子句。 [注意 ]: 連接條件中的各連接字段類型必須是可比較的( 自然連接 )。 [執(zhí)行過程 ]: 首先在表 1中找到第一個元組,然后從頭開始掃描表2,逐一查找滿足連接條件的元組,找到后就將表 1中的第 1個元組與該元組拼接形成結(jié)果表中的一個元組。表 2全部找完后,再找表 1中的第 2個元組,然后再從頭掃描表 2,逐一查找滿足連接條件的元組,找到后就將表 1中的第 2個元組與該元組拼接形成結(jié)果表中的一個元組。重復執(zhí)行,直到表 1中的全部元組都處理完畢為止。 例 29:求學生以及其選修課程的情況。 SELECT STUDENT.*, SCORE.* FROM STUDENT, SCORE WHERE =。 連接條件 SNO:連接字段 例 30:查詢學生信息以及其選修課程的課程號 和成績,但查詢結(jié)果中只能有一個 SNO 字段。 例 31:求選修課程 ‘ 001’且成績在 70分以下或 成績在 90分以上的學生的姓名,課程 名稱和成績。 [說明 ]: ? 在 SELECT語句的 FROM子句中規(guī)定連接的表,在 WHERE子句中規(guī)定連接的列和連接的方式。 ? WHERE子句既可用來規(guī)定(行) 選擇條件 ,又可用來規(guī)定 連接條件 (連接列和連接方式)。 ? 行選擇條件和連接條件這兩種條件的邏輯表達式用 AND連接。 3. 表的別名 一般格式是: 表名 表的別名 表的別名有如下用途 ? 簡化輸入; ? 表與自身連接; ? 在相關嵌套查詢中。 例 32:求選修了課程的學生的學號、姓名、 課程號和成績。 4. 自身連接 自身連接不僅可以作用在兩個不同的表上,而且同一個表可進行自身連接。 ? 需要給表起別名以示區(qū)別 ? 由于所有屬性名都是同名屬性,因此必須使用別名前綴 [執(zhí)行過程 ]: 可以把一個看成兩個副本,即兩個相同的表,然后再對這兩個表在連接字段上進行連接。表與自身的連接必須使用表的別名,若在 FROM子句中用兩個不同的別名對應于同一個表是時,就可以象連接兩個分開的表一樣來把表自身連接起來。 例 33:求年齡大于黎明的所有學生的姓名、 系和年齡。 5. 外部連接 一般說來,如果某一表中所選取的一行不能與另一個表中的任何一行相連接(即不滿足條件)時,則在查詢結(jié)果中此行不再出現(xiàn)。外部連接則不管條件是否滿足,都選取相應的數(shù)據(jù)。不僅返回兩個或兩個以上的表中能夠直接匹配的行,還返回一個表中無法從其它表中找到直接匹配的行。 CNO CNAME CTIME 001 高等代數(shù) 144 002 程序設計 72 003 微機原理 64 004 數(shù)據(jù)結(jié)構(gòu) 72 005 編譯原理 56 006 操作系統(tǒng) 46 007 計算方法 32 008 數(shù)據(jù)庫 64 C SNO CNO GRADE 96001 001 90 96001 003 90 96001 004 90 96001 005 95 96002 001 95 96002 003 81 96002 006 81 96003 004 95 96003 005 81 96003 006 95 96004 003 95 96004 005 70 96005 005 81 96005 006 95 96005 007 95 96006 004 90 SC 查詢選修 00 003課程的學號、 課程名稱與成績。 002課程 存在嗎 ? 例 34:求選修課程 ‘ 002’和 ‘ 003’的學生的學號、 課程號、課程名與成績。 例 35:用外部連接求選修課程 ‘ 002’和 ‘ 003’的 學生的學號、課程號、課程名與成績。 外部連接實際上是假設對一個表添加了一個各列全為空值的額外行。若另一個表中行不能與該表中任一行連接,則與該表的額外行連接,以保證另一個表中各行的信息在查詢結(jié)果中表示出來。 Oracle中,外連接有兩種表現(xiàn)形式: ? 某個連接列后面加一個外部連接操作符 (+); ? 在 FROM子句中采用如下表現(xiàn)形式: 表 1 LEFT OUTER JOIN 表 2 ON (連接條件 ) 表 1 RIGHT OUTER JOIN 表 2 ON (連接條件 ) 表 1 FULL OUTER JOIN 表 2 ON (連接條件 ) 例如: SELECT Sno, ,Cname, Score FROM Course LEFT OUTER JOIN SCore ON (=) WHERE In (39。00239。, 39。00339。)。 SELECT Sno, , Cname, Score FROM Course, SCore WHERE =(+) AND In (39。00239。, 39。00339。)。 6. 復合連接條件 一般說來, WHERE子句中可以有多個連接條件 ,稱為復合條件連接。 例 36:求選修課程 ‘ 001’且成績在 85分以上的所有學生。 ? 概念 ? 查詢塊:一個 selectfromwhere語句稱為一個查詢塊 。 ? 嵌套查詢:將一個查詢塊嵌套在另一個查詢塊的 where子句或 having子句中的查詢 。子查詢的結(jié)果用于建立主查詢的查找條件 。 ? 處理步驟 ? 一般由里向外進行處理 。 嵌套查詢 SELECT Sname FROM Student WHERE Sno IN 外層查詢 /父查詢 內(nèi)層查詢 /子查詢 ( SELECT Sno FROM SC WHERE Cno= 39。00239。) 。 例 37:求選修了 ‘ 002’課程的學生姓名。 (選修了課程號為 ‘ 002’課程的學生的學號) 。 ? 注意 ? 子查詢必須用括號括住 。 ? 子查詢可以有多層 , 所存取的表可以是父查詢沒有存取的表 。 ? 當子查詢所返回的不是一個值而是一個集合時 , 就不能使用簡單的比較運算了 。 必須根據(jù)語義在子查詢前加上 ANY或者 ALL;或者使用集合操作符 IN及 NOT。 ? 子查詢中不能有 ORDER BY子句 。 ? 子查詢選出的記錄不顯示 。 1. 返回單值的子查詢 子查詢返回的結(jié)果是 一個值 時,可以使用比較運算符( =, , , =, =, !=)將父查詢和子查詢連接起來。 例 38:求與王平年齡相同人的姓名與系。 2. 返回一組值的子查詢 子查詢返回的結(jié)果不是一個值而是而是一個集合即 多個值, 就不能簡單地使用比較運算符,而必須使用 多值比較運算符 ,以指明在 WHERE子句中應如何使用這些返回值。 多值比較運算符 運算符 含義 [NOT]IN 字段的值是否在所選集合中 [NOT]ANY 是否將字段的值與子查詢返回結(jié)果中的一個值進行比較( ANY:滿足一個條件為真) [NOT]ALL 是否將所選的值與集合中所有的值進行比較 [NOT]EXISTS EXISTS表示一個子查詢至少返回一行時條件成立, NOT EXISTS表示一個子查詢不返回任何行時條件成立。 多值比較運算符 需要配合使用比較運算符 ANY 大于子查詢結(jié)果中的某個值 ALL 大于子查詢結(jié)果中的所有值 ANY 小于子查詢結(jié)果中的某個值 ALL 小于子查詢結(jié)果中的所有值 = ANY 大于等于子查詢結(jié)果中的某個值 = ALL 大于等于子查詢結(jié)果中的所有值 = ANY 小于等于子查詢結(jié)果中的某個值 = ALL 小于等于子查詢結(jié)果中的所有值 = ANY 等于子查詢結(jié)果中的某個值 =ALL 等于子查詢結(jié)果中的所有值(通常沒有實際意義) !=(或 ) ANY 不等于子查詢結(jié)果中的某個值 !=(或 ) ALL 不等于子查詢結(jié)果中的任何一個值 例 39:求其他系中比數(shù)學系中某一學生年齡小的學生姓名和系。 ( ANY) SELECT Sname, Sage FROM Student WHERE Sage ANY (SELECT Sage FROM Student WHERE Sdept= ‘MA39。) AND Sdept ‘MA 39。 。 /*父查詢塊中的條件 */ 用聚集函數(shù)實現(xiàn) [例 39] SELECT Sname, Sage FROM Student WHERE Sage (SELECT MAX(Sage) FROM Student WHERE Sdept= ‘MA 39。) AND Sdept
點擊復制文檔內(nèi)容
教學課件相關推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1