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

正文內(nèi)容

sql是結(jié)構(gòu)化查詢語言structuredquerylanguage的縮(編輯修改稿)

2025-08-13 17:20 本頁面
 

【文章內(nèi)容簡介】 例 6 查詢選修 C1或 C2的學(xué)生的學(xué)號 、 課程號和成績 。 SELECT SNO, CNO, SCORE FROM SC WHERE CNO IN ( ?C1? , ?C2?) ?此語句也可以使用邏輯運算符 “ OR”實現(xiàn) 。 SELECT SNO, CNO, SCORE FROM SC WHERE CNO=?C1? OR CNO= ?C2? ?利用“ NOT IN”可以查詢指定集合外的元組。 例 7 查詢沒有選修 C1, 也沒有選修 C2的學(xué)生的學(xué)號 、 課程號 。 SELECT SNO, CNO FROM SC WHERE CNO NOT IN ( ?C1? , ?C2?) 等價于: SELECT SNO, CNO FROM SC WHERE CNO ?C1? AND CNO ?C2? ?列出選修了 001號和 002號課程的學(xué)生的學(xué)號 select SNO from SC where = 001 and SNO in ( select SNO from SC where CNO = 002) 5 部分匹配查詢 ?上例均屬于完全匹配查詢 , 當(dāng)不知道完全精確的値時 , 用戶還可以使用LIKE或 NOT LIKE進行部分匹配查詢 ( 也稱模糊查詢 ) 。 ?LIKE定義的一般格式為: 屬性名 LIKE 字符串常量 ? 屬性名必須為字符型 , 字符串常量的字符可以包含如下兩個特殊符號: ? %:表示任意知長度的字符串; ? _:表示任意單個字符 。 例 8 查詢所有姓張的教師的教師姓名 。 SELECT TN FROM C WHERE TN LIKE ?張 %? 例 9 查詢姓名中第二個漢字是 “ 力 ” 的教師姓名 。 SELECT TN FROM T WHERE TN LIKE ?_ _ 力 %? ?注:一個漢字占兩個字符 。 6 空值查詢 ?某個字段沒有值稱之為具有空值( NULL)。 ?通常沒有為一個列輸入值時,該列的值就是空值。 ?空值不同于零和空格,它不占任何存儲空間。 ?例如,某些學(xué)生選課后沒有參加考試,有選課記錄,但沒有考試成績,考試成績?yōu)榭罩?,這與參加考試,成績?yōu)榱惴值牟煌? 例 10 查詢沒有考試成績的學(xué)生的學(xué)號和相應(yīng)的課程號 。 SELECT SNO, CNO FROM SC WHERE SCORE IS NULL ?注意:這里的空值條件為 IS NULL, 不能寫成 SCORE=NULL。 ?SQL提供了許多 庫函數(shù) , 增強了基本檢索能力 。 ?常用的庫函數(shù) , 如下表所示 常用庫函數(shù) 函數(shù)名稱 功 能 AVG 按列計算平均值 SUM 按列計算值的總和 MAX 求一列中的最大值 MIN 求一列中的最小值 COUNT 按列值計個數(shù) 例 1 求學(xué)號為 S1學(xué)生的總分和平均分 。 SELECT SUM(SCORE) AS TotalScore, AVG(SCORE) AS AvgScore FROM SC WHERE SNO = 39。S139。 ? 注意:函數(shù) SUM和 AVG只能對 數(shù)值型 字段進行計算。 例 2 求選修 C1號課程的最高分 、 最低分及之間相差的分數(shù) SELECT MAX(SCORE) AS MaxScore , MIN(SCORE) AS MinScore, MAX(SCORE) — MIN(SCORE) AS Diff FROM SC WHERE ( CNO = 39。C1? ) 例 3 求計算機系學(xué)生的總數(shù) SELECT COUNT(SNO) FROM S WHERE DEPT=39。計算機 39。 例 4 求學(xué)校中共有多少個系 SELECT COUNT(DISTINCT DEPT) AS DeptNum FROM S ? 注意:加入關(guān)鍵字 DISTINCT 后表示消去重復(fù)行 , 可計算字段“ DEPT“不同值的數(shù)目 。 ? COUNT函數(shù)對 空值 不計算 , 但對 零 進行計算 。 例 5 統(tǒng)計有成績同學(xué)的人數(shù) SELECT COUNT (SCORE) FROM SC ? 上例中成績?yōu)榱愕耐瑢W(xué)計算在內(nèi),沒有成績(即為空值)的不計算。 例 6 利用特殊函數(shù) COUNT(*)求計算機系學(xué)生的總數(shù) SELECT COUNT( * ) FROM S WHERE DEPT=?計算機 ’ ? COUNT( *) 用來統(tǒng)計元組的個數(shù) ? 不消除重復(fù)行 , 不允許使用 DISTINCT關(guān)鍵字 例 7 找出年齡超過平均年齡的學(xué)生姓名。 SELECT SNAME FROM S WHERE AGE > ( SELECT AVG(AGE) FROM S ) ?GROUP BY子句可以將查詢結(jié)果按屬性列或?qū)傩粤薪M合在 行的方向上進行分組 , 每組在 屬性列 或 屬性列組合 上具有相同的值 。 ?例 1 查詢各位教師的教師號及其任課的門數(shù) 。 SELECT TNO, COUNT(*) AS C_NUM FROM C GROUP BY TNO ?GROUP BY子句按 TNO的值分組 , 所有具有相同 TNO的元組為一組 , 對每一組使用函數(shù) COUNT進行計算 , 統(tǒng)計出各位教師任課的門數(shù) 。 分組查詢 分組和聚集函數(shù) S C G s1 c1 84 s1 c2 90 s1 c3 96 s2 c1 80 s2 c2 90 s3 c2 96 s3 c3 88 S C G s1 c1 84 s1 c2 90 s1 c3 96 s2 c1 80 s2 c2 90 s3 c2 96 s3 c3 88 列出每個學(xué)生的平均成績 列出每門課程的平均成績 group by S group by C 92 85 90 92 92 90 ? 若在分組后還要按照一定的條件進行篩選,則需使用HAVING子句。 例 2 查詢選修兩門以上課程的學(xué)生學(xué)號和選課門數(shù) SELECT SNO, COUNT(*) AS SC_NUM FROM SC GROUP BY SNO HAVING COUNT(*) = 2 ? GROUP BY子句按 SNO的值分組 , 所有具有相同 SNO的元組為一組 , 對每一組使用函數(shù) COUNT進行計算 , 統(tǒng)計出每位學(xué)生選課的門數(shù) 。 ? HAVING子句去掉不滿足 COUNT( *) =2的組 。 分組和聚集函數(shù) ?列出每一年齡組中男學(xué)生(超過 50人)的人數(shù) select AGE, count( S ) from S where SEX = ‘M’ group by AGE having count( * ) 50 ?當(dāng)在一個 SQL 查詢中同時使用 WHERE 子句 ,GROUP BY 子句和 HAVING子句時 , 其順序是WHERE- GROUP BY- HAVING。 ?WHERE與 HAVING子句的根本區(qū)別在于 作用對象不同 。 ?WHERE子句作用于 基本表或視圖 , 從中選擇滿足條件的元組; ?HAVING子句作用于 組 , 選擇滿足條件的組 , 必須用于 GROUP BY子句之后 , 但 GROUP BY子句可沒有 HAVING子句 。 分組和聚集函數(shù) ?列出及格的學(xué)生的平均成績 select SNO, avg(SCORE) from SC group by SNO having min(SCORE) = 60 select SNO, avg(SCORE) from SC where SCORE =60 group by SNO 哪個正確? 查詢的排序 ?當(dāng)需要對查詢結(jié)果排序時 , 應(yīng)該使用 ORDER BY子句 ? ORDER BY子句必須出現(xiàn)在其他子句之后 ?排序方式可以指定 , DESC為降序 , ASC為升序 , 缺省時為升序 例 1 查詢選修 C1 的學(xué)生學(xué)號和成績 , 并按成績降序排列 。 SELECT SNO , SCORE FROM SC WHERE CNO=39。C139。 ORDER BY SCORE DESC 例 2 查詢選修 C C C4或 C5課程的學(xué)號 、 課程號和成績 , 查詢結(jié)果按學(xué)號升序排列 , 學(xué)號相同再按成績降序排列 。 SELECT SNO,CNO, SCORE FROM SC WHERE CNO IN (39。C239。 , 39。C339。, 39。C439。, 39。C5? ) ORDER BY SNO , SCORE DESC 例 3 求選課在三門以上且各門課程均及格的學(xué)生的學(xué)號及其總成績 , 查詢結(jié)果按總成績降序列出 。 SELECT SNO, SUM(SCORE) AS TotalScore FROM SC WHERE SCORE = 60 GROUP BY SNO HAVING COUNT(*) = 3 ORDER BY SUM(SCORE) DESC ?數(shù)據(jù)表之間 的聯(lián)系是通過表的 字段值 來體現(xiàn)的 , 這種字段稱為 連接字段 。 ?連接操作的 目的 就是通過加在連接字段的條件將多個表連接起來 , 以便從多個表中查詢數(shù)據(jù) 。 ?前面的查詢都是針對一個表進行的 , 當(dāng)查詢同時涉及兩個以上的表時 , 稱為 連接查詢 。 ?表的連接方法有兩種: ?方法 1: 表之間滿足一定的條件的行進行連接 , 此時 FROM子句中指明進行連接的表名 , WHERE子句指明連接的列名及其連接條件 。 ?方法 2: 利用關(guān)鍵字 JOIN進行連接 。 多表查詢 例 1 查詢劉偉老師所講授的課程 。 方法 1: SELECT , TN, CNO FROM T, C WHERE ( = C. TNO) AND ( TN=?劉偉 ’ ) ?這里 , TN=?劉偉 ’ 為 查詢條件 , 而 = 為 連接條件 , TNO為連接字段 。 連接條件的一般格式為: [表名 1.] 列名 1 比較運算符 [表名 2.] 列名 2 ?其中 ,比較運算符主要有:= 、 > 、 < 、 >= 、 <= 、 ! = ?當(dāng)比較運算符為 “ = “ 時 , 稱為 等值連接 , 其他情況為非等值連接 。 ?引用列名 TNO時要加上 表名前綴 , 是因為兩個表中的列名相同 , 必須用表名前綴來確切說明所指列屬于哪個表 , 以避免二義性 。 如果列名是唯一的 ,比如 TN, 就不必須加前綴 。 ?上面的操作是將 T表中的 TNO 和 C表中的 TNO相等的行 連接 , 同時 選取 TN為 “ 劉偉 “ 的行 , 然后再在 TN, CNO列上 投影 , 這是 連接 、 選取 和 投影 的操作組合 。 等值連接與非等值連接 ?方法 2: SELECT , TN, CNO FROM T INNER JOIN C ON = AND =?劉偉’ ?方法 3: SELECT , , FROM (SELECT TNO, CNO FROM C ) AS R1 INNER JOIN ( SELECT TNO , TN FROM T WHERE TN=?劉偉 ’ ) AS R2 ON = ?當(dāng)一個表與其自已進行連接操作時 , 稱為表的 自身連接 。 例 2 查詢所有比劉偉工
點擊復(fù)制文檔內(nèi)容
黨政相關(guān)相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1