【正文】
RE Sdept=?CS?; [例 8] 查詢所有年齡在 20歲以下的學(xué)生姓名及其年齡。 SELECT Sname, Sno, Sdept FROM Student; An Introduction to Database System 2. 查詢?nèi)苛? ?選出所有屬性列: ?在 SELECT關(guān)鍵字后面列出所有列名 ?將 目標(biāo)列表達式 指定為 * [例 3] 查詢?nèi)w學(xué)生的詳細記錄 。 ERROR: relation IS_Student does not exist An Introduction to Database System 刪除基本表(續(xù)) 序 號 標(biāo)準(zhǔn)及主流數(shù)據(jù)庫的處理方式 依賴基本表的對象 SQL99 Kingbase ES ORACLE 9i MS SQL SERVER 2021 R C R C C 1. 索引 無規(guī)定 √ √ √ √ √ 2. 視圖 √ √ √ 保留 √ 保留 √ 保留 3. DEFAULT, PRIMARY KEY, CHECK(只含該表的列) NOT NULL 等約束 √ √ √ √ √ √ √ 4. Foreign Key √ √ √ 5. TRIGGER √ √ √ √ √ 6. 函數(shù)或存儲過程 √ √ 保留 √ 保留 √ 保留 √ 保留 √ 保留 DROP TABLE時, SQL99 與 3個 RDBMS的處理策略比較 R表示 RESTRICT , C表示 CASCADE 39。 An Introduction to Database System 五、刪除基本表 DROP TABLE 表名 [ RESTRICT| CASCADE]; ? RESTRICT:刪除表是有限制的。 ?搜索路徑的當(dāng)前默認值是: $user, PUBLIC An Introduction to Database System 模式與表(續(xù)) ? DBA用戶可以設(shè)置搜索路徑,然后定義基本表 SET search_path TO “ST”, PUBLIC; Create table Student( ......) 。 An Introduction to Database System 刪除模式(續(xù)) [例 4] DROP SCHEMA ZHANG CASCADE; 刪除模式 ZHANG 同時該模式中定義的表 TAB1也被刪除 An Introduction to Database System 數(shù)據(jù)定義 ? 模式的定義與刪除 ? 基本表的定義、刪除與修改 ? 索引的建立與刪除 An Introduction to Database System 基本表的定義、刪除與修改 一 、 定義基本表 CREATE TABLE 表名 ( 列名 數(shù)據(jù)類型 [ 列級完整性約束條件 ] [, 列名 數(shù)據(jù)類型 [ 列級完整性約束條件 ] ] … [, 表級完整性約束條件 ] ) ; 如果完整性約束條件涉及到該表的多個屬性列,則必須定義在表級上,否則既可以定義在列級也可以定義在表級。 ? 存取路徑的選擇以及 SQL的操作過程由系統(tǒng)自動完成。 An Introduction to Database System ?非關(guān)系數(shù)據(jù)模型采用面向記錄的操作方式,操作對象是一條記錄 ?SQL采用集合操作方式 ? 操作對象、查找結(jié)果可以是元組的集合 ? 一次插入、刪除、更新操作的對象可以是元組的集合 An Introduction to Database System ?SQL是獨立的語言 能夠獨立地用于聯(lián)機交互的使用方式 ?SQL又是嵌入式語言 SQL能夠嵌入到高級語言(例如 C, C++, Java)程序中,供程序員設(shè)計程序時使用 An Introduction to Database System ,易學(xué)易用 ? SQL功能極強,完成核心功能只用了 9個動詞。 An Introduction to Database System 學(xué)生 表 Student [例 5] 建立 “ 學(xué)生 ” 表 Student, 學(xué)號是主碼 , 姓名取值唯一 。 結(jié)果建立了 。 ?欲刪除的基本表不能被其他表的約束所引用 ?如果存在依賴該表的對象,則此表不能被刪除 ? CASCADE:刪除該表沒有限制。 39。 SELECT Sno, Sname, Ssex, Sage, Sdept FROM Student; 或 SELECT * FROM Student; An Introduction to Database System 3. 查詢經(jīng)過計算的值 ? SELECT子句的 目標(biāo)列表達式 可以為: ? 算術(shù)表達式 ? 字符串常量 ? 函數(shù) ? 列別名 An Introduction to Database System [例 4] 查全體學(xué)生的姓名及其出生年份 。 SELECT Sname, Sage FROM Student WHERE Sage 20; [例 9] 查詢考試成績有不及格的學(xué)生的學(xué)號。 )。 )。歐陽 __39。 ESCAPE 39。查詢?nèi)鄙俪煽兊膶W(xué)生的學(xué)號和相應(yīng)的課程號。 39。 OR Sdept= 39。 SELECT COUNT(DISTINCT Sno) FROM SC; [例 28] 計算 1號課程的學(xué)生平均成績 。 An Introduction to Database System 單表查詢 ?查詢僅涉及一個表: ?一 、 選擇表中的若干列 ?二 、 選擇表中的若干元組 ?三 、 ORDER BY子句 ?四 、 聚集函數(shù) ?五 、 GROUP BY子句 An Introduction to Database System 五、 GROUP BY子句 ? GROUP BY子句分組: 細化聚集函數(shù)的作用對象 ? 未對查詢結(jié)果分組 , 聚集函數(shù)將作用于整個查詢結(jié)果 ? 對查詢結(jié)果分組后,聚集函數(shù)將分別作用于每個組 ? 作用對象是查詢的中間結(jié)果表 ? 按指定的一列或多列值分組,值相等的為一組 An Introduction to Database System GROUP BY子句(續(xù)) [例 31] 求各個課程號及相應(yīng)的選課人數(shù) 。 SELECT Sno FROM SC GROUP BY Sno HAVING COUNT(*) 3; An Introduction to Database System GROUP BY子句(續(xù)) ?HAVING短語與 WHERE子句的區(qū)別: ? 作用對象不同 ? WHERE子句作用于基表或視圖 , 從中選擇滿足條件的元組 ? HAVING短語作用于組 , 從中選擇滿足條件的組 。 1 39。; An Introduction to Database System 單表查詢 ?查詢僅涉及一個表: ?一 、 選擇表中的若干列 ?二 、 選擇表中的若干元組 ?三 、 ORDER BY子句 ?四 、 聚集函數(shù) ?五 、 GROUP BY子句 An Introduction to Database System 三、 ORDER BY子句 ? ORDER BY子句 ?可以按一個或多個屬性列排序 ?升序: ASC;降序: DESC;缺省值為升序 ?當(dāng)排序列含空值時 ?ASC:排序列為空值的元組最后顯示 ?DESC:排序列為空值的元組最先顯示 An Introduction to Database System ORDER BY子句 (續(xù)) [例 24] 查詢選修了 3號課程的學(xué)生的學(xué)號及其成績 , 查詢結(jié)果按分數(shù)降序排列 。 39。 SELECT Sno, Cno FROM SC WHERE Grade IS NOT NULL; An Introduction to Database System (6) 多重條件查詢 ?邏輯運算符: AND和 OR來聯(lián)結(jié)多個查詢條件 ? AND的優(yōu)先級高于 OR ? 可以用括號改變優(yōu)先級 ?可用來實現(xiàn)多種其他謂詞 ? [NOT] IN ? [NOT] BETWEEN … AND … An Introduction to Database System 多重條件查詢(續(xù)) [例 23] 查詢計算機系年齡在 20歲以下的學(xué)生姓名。 SELECT * FROM Course WHERE Cname LIKE 39。 SELECT Sname, Sno FROM Student WHERE Sname LIKE ?__陽 %?