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

正文內容

[計算機]第4章sqlppt(編輯修改稿)

2025-03-21 00:27 本頁面
 

【文章內容簡介】 接。 join_hint為連接提示信息。 〖 例 430〗 查詢每個出車的駕駛員的 姓名和出車情況。 SELECT , 車牌號 ,出車單號 FROM jsy INNER JOIN xc ON jsy. 駕照號 = 執(zhí)行結果如圖 。該例中可以省略 INNER關鍵字,結果是一樣的。 在 FROM子句中指定連接方式 后,仍可以用 WHERE子句指定條 件,進一步篩選結果集。 〖 例 431〗 查詢由 0111號調度員指派 駕駛 AX1320車的駕駛員姓名和積分。 SELECT 姓名 , 積分 FROM jsy JOIN xc ON = WHERE 車牌號 =’AX1320’ AND調度號 =’0111’ 執(zhí)行結果如圖 。 〖 例 432〗 查詢所有調度員的姓名、職務及派車情況,若未派車,也要包括其有關信息。 SELECT 姓名 , 職務 , 出車單號 FROM ddy LEFT OUTER JOIN xc ON =ddy.調度號 執(zhí)行結果如圖 。 〖 例 433〗 查詢被派出車輛的出車情 況和所有車輛的車牌號。 SELECT xc.*, FROM xc RIGHT JOIN cl ON = 執(zhí)行結果如圖 。 一、分組統(tǒng)計查詢 (一)統(tǒng)計函數(shù) 常用的統(tǒng)計函數(shù)有: SUM ( )-返回表達式中所有值的和。 AVG ( )-返回表達式中所有值的平 均值。 MIN ( )-返回表達式中所有值的最 小值 MAX ( )-返回表達式中所有值的最 大值 COUNT ( )-返回組中滿足條件的行 數(shù)或總行數(shù)。 其函數(shù)格式分別為: SUM/AVG/MIN/MAX ([ALL | DISTINCT]expression) COUNT({[ALL | DISTINCT]expression} | * ) 參數(shù)說明如下: ( 1) ALL表示對所有值運算, DISTINCT表示去掉重復的值,忽 略 NULL值。 ALL關鍵字為默認。 ( 2) COUNT函數(shù)中 *號表示統(tǒng)計 總行數(shù)。 ( 3) SUM、 AVG、 MIN和 MAX 函數(shù)中的表達式數(shù)據(jù)類型是數(shù)值 型和貨幣型。 ( 4) MIN和 MAX函數(shù)中的表達式 數(shù)據(jù)類型可以是數(shù)值、字符和時 間日期型。 ( 5) COUNT函數(shù)中的表達式數(shù) 據(jù)類型可以是除 unique identifier、 text、 image和 ntext 之外的任何類型。 〖 例 434〗 統(tǒng)計車輛表 cl中小轎車 總的維修費用。 SELECT ‘小轎車總維修費 用’ =SUM (維修費用 ) FROM cl WHERE 類別 =‘小轎車’ 執(zhí)行結果圖 。 〖 例 435〗 統(tǒng)計駕駛員表 jsy中汽 車指揮專業(yè)的最高積分。 SELECT ‘汽車指揮最高積分’ =MAX (積分 ) FROM jsy WHERE 所學專業(yè) =‘汽車指揮’ 執(zhí)行結果圖 。 〖 例 436〗 統(tǒng)計已出車的駕駛員 人數(shù)。 SELECT COUNT(DISTINCT 駕 照號 ) AS ‘出車人數(shù)’ FROM xc 執(zhí)行結果圖 。 〖 例 437〗 統(tǒng)計 cl表中車輛總數(shù)。 SELECT COUNT(*) AS ‘車輛 總數(shù)’ FROM cl 執(zhí)行結果圖 。 (二) GROUP BY 子句 GROUP BY子句用于指定對某一 列的值分組,使該列相同值的行 為一組,其格式為: [GROUP BY [ALL] | expression[,…n][WITH{CUBE | ROLLUP}]] 參數(shù)說明如下: expression為分組表達式,通常 包含列名。 ALL關鍵字指定顯示所有組。 CUBE關鍵字表示產生所有列組合 的匯總行。 ROLLUP關鍵字表示順序產生匯 總行。 〖 例 439〗 查詢車輛表 cl中各類別的車有多少輛。 SELECT 類別 , COUNT(*) AS ‘數(shù)量’ FROM cl GROUP BY 類別 執(zhí)行結果如圖 。 在有 GROUP BY 子句的 SELECT 語句中 , 輸出列表只能 是 GROUP BY子句中的列表或是 計算列 。 GROUP BY子句不支持 對列的別名 , 也不支持任何使用了 統(tǒng)計函數(shù)的集合列 。 〖例 440〗 查詢車輛表 cl中按類別 和啟用年代分組統(tǒng)計平均維修費用 和總里程 , 并將輸出數(shù)據(jù)按總里程 升序排列 。 SELECT 類別 , 啟用年代 , ‘平均維 修費用’ =AVG(維修費用 ), ‘總里 程’ =SUM(累計里程 ) FROM cl GROUP BY 類別 , 啟用年代 ORDER BY ‘總里程’ 執(zhí)行結果如圖 。 〖 例 441〗 按類別和啟用年代統(tǒng) 計累計里程。 SELECT 類別 , 啟用年代 , ‘總里 程’ =SUM (累計里程 ) FROM cl GROUP BY類別 , 啟用年代 WITH CUBE 執(zhí)行結果如圖 。 CUBE關鍵字對類別和啟用年代的各種組合進行匯總,產生 7個匯總行。 (三) HAVING 子句 用統(tǒng)計函數(shù)和 GROUP BY子句 完成數(shù)據(jù)的查詢和統(tǒng)計后,可以使 用 HAVING關鍵字來對查詢和計算 的結果進行進一步的篩選過濾。 HAVING子句對結果的篩選作用與 WHERE條件子句對每行的篩選作 用是一樣的。 HAVING子句的格式 為: [HAVINGsearch_condition] 其中 search_condition為查詢條 件,通常包含統(tǒng)計函數(shù)或常量。 〖 例 442〗 在 jsy表中,對于天津 籍駕駛員按所學專業(yè)統(tǒng)計平均積 分,查詢平均積分在 25分以上的 專業(yè)和其平均積分。 SELECT 所學專業(yè) , ‘平均積分’ =AVG(積分 ) FROM jsy WHERE 籍貫 =‘天津’ GROUP BY 所學專業(yè) HAVING AVG(積分 )25 該例中 WHERE、 GROUP BY和 HAVING子句都被使用 , 要 注意 WHERE是從 FROM指定的表 中篩選行 , GROUP BY是對 WHERE的結果進行分組統(tǒng)計 , HAVING是對 GROUP BY的結果 進行過濾 。 〖例 443〗 查找兩次出車均由 0111 號調度員指派的主駕人員。 SELECT 主駕 FROM xc WHERE 調度號 =‘0111’ GROUP BY主駕 HAVING COUNT(*)=2 執(zhí)行結果如圖 。 (四) COMPUTE 子句 使用 GROUP BY子句可以 對數(shù)值列做分組統(tǒng)計運算,但只能 在結果中顯示統(tǒng)計的結果而看不到 被統(tǒng)計的具體的源數(shù)據(jù)。使用 COMPUTE子句就能既瀏覽源數(shù)據(jù) 又能看到這些數(shù)據(jù)的統(tǒng)計結果,使 輸出數(shù)據(jù)更加清晰。 COMPUTE子句 的格式為: [COMPUTE(expression)[,…n][BY colume_name[,…n]] 參數(shù)說明如下: expression為包含統(tǒng)計函數(shù)的表達 式,在產生匯總行中顯示統(tǒng)計結 果。 BY關鍵字指定對查詢出的結果進行分 類統(tǒng)計。在結果中先顯示一個類別的 數(shù)據(jù)和這一類數(shù)據(jù)的統(tǒng)計結果,然后 再顯示下一類數(shù)據(jù)和統(tǒng)計結果。 〖 例 444〗 統(tǒng)計天津籍和北京籍駕 駛員的平均積分。 SELECT 籍貫 , 所學專業(yè) , 積分 FROM jsy WHERE 籍貫 IN (‘天津’ ,‘北京’ ) COMPUTE AVG(積分 ) 執(zhí)行結果圖 。 〖 例 445〗 統(tǒng)計天津籍和北京籍駕駛員的平均積分。 SELECT 籍貫,積分 FROM jsy WHERE 籍貫 IN (‘天津’ ,‘北京’ ) ORDER BY籍貫 COMPUTE AVG(積分 ) BY籍貫 執(zhí)行結果圖 。 對照 〖 例 444〗 和 〖 例 445〗 可以看到 COMPUTE 與 COMPUTE BY的區(qū)別。 COMPUTE BY子句的作用是將結果集分組顯示。COMPUTE BY子句需要與ORDER BY子句同時使用。 對照 〖 例 445〗 和 〖 例 438〗 可以看到使用 COMPUTE BY子句 與使用 GROUP BY子句的結果很 相似,但它們還是有區(qū)別的,主要 在于:使用 GROUP BY 子句只能看到數(shù)據(jù)的統(tǒng)計結果,而使用COMPUTE BY在看統(tǒng)計結果的同時還能瀏覽被統(tǒng)計的數(shù)據(jù)。 ( 1) 使用 GROUP BY子句時統(tǒng)計函數(shù)寫在 SELECT子句中,SELECT子句只能查詢在GROUP BY之后的數(shù)據(jù)列; ( 2) 使用 COMPUTE BY時統(tǒng)計函數(shù)寫在 COMPUTE子句中 SELECT子句可以查詢表中任意列 ( 3) 使用 COMPUTE BY按某一 列分類時,這一列要求在 ORDER BY后出現(xiàn),即 COMPUTE BY子 句一定要與 ORDER BY子句同時 使用;而使用 GROUP BY子句時 可以不用 ORDER BY。 二、 子查詢 前面所介紹的多種查詢操作都 是使用單個 SELECT語句實現(xiàn),即 單層查詢操作,也就是說只需要一 次查詢就能得到所要的數(shù)據(jù)。在實 際應用中,情況不總是這么簡單, 經常需要先通過一個查詢得到一個 結果集,再在這個結果集中進行進 一步的查詢,這樣的查詢稱為嵌套 查詢。 嵌套查詢就是在查詢語句中包 含了用括號括起來的另一個查詢, 這另一個查詢通常是出現(xiàn)在查詢條 件中,其查詢結果作為查詢條件的 一部分,稱之為子查詢。 TSQL語 言中 SELECT語句可以多層嵌套, 以實現(xiàn)復雜的查詢操作。 子查詢通常使用 IN、 EXISTS關 鍵字和 比較運算符 。 (一)使用 IN關鍵字 IN關鍵字用于判斷一個值是否 在子查詢結果集中,格式為: expression [NOT] IN (subquery ) 其中 subquery為子查詢,當 expression的值與其子查詢結果 集中的某個值相等時, IN關鍵字返 回 TRUE,否則返回 FALSE。若使 用了 NOT選項,則返回值相反。 嵌套查詢的執(zhí)行順序是首先執(zhí) 行括號中的子查詢即內查詢,產生 一個結果集,然后在結果集中再執(zhí) 行外查詢,因此子查詢要放在括號 中。 〖 例 446〗 查詢調度過 AX1320車 的所有調度員姓名、職務和電話。 SELECT 姓名 , 職務 , 電話 FROM ddy WHERE 調度號 IN (SELECT DISTINCT調度號 FROM xc WHERE 車牌號 =‘AX1320’) 執(zhí)行結果圖 。 執(zhí)行該查詢操作時,系統(tǒng)首先執(zhí)行 內查詢即 SELECT DISTINCT調度號 FROM xc WHERE 車牌號 =‘AX1320’ 得到一個只包含調度號列的結果 集,如下內容: 0111 0112 0113 該結果集傳給外查詢后開始執(zhí)行外 查詢。外查詢從 ddy表第一行開始 掃描,檢查當前行的調度號,若調 度號在該結果集當中,該行就被選 擇,取出相應列的數(shù)據(jù)。若調度號不 在該結果集中,則掃描下一行。直到 掃描 ddy表的所有行后,得到最終的 查詢結果集。 IN關鍵字子查詢只能返回一列 數(shù)據(jù),不能在子查詢中選擇多列數(shù) 據(jù)。 表第一行開始掃描,檢查當前 行的調度號,若調度號在該結果集 當中,該行就被選擇,取出相應列 的數(shù)據(jù)。若調度號不在該結果集中,則掃描下一行。直到掃描 ddy表的 所有行后,得到最終的查詢結果 集。 IN關鍵字子查詢只能返回一 列數(shù)據(jù),不能在子查詢中選擇多列 數(shù)據(jù)。 使用 EXISTS關鍵字 在包含 IN關鍵字子查詢的外查詢 中,外查詢要根據(jù)子查詢的結果來 進行,但有時對子查詢的要求較為 寬松,只要知道子查詢是否有結果 集,而不用確定子查詢結果集是哪些 行集,外查詢就可以進行查詢了。此 時外查詢條件中可以使用 EXISTS關 鍵字, EXISTS關鍵字用于測試子查 詢的結果是否為空
點擊復制文檔內容
教學課件相關推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1