《數(shù)據(jù)庫系統(tǒng)》PPT課件

上傳人:san****019 文檔編號:22934750 上傳時間:2021-06-02 格式:PPT 頁數(shù):245 大?。?.44MB
收藏 版權申訴 舉報 下載
《數(shù)據(jù)庫系統(tǒng)》PPT課件_第1頁
第1頁 / 共245頁
《數(shù)據(jù)庫系統(tǒng)》PPT課件_第2頁
第2頁 / 共245頁
《數(shù)據(jù)庫系統(tǒng)》PPT課件_第3頁
第3頁 / 共245頁

下載文檔到電腦,查找使用更方便

14.9 積分

下載資源

還剩頁未讀,繼續(xù)閱讀

資源描述:

《《數(shù)據(jù)庫系統(tǒng)》PPT課件》由會員分享,可在線閱讀,更多相關《《數(shù)據(jù)庫系統(tǒng)》PPT課件(245頁珍藏版)》請在裝配圖網(wǎng)上搜索。

1、An Introduction to Database System 數(shù) 據(jù) 庫 系 統(tǒng) 概 論An Introduction to Database System第 三 章 關 系 數(shù) 據(jù) 庫 標 準 語 言 SQL An Introduction to Database System 第三章 關系數(shù)據(jù)庫標準語言SQL3.1 SQL概 述3.2 學 生 -課 程 數(shù) 據(jù) 庫3.3 數(shù) 據(jù) 定 義3.4 查 詢3.5 數(shù) 據(jù) 更 新3.6 視 圖3.7 小 結 An Introduction to Database System 3.1 SQL概述n SQL( Structured Query

2、 Language) , 即 結構 化 查 詢 語 言 , 自 1974年 提 出 , 經(jīng) 各 公 司的 不 斷 修 改 、 擴 充 和 完 善 , 最 終 發(fā) 展 成 為 關系 數(shù) 據(jù) 庫 的 標 準 語 言 。n 是 一 個 通 用 的 、 功 能 極 強 的 關 系 數(shù) 據(jù) 庫 語 言 。 An Introduction to Database System n SQL標 準 從 1986年 公 布 以 來 隨 著 數(shù) 據(jù) 庫 技 術 的 發(fā) 展不 斷 發(fā) 展 和 豐 富 。 標 準 大 致 頁 數(shù) 發(fā) 布 日 期n SQL/86 1986年 10月n SQL/89 120頁 1989年

3、n SQL/92 622頁 1992年 n SQL/99 1700頁 1999年n SQL2003 3600頁 2003年3.1 SQL概 述 An Introduction to Database System 3.1 SQL概 述SQL的 特 點1. 綜 合 統(tǒng) 一 SQL語 言 集 數(shù) 據(jù) 定 義 語 言 DDL、 數(shù) 據(jù) 操 縱 語言 DML、 數(shù) 據(jù) 控 制 語 言 DCL的 功 能 于 一 體 。2. 高 度 非 過 程 化 只 需 提 出 “ 做 什 么 ” , 而 不 必 指 明 “ 怎 么做 ” 3. 面 向 集 合 的 操 作 方 式4. 以 同 一 種 語 法 結 構 提

4、 供 兩 種 使 用 方 法 SQL語 言 既 是 獨 立 的 語 言 , 又 是 嵌 入 式 語 言 5. 語 言 簡 潔 , 易 學 易 用 An Introduction to Database System 表 3.1 SQL語 言 的 動 詞 SQL 功 能 動 詞 數(shù) 據(jù) 定 義 CREATE, DROP, ALTER 數(shù) 據(jù) 查 詢 SELECT 數(shù) 據(jù) 操 縱 INSERT, UPDATE DELETE 數(shù) 據(jù) 控 制 G RANT, REVOKE An Introduction to Database System SQL語言基本概念n 基 本 表n 本 身 獨 立 存 在

5、的 表 。n 一 個 關 系 對 應 一 張 表 。n 存 儲 文 件n 一 個 或 多 個 基 本 表 對 應 一 個 存 儲 文 件 。n 視 圖 n 從 一 個 或 多 個 基 本 表 導 出 的 表 , 本 身 不 獨 立 存在 于 數(shù) 據(jù) 庫 中 。 An Introduction to Database System SQL對關系數(shù)據(jù)庫模式的支持SQL視 圖 1 視 圖 2基 本 表 1 基 本 表 2 基 本 表 3 基 本 表 4存 儲 文 件 1 存 儲 文 件 2 外 模 式模 式內(nèi) 模 式 An Introduction to Database System 第三章 關系

6、數(shù)據(jù)庫標準語言SQL3.1 SQL概 述3.2 學 生 -課 程 數(shù) 據(jù) 庫3.3 數(shù) 據(jù) 定 義3.4 查 詢3.5 數(shù) 據(jù) 更 新3.6 視 圖3.7 小 結 An Introduction to Database System 3.2 學 生 -課 程 數(shù) 據(jù) 庫n 在 本 章 中 用 學 生 -課 程 數(shù) 據(jù) 庫 作 為 一 個 例 子 來講 解 SQL的 數(shù) 據(jù) 定 義 、 數(shù) 據(jù) 操 作 、 數(shù) 據(jù) 查 詢 和數(shù) 據(jù) 控 制 語 句 的 具 體 應 用 。n 學 生 -課 程 數(shù) 據(jù) 中 包 括 以 下 3個 表 學 生 表 : Student(Sno,Sname,Ssex,Sag

7、e,Sdept) 課 程 表 : Course(Cno,Cname,Cpno,Ccredit) 學 生 選 課 表 : SC(Sno,Cno,Grade) An Introduction to Database System 3.2 學 生 -課 程 數(shù) 據(jù) 庫學 號Sno 姓 名Sname 性 別Ssex 年 齡Sage 所 在 系Sdept95001 李 勇 男 20 CS95002 劉 晨 女 19 IS95003 王 敏 女 18 MA95004 張 立 男 19 ISStudent表 An Introduction to Database System 3.2 學 生 -課 程 數(shù)

8、據(jù) 庫課 程 號 課 程 名 先 行 課 學 分Cno Cname Cpno Ccredit1 數(shù) 據(jù) 庫 5 42 數(shù) 學 23 信 息 系 統(tǒng) 1 44 操 作 系 統(tǒng) 6 35 數(shù) 據(jù) 結 構 7 46 數(shù) 據(jù) 處 理 27 PASCAL語 言 6 4Course表 An Introduction to Database System 3.2 學 生 -課 程 數(shù) 據(jù) 庫學 號 課 程 號 成 績Sno Cno Grade95001 1 9295001 2 8595001 3 8895002 2 9095002 3 80SC表 An Introduction to Database Sy

9、stem 3.1 SQL概 述3.2 學 生 -課 程 數(shù) 據(jù) 庫3.3 數(shù) 據(jù) 定 義3.4 查 詢3.5 數(shù) 據(jù) 更 新3.6 視 圖3.7 小 結第 三 章 關 系 數(shù) 據(jù) 庫 標 準 語 言 SQL An Introduction to Database System 3.3 數(shù) 據(jù) 定 義操 作 對 象 操 作 方 式創(chuàng) 建 刪 除 修 改模 式 CREATE SCHEMA DROP SCHEMA表 CREATE TABLE DROP TABLE ALTER TABLE視 圖 CREATE VIEW DROP VIEW索 引 CREATE INDEX DROP INDEXSQL的 數(shù)

10、 據(jù) 定 義 語 句 An Introduction to Database System 3.3 數(shù)據(jù)定義n 3.3.1 模 式 的 定 義 與 刪 除 n 3.3.2 基 本 表 的 定 義 、 刪 除 與 修 改 An Introduction to Database System 3.3.1 模式的定義與刪除n 一 、 定 義 模 式 模 式 定 義 語 句 : CREATE SCHEMA AUTHORIZATION n 其 中 : n 如 果 沒 有 指 定 , 那 么 隱 含 為 n 要 創(chuàng) 建 模 式 , 調(diào) 用 該 命 令 的 用 戶 必 須 擁 有 DBA權 限 , 或者 獲

11、 得 了 DBA授 予 的 CREATE SCHEMA的 權 限 。 An Introduction to Database System 3.3.1 模 式 的 定 義 與 刪 除例 1定 義 一 個 學 生 -課 程 模 式 S-T CREATE SCHEMA “S-T” AUTHORIZATION WANG; 為 用 戶 WANG定 義 了 一 個 模 式 S-T 例 2CREATE SCHEMA AUTHORIZATION WANG; 隱 含 為 用 戶 名 WANG 如 果 沒 有 指 定 , 那 么 隱 含 為 An Introduction to Database System

12、3.3.1 模 式 的 定 義 與 刪 除n 定 義 模 式 實 際 上 定 義 了 一 個 命 名 空 間 n 在 這 個 空 間 中 可 以 定 義 該 模 式 包 含 的 數(shù) 據(jù) 庫 對象 , 例 如 基 本 表 、 視 圖 、 索 引 等 。 n 在 CREATE SCHEMA中 可 以 接 受 CREATE TABLE,CREATE VIEW和 GRANT字 句 。 CREATE SCHEMA AUTHORIZATION | An Introduction to Database System 3.3.1 模 式 的 定 義 與 刪 除例 3 CREATE SCHEMA TEST A

13、UTHORIZATION ZHANG CREATE TABLE TAB1(COL1 SMALLINT, COL2 INT, COL3 CHAR(20), COL4 NUMERIC(10,3), COL5 DECIMAL(5,2) ) 為 用 戶 ZHANG創(chuàng) 建 了 一 個 模 式 TEST, 并 在 其 中 定 義 了一 個 表 TAB1。 An Introduction to Database System 3.3.1 模式的定義與刪除二 、 刪 除 模 式 DROP SCHEMA n 其 中 :n CASCADE和 RESTRICT兩 者 必 選 其 一n CASCADE(級 聯(lián) ):

14、刪 除 模 式 的 同 時 把 該 模 式 中所 有 的 數(shù) 據(jù) 庫 對 象 全 部 刪 除 n RESTRICT(限 制 ): 如 果 該 模 式 中 定 義 了 下 屬 的數(shù) 據(jù) 庫 對 象 ( 如 表 、 視 圖 等 ) , 則 拒 絕 該 刪 除語 句 的 執(zhí) 行 。 當 該 模 式 中 沒 有 任 何 下 屬 的 對 象時 才 能 執(zhí) 行 。 An Introduction to Database System 3.3.1 模 式 的 定 義 與 刪 除例 4 DROP SCHEMA ZHANG CASCADE; 刪 除 模 式 ZHANG同 時 該 模 式 中 定 義 的 表 TA

15、B1也 被刪 除 An Introduction to Database System3.3.2 基 本 表 的 定 義 、 刪 除 與 修 改 An Introduction to Database System 一 、 定 義 基 本 表CREATE TABLE , , ) ;其 中 :n : 所 要 定 義 的 基 本 表 的 名 字 n : 組 成 該 表 的 各 個 屬 性 ( 列 )n : 涉 及 相 應 屬 性 列 的完 整 性 約 束 條 件n : 涉 及 一 個 或 多 個 屬性 列 的 完 整 性 約 束 條 件 An Introduction to Database Sy

16、stem 例 題 例 5 建 立 一 個 “ 學 生 ” 表 S, 它 由 學 號 Sno、 姓 名 Sname、性 別 Ssex、 年 齡 Sage、 所 在 系 Sdept五 個 屬 性 組 成 。 其中 學 號 不 能 為 空 , 值 是 唯 一 的 , 并 且 姓 名 取 值 也 唯 一 。 CREATE TABLE S (Sno CHAR(5) Primary key, Sname CHAR(8) UNIQUE, Ssex CHAR(2), Sage INT, Sdept CHAR(15) ); An Introduction to Database System 例 題 ( 續(xù) )

17、Sno Sname Ssex Sage Sdept 字 符 型 字 符 型 字 符 型 整 數(shù) 字 符 型 長 度 為 5 長 度 為 8 長 度 為 2 長 度 為 15 不 能 為 空 值 An Introduction to Database System 定 義 基 本 表 ( 續(xù) )n 常 用 完 整 性 約 束n 主 健 約 束 : PRIMARY KEYn 外 健 約 束 : FOREIGN KEYn 唯 一 性 約 束 : UNIQUEn 非 空 值 約 束 : NOT NULLn 參 照 完 整 性 約 束PRIMARY KEY與 UNIQUE的 區(qū) 別 ? An Intro

18、duction to Database System 定 義 基 本 表 ( 續(xù) )例 6 建 立 一 個 “ 課 程 表 ” Course, 它 由 課 程 號 (Cno)、課 程 名 (Cname)、 先 修 課 (Cpno)、 學 分 (Ccredit)構 成 。 CREATE TABLE Course ( Cno CHAR(4) PRIMARY KEY, Cname CHAR(40), Cpno CHAR(4) , Ccredit SMALLINT, FOREIGN KEY (Cpno) REFERENCES Course(Cno) ); An Introduction to Data

19、base System 例 題 ( 續(xù) )例 7 建 立 一 個 “ 學 生 選 課 ” 表 SC, 它 由 學 號 Sno、 課 程 號Cno, 修 課 成 績 Grade組 成 , 其 中 (Sno, Cno)為 主 碼 。CREATE TABLE SC( Sno CHAR(5) not null, Cno CHAR(4) not null, Grade int, Primary key (Sno, Cno), foreign key (sno) references Student(sno), foreign key (cno) references course(cno); An In

20、troduction to Database System 使用表約束創(chuàng)建主鍵的優(yōu)點n 首 先 是 定 義 復 合 鍵 的 要 求 , 因 為 Primary Key(主 鍵 )列 的 約 束 不 能 用 于 多 列 上 。n 其 次 , 使 用 表 約 束 來 定 義 主 鍵 , 方 便 今 后 數(shù)據(jù) 庫 的 管 理 , 如 Drop。 An Introduction to Database System 二、數(shù)據(jù)類型n 關 系 模 型 中 一 個 很 重 要 的 概 念 是 域 , SQL中 域 的 概念 用 數(shù) 據(jù) 類 型 來 實 現(xiàn) n 定 義 表 的 屬 性 時 需 要 指 明 其

21、數(shù) 據(jù) 類 型 及 長 度 n 選 用 哪 種 數(shù) 據(jù) 類 型 n 取 值 范 圍 n 要 做 哪 些 運 算n 不 同 的 RDBMS中 支 持 的 數(shù) 據(jù) 類 型 不 完 全 相 同 An Introduction to Database System SQL Server常用數(shù)據(jù)類型n binary 定 長 二 進 制 數(shù) 型n Char(n)/Varchar(n) 定 長 /變 長 字 符 串 型n Date 日 期 型 YYYY-MM-DDn Time 時 間 型 HH:MM:SSn int 全 字 長 整 數(shù) 型n Smallint 短 整 型 n decimal 小 數(shù) 型n F

22、loat(n)/numeric(p,d) 浮 點 型 /定 點 數(shù) n money 貨 幣 型 An Introduction to Database System 三 、 模 式 與 表n 每 一 個 基 本 表 都 屬 于 某 一 個 模 式 n 一 個 模 式 包 含 多 個 基 本 表 n 定 義 基 本 表 所 屬 模 式 n 方 法 一 : 在 表 名 中 明 顯 地 給 出 模 式 名 Create table “S-T”.Student( .) ; /*模 式 名 為 S-T*/ Create table “S-T”.Cource( .) ; Create table “S-T

23、”.SC( .) ; n 方 法 二 : 在 創(chuàng) 建 模 式 語 句 中 同 時 創(chuàng) 建 表 n 方 法 三 : 設 置 所 屬 的 模 式 An Introduction to Database System 三、模式與表n 創(chuàng) 建 基 本 表 ( 其 他 數(shù) 據(jù) 庫 對 象 也 一 樣 ) 時 , 若 沒有 指 定 模 式 , 系 統(tǒng) 根 據(jù) 搜 索 路 徑 來 確 定 該 對 象 所屬 的 模 式 n RDBMS會 使 用 模 式 列 表 中 第 一 個 存 在 的 模 式 作 為數(shù) 據(jù) 庫 對 象 的 模 式 名 n 若 搜 索 路 徑 中 的 模 式 名 都 不 存 在 , 系 統(tǒng)

24、將 給 出 錯誤 n 顯 示 當 前 的 搜 索 路 徑 : SHOW search_path; n 搜 索 路 徑 的 當 前 默 認 值 是 : $user, PUBLIC An Introduction to Database System 三 、 模 式 與 表n DBA用 戶 可 以 設 置 搜 索 路 徑 , 然 后 定 義 基 本 表 SET search_path TO “S-T”, PUBLIC Create table S( .) ; 結 果 建 立 了 S-T.Student基 本 表 。 RDBMS發(fā) 現(xiàn) 搜 索 路 徑 中 第 一 個 模 式 名 S-T存 在 , 就

25、把 該 模 式 作 為 基 本 表 Student所 屬 的 模 式 。 An Introduction to Database System 四 、 修 改 基 本 表ALTER TABLE ADD 完 整 性 約 束 DROP ALTER COLUMN ;其 中 :n : 要 修 改 的 基 本 表 n ADD子 句 : 增 加 新 列 和 新 的 完 整 性 約 束 條 件n DROP子 句 : 刪 除 指 定 的 完 整 性 約 束 條 件n ALTER COLUMN子 句 : 用 于 修 改 列 名 和 數(shù) 據(jù) 類 型 An Introduction to Database Syst

26、em 例 題 例 8 向 S表 增 加 “ 入 學 時 間 ” 列 , 其 數(shù) 據(jù)類 型 為 日 期 型 。 ALTER TABLE S ADD Scome DATE;n 不 論 基 本 表 中 原 來 是 否 已 有 數(shù) 據(jù) , 新 增 加的 列 一 律 為 空 值 。 An Introduction to Database System 例 題n 刪 除 屬 性 列 例 9 將 屬 性 列 Scome刪 除 : alter table S drop column Scome; An Introduction to Database System 例 題例 10 將 年 齡 的 數(shù) 據(jù) 類

27、型 改 為 半 字 長 整 數(shù) 。 ALTER TABLE S ALTER COLUMN Sage SMALLINT注 : 修 改 原 有 的 列 定 義 有 可 能 會 破 壞 已 有 數(shù) 據(jù) An Introduction to Database System 例 題 例 11 刪 除 學 生 姓 名 必 須 取 唯 一 值 的 約 束 。ALTER TABLE S DROP UNIQUE(Sname); An Introduction to Database System 五、刪除基本表n 語 句 格 式 : DROP TABLE RESTRICT|CASCADE; n RESTRICT

28、: 刪 除 表 是 有 限 制 的 。 n 欲 刪 除 的 基 本 表 不 能 被 其 他 表 的 約 束 所 引 用 n 如 果 存 在 依 賴 該 表 的 對 象 , 則 此 表 不 能 被 刪 除 n CASCADE: 刪 除 該 表 沒 有 限 制 。 n 在 刪 除 基 本 表 的 同 時 , 相 關 的 依 賴 對 象 一 起 刪 除 An Introduction to Database System 例 題例 12 刪 除 Student表 DROP TABLE S CASCADE ; n 基 本 表 定 義 被 刪 除 , 數(shù) 據(jù) 被 刪 除 n 表 上 建 立 的 索 引

29、、 視 圖 、 觸 發(fā) 器 等 一 般 也 將 被 刪除 An Introduction to Database System 例 題 例 13 若 表 上 建 有 視 圖 , 選 擇 RESTRICT時 表 不 能 刪 CREATE VIEW IS_Student AS SELECT Sno, Sname, Sage FROM S WHERE Sdept=IS;DROP TABLE S RESTRICT;-ERROR: cannot drop table Student because other objects depend on it An Introduction to Databas

30、e System 例 題例 13如 果 選 擇 CASCADE時 可 以 刪 除 表 , 視 圖 也 自 動 被 刪除 DROP TABLE S CASCADE; -NOTICE: drop cascades to view IS_Student SELECT * FROM IS_Student; -ERROR: relation IS_Student does not exist 注 意 : 不 同 的 數(shù) 據(jù) 庫 產(chǎn) 品 在 遵 循 SQL標 準 的 基 礎 上 具 體 實現(xiàn) 細 節(jié) 和 處 理 策 略 上 會 與 標 準 有 差 別 , 見 P89。 An Introduction to

31、 Database System 3.3.3 建 立 與 刪 除 索 引 n 索 引 是 對 數(shù) 據(jù) 庫 表 中 一 列 或 多 列 的 值 進行 排 序 的 一 種 結 構 。n 索 引 提 供 指 向 存 儲 在 表 的 指 定 列 中 的 數(shù)據(jù) 值 的 指 針 , 然 后 根 據(jù) 您 指 定 的 排 序 順序 對 這 些 指 針 排 序 。 n 數(shù) 據(jù) 庫 使 用 索 引 的 方 式 與 使 用 書 籍 中 的索 引 的 方 式 很 相 似 : 它 搜 索 索 引 以 找 到特 定 值 , 然 后 順 指 針 找 到 包 含 該 值 的 行 。 An Introduction to Da

32、tabase System n 建 立 索 引 是 加 快 查 詢 速 度 的 有 效 手 段n 如 果 沒 有 索 引 , 執(zhí) 行 查 詢 時 必 須 從 第 一 個 記錄 開 始 掃 描 整 個 表 的 所 有 記 錄 , 直 至 找 到 符合 要 求 的 記 錄 。 表 里 面 的 記 錄 數(shù) 量 越 多 , 這個 操 作 的 代 價 就 越 高 。n 如 果 表 有 1000個 記 錄 , 通 過 索 引 查 找 記 錄至 少 要 比 順 序 掃 描 記 錄 快 100 倍 。 An Introduction to Database System n 建 立 索 引n DBA或 表 的

33、 屬 主 ( 即 建 立 表 的 人 ) 根 據(jù) 需 要 建 立n 有 些 DBMS自 動 建 立 以 下 列 上 的 索 引n PRIMARY KEYn UNIQUEn 維 護 索 引n DBMS自 動 完 成 n 使 用 索 引 n DBMS自 動 選 擇 是 否 使 用 索 引 以 及 使 用 哪 些 索 引 An Introduction to Database System 3.3.3 建 立 與 刪 除 索 引n 創(chuàng) 建 索 引 的 方 法 可 以 分 為 直 接 方 法 和 間 接 方 法n 直 接 創(chuàng) 建 索 引 的 方 法 就 是 使 用 CREATE INDEX語 句直 接

34、 創(chuàng) 建n 間 接 創(chuàng) 建 索 引 就 是 通 過 創(chuàng) 建 其 他 對 象 而 附 加 創(chuàng) 建了 索 引 , 例 如 在 表 中 定 義 主 鍵 約 束 或 唯 一 約 束 時 ,同 時 也 創(chuàng) 建 了 索 引 。 An Introduction to Database System 一 、 建 立 索 引 n 語 句 格 式CREATE UNIQUE CLUSTER INDEX ON (, );n 用 指 定 要 建 索 引 的 基 本 表 名 字 n 索 引 可 以 建 立 在 該 表 的 一 列 或 多 列 上 , 各 列 名 之 間 用 逗 號 分隔n 用 指 定 索 引 值 的 排

35、列 次 序 , 升 序 : ASC, 降 序 : DESC。缺 省 值 : ASCn UNIQUE表 明 此 索 引 的 每 一 個 索 引 值 只 對 應 唯 一 的 數(shù) 據(jù) 記 錄n CLUSTER表 示 要 建 立 的 索 引 是 聚 簇 索 引 An Introduction to Database System 例 題 例 14 為 學 生 -課 程 數(shù) 據(jù) 庫 中 的 S, C, SC三 個 表建 立 索 引 。 其 中 S表 按 學 號 升 序 建 唯 一 索 引 , C表按 課 程 號 升 序 建 唯 一 索 引 , SC表 按 學 號 升 序 和 課程 號 降 序 建 唯 一

36、 索 引 。CREATE UNIQUE INDEX Stusno ON S (Sno);CREATE UNIQUE INDEX Coucno ON C (Cno);CREATE UNIQUE INDEX SCno ON SC(Sno ASC, Cno DESC); An Introduction to Database System 建 立 索 引 ( 續(xù) )n 唯 一 值 索 引n 對 于 已 含 重 復 值 的 屬 性 列 不 能 建 UNIQUE索 引n 對 某 個 列 建 立 UNIQUE索 引 后 , 插 入 新 記 錄 時DBMS會 自 動 檢 查 新 記 錄 在 該 列 上 是

37、否 取 了 重復 值 。 這 相 當 于 增 加 了 一 個 UNIQUE約 束 An Introduction to Database System 建 立 索 引 ( 續(xù) )n 聚 簇 索 引n 建 立 聚 簇 索 引 后 , 基 表 中 數(shù) 據(jù) 也 需 要 按 指 定 的 聚 簇 屬性 值 的 升 序 或 降 序 存 放 。 也 即 聚 簇 索 引 的 索 引 項 順 序與 表 中 記 錄 的 物 理 順 序 一 致例 : CREATE CLUSTER INDEX Stusname ON S (Sname);在 S表 的 Sname( 姓 名 ) 列 上 建 立 一 個 聚 簇 索 引

38、, 而 且 S表中 的 記 錄 將 按 照 Sname值 的 升 序 存 放 An Introduction to Database System 建 立 索 引 ( 續(xù) )n 在 一 個 基 本 表 上 最 多 只 能 建 立 一 個 聚 簇 索 引n 聚 簇 索 引 的 用 途 : 在 最 經(jīng) 常 查 詢 的 列 上 建 立 聚簇 索 引 , 可 以 提 高 查 詢 效 率n 聚 簇 索 引 的 適 用 范 圍 n 很 少 對 基 表 進 行 增 刪 操 作n 很 少 對 其 中 的 變 長 列 進 行 修 改 操 作 An Introduction to Database System

39、二 、 刪 除 索 引 語 句 格 式 : DROP INDEX ;n 刪 除 索 引 時 , 系 統(tǒng) 會 從 數(shù) 據(jù) 字 典 中 刪 去 有 關 該索 引 的 描 述 。例 15 刪 除 S表 的 Stusname索 引 。 DROP INDEX Stusname; An Introduction to Database System 3.4 查 詢 3.4.1 概 述3.4.2 單 表 查 詢3.4.3 連 接 查 詢3.4.4 嵌 套 查 詢3.4.5 集 合 查 詢 An Introduction to Database System 3.4.1 概 述 n 語 句 格 式SELECT

40、 ALL|DISTINCT , FROM , WHERE GROUP BY HAVING ORDER BY ASC|DESC ; An Introduction to Database System 語 句 格 式n SELECT子 句 : 指 定 要 顯 示 的 屬 性 列n FROM子 句 : 指 定 查 詢 對 象 (基 本 表 或 視 圖 )n WHERE子 句 : 指 定 查 詢 條 件n GROUP BY子 句 : 對 查 詢 結 果 按 指 定 列 的 值分 組 , 該 屬 性 列 值 相 等 的 元 組 為 一 個 組 。 通常 會 在 每 組 中 作 用 集 函 數(shù) 。 n

41、HAVING短 語 : 篩 選 出 只 有 滿 足 指 定 條 件 的 組n ORDER BY子 句 : 對 查 詢 結 果 表 按 指 定 列 值 的升 序 或 降 序 排 序 An Introduction to Database System 3.3 查 詢 3.3.1 概 述3.3.2 單 表 查 詢3.3.3 連 接 查 詢3.3.4 嵌 套 查 詢3.3.5 集 合 查 詢 An Introduction to Database System 3.3.2 單表查詢 n 查 詢 僅 涉 及 一 個 表 , 是 一 種 最 簡 單 的 查 詢 操作 n 一 、 選 擇 表 中 的 若

42、干 列n 二 、 選 擇 表 中 的 若 干 元 組n 三 、 對 查 詢 結 果 排 序 n 四 、 使 用 集 函 數(shù)n 五 、 對 查 詢 結 果 分 組 An Introduction to Database System 1. 查 詢 指 定 列例 1 查 詢 全 體 學 生 的 姓 名 、 學 號 、 所 在 系 。SELECT Sname, Sno, SdeptFROM S; An Introduction to Database System 2. 查 詢 全 部 列例 2 查 詢 全 體 學 生 的 詳 細 記 錄 。SELECT Sno, Sname, Ssex, Sage

43、, Sdept FROM S; 或SELECT *FROM S; An Introduction to Database System 3. 查 詢 經(jīng) 過 計 算 的 值 SELECT子 句 的 可 以 為 :n 算 術 表 達 式n 字 符 串 常 量n 函 數(shù) n 列 別 名 An Introduction to Database System 3. 查 詢 經(jīng) 過 計 算 的 值例 3 查 全 體 學 生 的 姓 名 及 其 出 生 年 份 。 SELECT Sname, 2006-Sage FROM S; An Introduction to Database System 3. 查

44、 詢 經(jīng) 過 計 算 的 值例 4 查 詢 全 體 學 生 的 姓 名 、 出 生 年 份 和 所 在 的系 , 要 求 用 小 寫 字 母 表 示 所 有 系 名 。SELECT Sname 姓 名 ,2006-Sage 出 生 日 期 ,lower(sdept) 所 在 系FROM S; 姓 名 出 生 日 期 所 在 系- - -李 勇 1984 is劉 晨 1985 ca An Introduction to Database System 二 、 選 擇 表 中 的 若 干 元 組 n 消 除 取 值 重 復 的 行n 查 詢 滿 足 條 件 的 元 組 An Introductio

45、n to Database System 1. 消除取值重復的行n 在 SELECT子 句 中 使 用 DISTINCT短 語假 設 SC表 中 有 下 列 數(shù) 據(jù) Sno Cno Grade - - - 95001 1 92 95001 2 85 95001 3 88 95002 2 90 95002 3 80 An Introduction to Database System ALL 與 DISTINCT 例 5 查 詢 選 修 了 課 程 的 學 生 學 號 。(1) SELECT Sno FROM SC;或 (默 認 ALL) SELECT ALL Sno FROM SC; 結 果

46、: Sno - 95001 95001 95001 95002 95002 An Introduction to Database System 例 題 ( 續(xù) )(2) SELECT DISTINCT Sno FROM SC; 結 果 : Sno - 95001 95002 An Introduction to Database System 例題(續(xù))n 注 意 DISTINCT短 語 的 作 用 范 圍 是 所 有 目 標 列n 例 : 查 詢 選 修 課 程 的 各 種 成 績n 錯 誤 的 寫 法 SELECT DISTINCT Cno, DISTINCT Grade FROM SC

47、;n 正 確 的 寫 法 SELECT DISTINCT Cno, Grade FROM SC; An Introduction to Database System 2.查 詢 滿 足 條 件 的 元 組 表 3.3 常 用 的 查 詢 條 件 查 詢 條 件 謂 詞 比 較 =, , =, =, !=, , !, !; NOT + 上 述 比 較 運 算 符 確 定 范 圍 BETWEEN AND, NOT BETWEEN AND 確 定 集 合 IN, NOT IN 字 符 匹 配 LIKE, NOT LIKE 空 值 IS NULL, IS NOT NULL 多 重 條 件 AND,

48、OR WHERE子 句 常 用 的 查 詢 條 件 An Introduction to Database System (1) 比較大小n 在 WHERE子 句 的 中 使 用 比 較 運算 符n =, , =, =, != 或 , !, !, n 邏 輯 運 算 符 NOT + 比 較 運 算 符 An Introduction to Database System 例 6 查 詢 所 有 年 齡 在 20歲 以 下 的 學 生 姓 名 及 其 年 齡 。 SELECT Sname, Sage FROM S WHERE Sage = 20; An Introduction to Datab

49、ase System (2) 確 定 范 圍n 使 用 謂 詞 BETWEEN AND NOT BETWEEN AND 例 7 查 詢 年 齡 在 2023歲 ( 包 括 20歲 和 23歲 )之 間 的 學 生 的 姓 名 、 系 別 和 年 齡 。 SELECT Sname, Sdept, SageFROM SWHERE Sage BETWEEN 20 AND 23; An Introduction to Database System 例題(續(xù))例 8 查 詢 年 齡 不 在 20-23歲 之 間 的 學 生 姓 名 、 系別 和 年 齡 。SELECT Sname, Sdept, Sa

50、geFROM SWHERE Sage NOT BETWEEN 20 AND 23; An Introduction to Database System (3) 確定集合使 用 謂 詞 IN , NOT IN : 用 逗 號 分 隔 的 一 組 取 值例 9查 詢 信 息 系 ( IS) 、 數(shù) 學 系 ( MA) 和 計算 機 科 學 系 ( CS) 學 生 的 姓 名 和 性 別 。SELECT Sname, SsexFROM SWHERE Sdept IN ( IS, MA, CS ); An Introduction to Database System (3) 確定集合例 10查 詢

51、 既 不 是 信 息 系 、 數(shù) 學 系 , 也 不 是 計 算 機 科 學 系 的 學 生 的 姓 名 和 性 別 。SELECT Sname, SsexFROM S WHERE Sdept NOT IN ( IS, MA, CS ); An Introduction to Database System (4) 字符串匹配n NOT LIKE ESCAPE : 指 定 匹 配 模 板 匹 配 模 板 : 固 定 字 符 串 或 含 通 配 符 的 字 符 串 當 匹 配 模 板 為 固 定 字 符 串 時 , 可 以 用 = 運 算 符 取 代 LIKE 謂 詞 , 用 != 或 運 算

52、符 取 代 NOT LIKE 謂 詞 An Introduction to Database System 通配符n % (百 分 號 ) 代 表 任 意 長 度 ( 長 度 可 以 為 0)的 字 符 串n 例 : a%b表 示 以 a開 頭 , 以 b結 尾 的 任 意 長 度 的字 符 串 。 如 acb, addgb, ab 等 都 滿 足 該 匹 配 串n _ (下 橫 線 ) 代 表 任 意 單 個 字 符 n 例 : a_b表 示 以 a開 頭 , 以 b結 尾 的 長 度 為 3的 任意 字 符 串 。 如 acb, afb等 都 滿 足 該 匹 配 串 An Introduc

53、tion to Database System ESCAPE 短 語n 當 用 戶 要 查 詢 的 字 符 串 本 身 就 含 有 % 或 _ 時 , 要 使 用 ESCAPE 短 語 對 通 配 符 進 行 轉 義 。 An Introduction to Database System 例題1) 匹 配 模 板 為 固 定 字 符 串 例 14 查 詢 學 號 為 95001的 學 生 的 詳 細 情 況 。 SELECT * FROM S WHERE Sno LIKE 95001;等 價 于 : SELECT * FROM S WHERE Sno = 95001; An Introduc

54、tion to Database System 例題(續(xù))2) 匹 配 模 板 為 含 通 配 符 的 字 符 串例 15 查 詢 所 有 姓 劉 學 生 的 姓 名 、 學 號 和 性 別 。 SELECT Sname, Sno, Ssex FROM S WHERE Sname LIKE 劉 %; An Introduction to Database System 例 題 ( 續(xù) )匹 配 模 板 為 含 通 配 符 的 字 符 串 ( 續(xù) )例 16 查 詢 姓 歐 陽 且 全 名 為 三 個 漢 字 的 學 生的 姓 名 。 SELECT Sname FROM S WHERE Snam

55、e LIKE 歐 陽 _;注 意 : 兩 個 _ An Introduction to Database System 例 題 ( 續(xù) )匹 配 模 板 為 含 通 配 符 的 字 符 串 ( 續(xù) )例 17 查 詢 名 字 中 第 2個 字 為 陽 字 的 學 生 的 姓名 和 學 號 。 SELECT Sname, Sno FROM S WHERE Sname LIKE _陽 %; An Introduction to Database System 例 題 ( 續(xù) )匹 配 模 板 為 含 通 配 符 的 字 符 串 ( 續(xù) )例 18 查 詢 所 有 不 姓 劉 的 學 生 姓 名 。

56、SELECT Sname, Sno, Ssex FROM S WHERE Sname NOT LIKE 劉 %; An Introduction to Database System 例 題 ( 續(xù) )3) 使 用 換 碼 字 符 將 通 配 符 轉 義 為 普 通 字 符 例 19 查 詢 DB_Design課 程 的 課 程 號 和 學 分 。 SELECT Cno, Ccredit FROM C WHERE Cname LIKE DB_Design ESCAPE 或 SELECT Cno, Ccredit FROM C WHERE Cname=DB_Design An Introduct

57、ion to Database System 例 題 ( 續(xù) )使 用 換 碼 字 符 將 通 配 符 轉 義 為 普 通 字 符 (續(xù) )例 20 查 詢 以 DB_開 頭 , 且 倒 數(shù) 第 3個 字 符 為i的 課 程 的 詳 細 情 況 。 SELECT * FROM C WHERE Cname LIKE DB_%i_ ESCAPE ; An Introduction to Database System (5) 涉及空值的查詢n 使 用 謂 詞 IS NULL 或 IS NOT NULLn “IS NULL” 不 能 用 “ = NULL” 代 替 例 21 某 些 學 生 選 修

58、課 程 后 沒 有 參 加 考 試 , 所 以有 選 課 記 錄 , 但 沒 有 考 試 成 績 。 查 詢 缺 少 成 績 的學 生 的 學 號 和 相 應 的 課 程 號 。 SELECT Sno, Cno FROM SC WHERE Grade IS NULL; An Introduction to Database System 例 題 (續(xù) ) 例 22 查 所 有 有 成 績 的 學 生 學 號 和 課程 號 。 SELECT Sno, Cno FROM SC WHERE Grade IS NOT NULL; An Introduction to Database System (

59、6) 多 重 條 件 查 詢用 邏 輯 運 算 符 AND和 OR來 聯(lián) 結 多 個 查 詢 條 件n AND的 優(yōu) 先 級 高 于 ORn 可 以 用 括 號 改 變 優(yōu) 先 級可 用 來 實 現(xiàn) 多 種 其 他 謂 詞 n NOT INn NOT BETWEEN AND An Introduction to Database System 例 題例 23 查 詢 計 算 機 系 年 齡 在 20歲 以 下 的 學 生姓 名 。 SELECT Sname FROM S WHERE Sdept= CS AND Sage=20 AND Sage=23; An Introduction to Da

60、tabase System 三 、 對 查 詢 結 果 排 序 使 用 ORDER BY子 句n 可 以 按 一 個 或 多 個 屬 性 列 排 序n 升 序 : ASC; 降 序 : DESC; 缺 省 值 為 升 序當 排 序 列 含 空 值 時 n ASC: 排 序 列 為 空 值 的 元 組 最 后 顯 示n DESC: 排 序 列 為 空 值 的 元 組 最 先 顯 示 An Introduction to Database System 對 查 詢 結 果 排 序 ( 續(xù) ) 例 24 查 詢 選 修 了 3號 課 程 的 學 生 的 學 號及 其 成 績 , 查 詢 結 果 按

61、分 數(shù) 降 序 排 列 。 SELECT Sno, Grade FROM SC WHERE Cno= 3 ORDER BY Grade DESC; An Introduction to Database System 對查詢結果排序(續(xù)) 例 25 查 詢 全 體 學 生 情 況 , 查 詢 結 果 按 所在 系 的 系 號 升 序 排 列 , 同 一 系 中 的 學 生 按年 齡 降 序 排 列 。 SELECT * FROM S ORDER BY Sdept, Sage DESC; An Introduction to Database System 四、使用集函數(shù) 5類 主 要 集 函

62、數(shù)n 計 數(shù)COUNT( DISTINCT|ALL *)COUNT( DISTINCT|ALL )n 計 算 總 和SUM( DISTINCT|ALL ) n 計 算 平 均 值AVG( DISTINCT|ALL ) An Introduction to Database System 使 用 集 函 數(shù) ( 續(xù) ) 求 最 大 值MAX( DISTINCT|ALL ) 求 最 小 值MIN( DISTINCT|ALL ) DISTINCT短 語 : 在 計 算 時 要 取 消 指 定 列 中 的 重 復 值 ALL短 語 : 不 取 消 重 復 值 ALL為 缺 省 值 An Introdu

63、ction to Database System 使 用 集 函 數(shù) ( 續(xù) )例 26 查 詢 學 生 總 人 數(shù) 。 SELECT COUNT(*) FROM S; 例 27 查 詢 選 修 了 課 程 的 學 生 人 數(shù) 。 SELECT COUNT(DISTINCT Sno) FROM SC;注 : 用 DISTINCT以 避 免 重 復 計 算 學 生 人 數(shù) An Introduction to Database System 使用集函數(shù) (續(xù))例 28 計 算 001號 課 程 的 學 生 平 均 成 績 。 SELECT AVG(Grade) FROM SC WHERE Cno

64、=001; 例 29 查 詢 選 修 001號 課 程 的 學 生 最 高 分 數(shù) 。 SELECT MAX(Grade) FROM SC WHERE Cno=001; An Introduction to Database System 五、對查詢結果分組 n 使 用 GROUP BY子 句 將 查 詢 結 果 表 按 某 一 列或 多 列 值 分 組 , 值 相 等 的 為 一 組 。 n 細 化 集 函 數(shù) 的 作 用 對 象n 未 對 查 詢 結 果 分 組 , 集 函 數(shù) 將 作 用 于 整 個 查 詢結 果 n 對 查 詢 結 果 分 組 后 , 集 函 數(shù) 將 分 別 作 用 于

65、 每 個組 An Introduction to Database System 使 用 GROUP BY子 句 分 組例 30 求 各 個 課 程 號 及 相 應 的 選 課 人 數(shù) 。 SELECT Cno, COUNT(Sno) FROM SC GROUP BY Cno; An Introduction to Database System 對查詢結果分組 (續(xù))n GROUP BY子 句 的 作 用 對 象 是 查 詢 的 中 間 結果 表n 分 組 方 法 : 按 指 定 的 一 列 或 多 列 值 分 組 , 值相 等 的 為 一 組n 使 用 GROUP BY子 句 后 , SE

66、LECT子 句 的 列 名列 表 中 只 能 出 現(xiàn) 分 組 屬 性 和 集 函 數(shù) An Introduction to Database System 使 用 HAVING短 語 篩 選 最 終 輸 出 結 果例 31 查 詢 選 修 了 3門 以 上 課 程 的 學 生 學 號 。 SELECT Sno FROM SC GROUP BY Sno HAVING COUNT(sno) 3; An Introduction to Database System 例 題例 32 查 詢 有 3門 以 上 課 程 是 90分 以 上 的 學 生 的 學號 及 ( 90分 以 上 的 ) 課 程 數(shù) SELECT Sno, COUNT(Cno) FROM SC WHERE Grade=90 GROUP BY Sno HAVING COUNT(Cno)=3; An Introduction to Database System 使 用 HAVING短 語 篩 選 最 終 輸 出 結 果n 只 有 滿 足 HAVING短 語 指 定 條 件 的 組 才 輸 出n HAVING短 語 與 WHER

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

相關資源

更多
正為您匹配相似的精品文檔
關于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權所有   聯(lián)系電話:18123376007

備案號:ICP2024067431-1 川公網(wǎng)安備51140202000466號


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務平臺,本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權或隱私,請立即通知裝配圖網(wǎng),我們立即給予刪除!