Microsoft PowerPoint - Ch6



Similar documents
Microsoft Word - 第四章.doc

實德證券網上交易系統示範

證 券 簡 易 下 單 :2121 證 券 簡 易 下 單 1. 主 工 具 列 的 視 窗 搜 尋 器 直 接 輸 入 點 擊 主 選 單 證 券 專 區 下 單 特 殊 下 單 2121 證 券 簡 易 下 單 畫 面 說 明 1. 下 單 區 2. 個 股 行 情 資 訊 與

xls

6-1-1極限的概念

Microsoft Word doc

Microsoft PowerPoint - 資料庫正規化(ccchen).ppt

所 3 學 分 課 程, 及 兩 門 跨 領 域 課 程 共 6 學 分 以 上 課 程 學 生 在 修 課 前, 必 須 填 寫 課 程 修 課 認 定 表, 經 班 主 任 或 指 導 教 授 簽 名 後 始 認 定 此 課 程 學 分 ) 10. 本 規 章 未 盡 事 宜, 悉 依 學 位

目 錄 項 目 內 容 頁 數 1 手 機 要 求 3 2 登 記 程 序 3 3 登 入 程 序 4 4 輸 入 買 賣 指 示 6 5 更 改 指 示 14 6 取 消 指 示 18 7 查 詢 股 票 結 存 21 8 查 詢 買 賣 指 示 23 9 更 改 密 碼 查 詢 股

<4D F736F F D D313032A7DEC075BAC2BC66B56EB04FB44EC5AAA7D3C440A7C7A874B2CEBEDEA740A4E2A5552E646F63>

第一章 緒論

Microsoft PowerPoint - 使用 Word 編輯與排版文件 (II).ppt

如何加強規管物業管理行業

Microsoft Word - 全華Ch2-05.doc

(Microsoft Word - MOODLE990201\266i\266\245\244\342\245U )

Microsoft Word - Draft circular on Sub Leg Apr (chi)_Traditional

度 ph 度 降 量 量 phph 糖 ph 度 更 3 說 酪 不 不 什 參 度 識 不 度 1

<30332EAAFEA5F3A440A142A447A142A454A142A57CA147BEC7A5CDB14DB77EC3D2B7D3BEC7B2DFA661B9CF2E786C73>

目 錄 壹 題 目 1: 新 增 商 品 ( 商 品 名 稱 為 玉 井 芒 果 乾 禮 盒 )... 3 貳 題 目 2: 新 增 商 品 ( 商 品 名 稱 為 紅 磚 布 丁 精 選 禮 盒 )... 5 參 題 目 3: 新 增 商 品 ( 商 品 名 稱 為 晶 鑽 XO 醬 禮 盒 ).

e-Submission System Quick Reference Guide for Publication Related Matters (Chinese version)

<4D F736F F D20A4A4B0EAA4E5A4C6A46ABEC7C0B3A5CEBCC6BEC7A874BEC7B873C3D2AED1B1C2BB50BFECAA6B F F2E646F63>

第 二 章 登 入 交 易 系 統 統 在 您 上 網 後, 可 輸 入 網 路 證 券 ebroker 交 易 網 網 址 到 達 網 路 下 單 交 易 系 首 先 您 將 會 進 入 到 客 戶 登 入 身 份 確 認 畫 面 Step 1. 直 接 輸 入 身 份 字 號, 第 一 位 英

貳、研究動機

Microsoft Word - ch07


<4D F736F F D20B773AAA9ADBBB4E4BAF4B8F4BBC8A6E6BEDEA740A4E2A5555FABC8A4E1BADD2DADD3A448AAA95F2E646F63>

網 路 請 購 操 作 手 冊 目 錄 (95~154) 壹 使 用 網 路 請 購 系 統 資 格...95~95 貳 如 何 進 入 網 路 請 購 系 統...96~96 參 網 路 請 購 / 查 詢 系 統 功 能 簡 介...97~111 肆 受 款 人 填 法 範 例...112~11

Microsoft PowerPoint - 102教師升等說明會

<4D F736F F D20B0EAA5C1A470BEC7BB50B0EAA5C1A4A4BEC7AF5AAFC5BD73A8EEA4CEB1D0C2BEADFBADFBC342BD73A8EEB1F8A4E5B9EFB7D3AAED A14B>

四 修 正 幼 兒 園 師 資 類 科 應 修 學 分 數 為 四 十 八 學 分, 並 明 定 學 分 數 抵 免 之 相 關 規 定 及 規 範 修 習 幼 兒 園 教 育 專 業 課 程 之 最 低 年 限 ( 修 正 條 文 第 五 條 ) 五 發 給 修 畢 師 資 職 前 教 育 證 明

(Microsoft Word - \246\250\301Z\272\336\262z.doc)

題目:中醫師配發藥材及合成中成藥簡介會

A2: 國 中 基 測 是 一 種 標 準 化 測 驗, 測 驗 結 果 是 以 量 尺 分 數 表 示 量 尺 分 數 是 透 過 統 計 方 法, 由 答 對 題 數 轉 換 而 來, 其 目 的 是 要 呈 現 每 一 位 考 生 的 每 一 測 驗 學 科 在 所 有 考 生 中 的 相 對

Microsoft Word 網頁設計.doc

NCKU elearning Manual

<4D F736F F D20B3E6A4B830312D2D2DBCC6BD75BB50BEE3BCC6AABAA55BB4EEB942BAE22E646F6378>

目 錄 一 系 統 登 入... 2 ( 一 ) 系 統 登 入 畫 面... 2 ( 二 ) 首 次 登 入 請 先 註 冊... 3 ( 三 ) 忘 記 單 位 帳 號... 8 ( 四 ) 忘 記 密 碼 ( 五 ) 健 保 卡 更 換 ( 六 ) 重 寄 確 認 信.

中華民國 第51屆中小學科學展覽會

會 員 專 區 使 用 手 冊 目 錄 一 基 本 介 紹 會 員 專 區 登 入 位 置 主 畫 面 與 網 站 架 構 : 功 能 導 覽 列 說 明 :... 3 二 DOI 查 詢 與 維 護... 4 三 DOI 註 冊 期 刊 類 型...

投影片 1

101年度社會福利方案 網路線上操作手冊

簽 呈

Microsoft Word - 出納-GP_3.1_職能別引導課程-1版.doc

第 6. 節 不 定 積 分 的 基 本 公 式 我 們 可 以 把 已 經 知 道 反 導 函 數 之 所 有 函 數 都 視 為 不 定 積 分 的 基 本 公 式 基 本 公 式 涵 蓋 的 範 圍 愈 大, 我 們 求 解 積 分 就 愈 容 易, 但 有 記 憶 不 易 的 情 事 研 讀

投影片 1

網 路 請 購 操 作 手 冊 目 錄 (117~181) 壹 網 路 請 購 系 統 開 放 對 象...117~117 貳 如 何 進 入 網 路 請 購 系 統...118~118 參 網 路 請 購 / 查 詢 系 統 功 能 簡 介...119~134 肆 受 款 人 填 法 範 例...

PowerPoint 簡報

Microsoft Word - EXCEL操作說明doc.doc

投影片 1

128 提 示 樞 紐 分 析 表 的 用 途 樞 紐 分 析 表 是 指 可 以 用 來 快 速 合 併 和 比 較 大 量 資 料 的 互 動 式 表 格, 透 過 它 可 以 詳 細 分 析 數 值 資 料, 特 別 適 用 於 下 列 情 況 : 需 要 從 含 有 大 量 資 料 的 清

目 錄 頁 1. 歡 迎 使 用 網 上 預 約 面 談 訪 問 系 統 新 用 戶 新 用 戶 登 入 帳 戶 程 序 啟 動 網 上 預 約 面 談 訪 問 帳 戶 核 對 帳 戶 的 地 址 資 料

骨 折 別 日 數 表 1. 鼻 骨 眶 骨 ( 含 顴 骨 ) 14 天 11. 骨 盤 ( 包 括 腸 骨 恥 骨 坐 骨 薦 骨 ) 40 天 2. 掌 骨 指 骨 14 天 12. 臂 骨 40 天 3. 蹠 骨 趾 骨 14 天 13. 橈 骨 與 尺 骨 40 天 4. 下 顎 ( 齒

CONTENTS 訓 練 內 容 設 計 法 056 淡 季 期 的 訓 練 058 旺 季 期 的 訓 練 060 針 對 爬 坡 賽 的 訓 練 內 容 062 賽 後 的 資 料 分 析 PART4/ 鏑 木 毅 先 生 的 建 言 活 用 於 越 野 路 跑 的 心 跳 訓

Microsoft Word - Auto_GPS.doc

16

Microsoft Word - 作業手冊0928 _含QA_.doc

Microsoft Word - 4.關鍵教學--陳秀湘new.doc

Microsoft Word - ATTCH4.docx

untitled

作一個跑的快的橡皮動力車

關 於 教 育 部 學 習 拍 立 得 教 育 部 於 (103) 年 度 整 合 各 縣 市 政 府 部 屬 機 構 大 學 及 民 間 的 數 位 資 源 與 服 務, 依 不 同 類 型, 分 別 匯 集 於 教 育 大 市 集 教 育 百 科 教 育 媒 體 影 音 教 育 部 學 習 拍

Microsoft PowerPoint - sp2 [相容模式]

臺灣省教師申訴評議委員會再申訴評議書(草案)

iPhone版操作手冊

章節

內 政 統 計 通 報

瑞興銀行

???T????????

寫 作 背 景 導 讀 [98] L Lyman Frank Baum

<4D F736F F D20BAF4A457B3F8A657A874B2CEA8CFA5CEABFCA4DE2D >

研究一:n人以『剪刀、石頭、布』猜拳法猜拳一次,決定一人勝

<4D F736F F F696E74202D20C4B3C344322DA8CCAA6BB5BDA5CEB3CCA6B3A751BCD0A4CEADADA8EEA9CAA9DBBCD0BFECB27AB1C4C1CAA4A7A740AA6B2E707074>

授 課 老 師 章 節 第 一 章 教 學 教 具 間 3 分 鐘 粉 筆 CNC 銑 床 教 學 內 容 CNC 銑 床 之 基 本 操 作 教 材 來 源 數 值 控 制 機 械 實 習 Ⅰ 1. 了 解 CNC 銑 床 的 發 展 2. 了 解 CNC 銑 床 刀 具 的 選 用 3. 了 解

<4D F736F F D A7DEC075AB4FB065A44ABEC7BAF4B8F4ADD3A74FB3F8A657A740B77EB0D1A6D2A4E2A5552DA6D2A5CDBADD2E646F63>

Microsoft Word - 15-刪空白頁

行政院金融監督管理委員會全球資訊網-行政院金融監督管理委員會

前 項 第 三 款 所 定 有 機 農 產 品 及 有 機 農 產 加 工 品 驗 證 基 準, 如 附 件 一 第 七 條 驗 證 機 構 受 理 有 機 農 產 品 及 有 機 農 產 加 工 品 之 驗 證, 應 辦 理 書 面 審 查 實 地 查 驗 產 品 檢 驗 及 驗 證 決 定 之

Microsoft Word - 論文v27.doc

untitled

調 查 背 景 去 年 年 尾 奶 粉 供 應 緊 張 有 零 售 商 大 幅 抬 價 的 報 導 和 投 訴 在 每 兩 個 月 進 行 的 定 期 嬰 幼 兒 奶 粉 價 格 調 查 以 外, 在 農 曆 新 年 前 後, 特 別 加 強 奶 粉 供 應 和 價 格 的 調 查 工 作 2

壹、組織編制 代碼:C0101意見反映

ART_RAE16_ticket_cn_p.1

Microsoft Word - 雲林區_免試平台_國中模擬選填_操作手冊.doc

中市93學年度第45屆國民中小學科學展覽會

包 裝 維 生 素 礦 物 質 類 之 錠 狀 膠 囊 狀 食 品 營 養 標 示 應 遵 行 事 項 一 本 規 定 依 食 品 安 全 衛 生 管 理 法 第 二 十 二 條 第 三 項 規 定 訂 定 之 二 本 規 定 所 稱 維 生 素 礦 物 質 類 之 錠 狀 膠 囊 狀 食 品, 指

Microsoft Word - FAQ on GEM Review _23May08__Chi.doc

一、模型資訊

互 補 : 若 兩 個 角 的 和 是 一 個 平 角 ( ), 我 們 稱 這 兩 個 角 互 補, 如 圖, + = 80, 故 我 們 稱 與 互 補 互 餘 : 若 兩 個 角 的 和 是 一 個 直 角, 我 們 稱 這 兩 個 角 互 餘, 如 圖, + =90 0, 故 我

虛擬交易所97年GVE3簡易版.doc

Microsoft Word - 08工程與管理總評_文龍修0508_.doc

鍵 標 準 型 數 位 話 機 來 電 指 示 燈 會 談 暫 留 鈴 聲 跟 隨 靜 音 禁 鈴 可 程 式 鍵 喇 叭 6 ABC DEF 暫 切 4 GHI 5 JKL 6 MNO 重 撥 固 定 功 能 鍵 7 PQRS 8 TUV 9 WXYZ 功 能 聽 筒 0

<4D F736F F F696E74202D203136A874B2CEA4C0AA52A142BBDDA844B357AEE6AED1BCB6BC67BB50AAA9A5BBB1B1A8EEAD6EC2495FA64C2E707074>

99年版人口推計報告

<4D F736F F D2045A4C6AA41B0C8C2E0ABACBB50B3D0B7735FA4A3A650AAC0B873B5B2BA63A455AA41B0C8C4DDA9CAA76CA4DEA44FB1B4B0515F46696E616C5F325F2E646F63>

Microsoft Word - 立法會十四題附件.doc

Microsoft PowerPoint - chap5

iPhone版操作手冊990421

食 生 系 碩 士 生 學 位 考 試 申 請 說 明 ( 一 ) 申 請 步 驟 說 明 : 步 驟 一 : 準 備 紙 本 文 件 (1) 論 文 考 試 申 請 書 (2) 教 師 擔 任 碩 士 班 研 究 生 論 文 口 試 明 細 表 及 聘 函 (3) 歷 年 成 績 單 ( 系 上

教 學 活 動 教 學 元 件 時 間 編 號 類 型 時 間 元 件 內 容 說 明 ( 請 填 入 8-9 個 元 件 ) 準 引 起 動 機 動 畫 1 分 鐘 請 製 作 一 動 畫 備 活 以 動 畫 方 式 向 學 生 闡 述 運 算 放 大 器 的 基 本 應 用

目 錄

Transcription:

第 六 章 基 本 的 SQL 目 的 SQL 的 關 聯 模 式 SQL 的 資 料 定 義 語 言 CREATE TABLE DROP TABLE ALTER TABLE 基 本 的 SQL 查 詢 SELECT FROM WHERE SQL 的 更 新 INSERT UPDATE DELETE 6-1 目 的 關 聯 模 式 定 義 嚴 謹 簡 潔, 但 好 用 性 和 執 行 效 率 必 須 被 考 量 IBM SYSTEM R (DB2) 根 據 關 聯 模 式 關 聯 代 數 關 聯 邏 輯 計 算 法 提 出 SEQUEL 語 言 ANSI 和 ISO 共 同 制 訂 資 料 庫 電 腦 語 言 的 標 準, 依 SEQUEL 為 藍 本, 命 名 為 SQL SQL/86 SQL/89 ( 完 整 限 制 語 法 ) SQL/92 或 SQL2 ( 包 括 四 層 :entry level transitional level intermediate level 和 full level ) SQL99/SQL3 ( 物 件 導 向 與 資 料 倉 儲 ) 本 章 介 紹 SQL99 的 基 本 語 法, 有 些 DBMS 所 支 援 的 SQL 語 法 與 本 章 所 介 紹 的 有 一 些 差 異, 但 基 本 觀 念 雷 同 6-2 1

SQL 的 關 聯 模 式 為 了 好 用 性 和 執 行 效 率,SQL 的 資 料 模 式 與 關 聯 模 式 有 以 下 差 別 : SQL 利 用 較 通 俗 的 名 詞 來 稱 呼 關 聯 模 式 所 定 義 的 嚴 謹 數 學 名 詞 不 稱 關 聯 (Relation), 改 稱 資 料 表 (Table) 不 稱 序 列 值 (Tuple), 改 稱 記 錄 (Record) 或 列 (Row) 不 稱 屬 性 (Attribute), 改 稱 欄 位 (Field) 或 行 (Column) SQL 的 資 料 表 可 以 不 需 定 義 主 鍵 SQL 的 資 料 表 中 可 以 有 兩 筆 記 錄 是 一 模 一 樣 的 資 料 表 中 的 記 錄 是 有 次 序 的 SQL 提 供 了 三 種 語 言 : 資 料 定 義 語 言 (DDL) 資 料 處 理 語 言 (DML) 資 料 控 制 語 言 (DCL) 6-3 SQL 的 資 料 定 義 語 言 (CREATE TABLE ) CREATE TABLE 讓 使 用 者 定 義 一 個 資 料 表, 包 括 資 料 表 名 稱 欄 位 完 整 限 制 CREATE TABLE Member (mid CHAR(8) NOT NULL, pid CHAR(10) NOT NULL, name VARCHAR(8) NOT NULL, birthday DATE, phone VARCHAR(10), address VARCHAR(40), email VARCHAR(20), introducer CHAR(8), PRIMARY KEY (mid), UNIQUE (pid), FOREIGN KEY(introducer) REFERENCES Member(mId) ON DELETE SET NULL ON UPDATE CASCADE); 6-4 2

SQL 的 資 料 定 義 語 言 (CREATE TABLE ) SQL 所 提 供 的 定 義 域 型 態 INT DECIMAL(i, j) DECIMAL(3, 1) DECIMAL(2) DECIMAL CHAR(n) VARCHAR(n) BIT(n) VARBIT(n) 6-5 SQL 的 資 料 定 義 語 言 (CREATE TABLE )(Cont.) DATE 標 準 的 日 期 欄 位 是 yyyy-mm-dd TIME 標 準 的 時 間 欄 位 是 hh:mm:ss TIME(2) (13:25:50:30 ) TIME WITH TIME ZONE (13:20:50+08:00) TIMESTAMP( 或 稱 DATETIME) 2003-07-10 13:27:50 BLOB: 表 示 是 儲 存 大 型 的 二 元 型 態 物 件 CLOB: 表 示 是 儲 存 大 型 的 文 字 型 態 物 件 6-6 3

SQL 的 資 料 定 義 語 言 (CREATE TABLE ) 自 訂 定 義 域 ( CREATE DOMAIN) CREATE DOMAIN PID_TYPE CHAR(10); CREAE DOMAIN SALES_TYPE INT CHECK (SALES_TYPE > 100) ; 作 用 在 單 一 欄 位 的 完 整 限 制 : 定 義 該 欄 位 時 一 併 設 定 NOT NULL: 不 得 為 空 值 DEFAULT: 設 定 預 設 值 6-7 SQL 的 資 料 定 義 語 言 (CREATE TABLE ) 作 用 在 數 個 欄 位 的 完 整 限 制 : PRIMARY KEY: 用 來 設 定 一 資 料 表 的 主 鍵 UNIQUE: 該 欄 位 值 為 唯 一, 通 常 是 用 來 設 定 次 要 鍵 FOREIGN KEY: 用 來 設 定 外 部 鍵 一 筆 記 錄 被 刪 除 或 其 主 鍵 值 被 修 改 時, 其 相 對 應 的 外 部 鍵 值 會 受 影 響 FOREIGN KY 裡 的 語 法 可 以 設 定 這 些 外 部 鍵 值 的 處 理 方 式 E.g. FOREIGN KEY pno REFERENCES Product(pNo) FOREIGN KEY pno REFERENCES Product 6-8 4

SQL 的 資 料 定 義 語 言 (CREATE TABLE )(Cont.) 設 定 處 理 方 式 如 下 : ON DELETE RESTRICT ( 為 預 設 處 理 方 式 ) 一 筆 記 錄 只 有 沒 被 參 考 時 才 可 被 刪 除 ON DELETE SET NULL 一 筆 記 錄 被 刪 除 時, 所 有 參 考 它 的 外 部 鍵 值 全 部 變 成 空 值 ON DELETE SET DEFULT 一 筆 記 錄 被 刪 除 時, 所 有 參 考 它 的 外 部 鍵 值 全 部 變 成 預 設 值 ON DELETE CASCADE 一 筆 記 錄 被 刪 除 時, 所 有 參 考 它 的 記 錄 全 部 跟 著 被 刪 除 ON UPDATE RESTRICT ( 為 預 設 處 理 方 式 ) 一 筆 記 錄 的 主 鍵 值 只 有 沒 被 參 考 時 才 可 被 修 改 ON UPDATE CASCADE 一 筆 記 錄 的 主 鍵 值 被 修 改 時, 所 有 參 考 它 的 外 部 鍵 值 全 部 跟 著 修 改 6-9 CREATE TABLE Member (mid CHAR(8) NOT NULL, pid VARCHAR(10) NOT NULL, name VARCHAR(8) NOT NULL, birthday DATE, phone VARCHAR(10), address VARCHAR(40), email VARCHAR(20), introducer CHAR(8), PRIMARY KEY (mid), UNIQUE (pid), FOREIGN KEY (introducer) REFERENCES Member(mId) ON DELETE SET NULL ON UPDATE CASCADE); CREATE TABLE Cart (mid CHAR(8) NOT NULL, carttime TIMESTAMP, NOT NULL, tno CHAR(5), PRIMARY KEY (mid, carttime), FOREIGN KEY (tno) REFERENCES Transaction(tNo) ON UPDATE CASCADE, FOREIGN KEY (mid) REFERENCES Member(mId) ON DELETE CASCADE ON UPDATE CASCADE); CREATE TABLE Transaction (tno CHAR(5) NOT NULL, transmid CHAR(8) NOT NULL, transtime TIMESTAMP NOT NULL, method VARCHAR(5) NOT NULL, bankid VARCHAR(14) NOT NULL, bankname VARCHAR(20), cardid VARCHAR(10), cardtype VARCHAR(10) duedate DATE, PRIMARY KEY (tno), FOREIGN KEY (transmid) REFERENCES Member(mId)); CREATE TABLE Author (pno CHAR(6) NOT NULL, name VARCHAR(8) NOT NULL, PRIMARY KEY (pno, name ), FOREIGN KEY (pno) REFERENCES Product (pno)); 線 上 購 物 系 統 資 料 庫 的 SQL 定 義 6-10 5

CREATE TABLE Browse (mid CHAR(8) NOT NULL DEFAULT 'a0910001', pno CHAR(6) NOT NULL, browsetime TIMESTAMP NOT NULL, PRIMARY KEY (mid, pno, browsetime ), FOREIGN KEY (mid) REFERENCES Member(mId) ON DELETE SET DEFAULT ON UPDATE CASCADE, FOREIGN KEY (pno) REFERENCES Product (pno)); CREATE TABLE Order (pno CHAR(6) NOT NULL, mid CHAR(8) NOT NULL, carttime TIMESTAMP NOT NULL, amount INT DEFAULT 1, PRIMARY KEY (pno,mid, carttime ), FOREIGN KEY (pno) REFERENCES Product (pno), FOREIGN KEY (mid, carttime) REFERENCES Cart (mid, carttime)); CREATE TABLE Product (pno CHAR(6) NOT NULL, pname VARCHAR(10), unitprice DECIMAL(10,2), catalog VARCHAR(20), PRIMARY KEY (pno ), CONSTRAINT UnitPrice_Check CHECK (unitprice > 100)); CREATE TABLE Record (tno CHAR(5) NOT NULL, pno CHAR(6) NOT NULL, saleprice DECIMAL(10,2) NOT NULL, amount INT NOT NULL, PRIMARY KEY (tno,pno), FOREIGN KEY (tno) REFERENCES Transaction (tno), FOREIGN KEY (pno) REFERENCES Product (pno)); 6-11 練 習 6-1 參 考 線 上 購 物 系 統 資 料 庫 綱 目, 請 問 在 資 料 表 Member 裡, 有 哪 些 欄 位 可 以 為 空 值? 主 鍵 和 次 要 鍵 各 為 何? 考 慮 第 四 章 圖 4-4 的 資 料 庫, 如 果 名 為 'Jennifer' 的 會 員 記 錄 被 刪 除, 請 問 哪 些 會 員 的 introducer 欄 位 值 會 受 到 影 響? 怎 樣 的 影 響? Ans: 可 為 空 值 的 欄 位 有 : birthday, phone, address, email, introducer 主 鍵 : mid 次 要 鍵 : pid 受 影 響 的 會 員 有 2 筆 記 錄 : mid 為 a0910001, name 為 Jenny mid 為 c0927777, name 為 Su 兩 者 的 ' 介 紹 人 ' 欄 位 會 被 設 定 為 空 值 (NULL) 6-12 6

練 習 6-2 參 考 線 上 購 物 系 統 資 料 庫 綱 目 的 Transaction 綱 目, 假 設 當 一 會 員 記 錄 被 刪 除 時, 我 們 希 望 其 交 易 記 錄 也 一 併 刪 除, 而 當 會 員 編 號 改 變 時, 其 交 易 記 錄 的 transmid 欄 位 也 跟 著 修 改 請 問 Transaction 綱 目 定 義 該 做 怎 樣 的 修 改? Ans: CREATE TABLE Transaction ( FOREIGN KEY (transmid) REFERENCES Member(mId) ON DELETE CASCADE ON UPDATE CASCADE) ; 6-13 SQL 的 資 料 定 義 語 言 (DROP TABLE) DROP TABLE 是 用 來 刪 除 資 料 表 定 義 一 資 料 表 被 刪 除 時, 另 一 資 料 表 中 參 考 到 該 資 料 表 的 部 分 就 變 的 沒 有 意 義 了 所 以 SQL 語 法 裡 容 許 你 在 刪 除 資 料 表 定 義 時 設 定 該 如 何 處 理 這 種 狀 況 DROP TABLE Product RESTRICT 資 料 表 Product 的 定 義 只 有 在 其 未 被 參 考 到 時 才 能 被 刪 除 DROP TABLE Product CASCADE 資 料 表 Product 的 定 義 被 刪 除 時, 所 有 參 考 到 這 些 定 義 的 部 分 ( 如 外 部 鍵 定 義 ) 也 一 併 被 刪 除 6-14 7

練 習 6-3 參 考 線 上 購 物 系 統 資 料 庫 綱 目, 請 問 以 下 SQL 指 令 的 執 行 結 果 會 對 資 料 庫 綱 目 造 成 何 種 影 響? DROP TABLE Transaction CASCADE; DROP TABLE Cart RESTRICT; Ans: 資 料 表 Transaction 定 義 被 刪 除 時, 其 他 資 料 表 定 義 裡 參 考 到 資 料 表 Transaction 的 部 分 ( 包 括 Cart 的 tno 外 部 鍵 定 義 和 Record 的 tno 外 部 鍵 定 義 ) 也 一 併 被 刪 除 當 其 他 資 料 表 定 義 裡 都 沒 有 參 考 到 Cart 時, 才 可 刪 除 Cart 資 料 表 定 義 以 圖 6-1 的 資 料 庫 綱 目 來 說, 這 個 刪 除 不 會 成 功, 因 為 資 料 表 Order 有 一 個 外 部 鍵 (mid, carttime) 是 參 考 到 Cart 6-15 SQL 的 資 料 定 義 語 言 (ALTER TABLE) ALTER TABLE 是 用 來 修 改 資 料 表 定 義 欄 位 定 義 的 新 增 刪 除 和 修 改 的 語 法 如 下 ALTER TABLE Member ADD degree VARCHAR(10); ALTER TABLE Member DROP address CASCADE; ALTER TABLE Order ALTER amount DROP DEFAULT; ALTER TABLE Order ALTER amount SET DEFAULT 100; 6-16 8

SQL 的 資 料 定 義 語 言 (ALTER TABLE) 完 整 限 制 的 修 改 包 括 完 整 限 制 的 刪 除 和 新 增 為 了 能 正 確 刪 除 完 整 限 制, 首 先 要 給 完 整 限 制 一 個 名 稱 ALTER TABLE Product DROP CONSTRAINT UnitPrice_Check; CREATE TABLE Browse ( CONSTRAINT midfk FOREIGN KEY (mid) REFERENCES Member(mId) ON DELETE SET DEFAULT ON UPDATE CASCADE, ) ALTER TABLE Browse DROP CONSTRAINT midfk; ALTER TABLE Browse ADD CONSTRAINT NewMIdFk FOREIGN KEY (mid) REFERENCES Member(mId) ON DELETE CASCADE ON UPDATE CASCADE; 若 是 忘 了 先 給 完 整 限 制 一 個 名 稱, 則 需 找 出 系 統 所 給 定 的 該 完 整 限 制 編 號 (e.g., 透 過 SHOW CREATE TABLE 指 令 ), 再 據 以 修 改 6-17 練 習 6-5 參 考 線 上 購 物 系 統 資 料 庫 綱 目, 請 將 資 料 表 Order 的 完 整 限 制 加 上 名 稱 Ans CREATE TABLE Order (pno CHAR(10) NOT NULL, mid CHAR(10) NOT NULL, carttime TIMESTAMP NOT NULL, amount INT DEFAULT 0, PRIMARY KEY (pno,mid, carttime ), CONSTRAINT pnofk FOREIGN KEY (pno) REFERENCES Product (pno), CONSTRAINT midfk FOREIGN KEY (mid, carttime) REFERENCES Cart (mid, carttime)); 6-18 9

商 用 DBMS 的 SQL 資 料 定 義 語 言 外 部 鍵 設 定 時, 有 些 DBMS 不 支 援 ON UPDATE 或 部 分 ON DELETE 語 法 有 些 DBMS 對 於 關 鍵 字 ( 比 如 ORDER) 拿 來 當 資 料 表 名 稱 或 欄 位 名 稱 時 須 加 上 雙 引 號 " ( 如 Oracle 和 SQL Server), 有 些 則 需 加 上 特 殊 引 號 `( 比 如 MySQL) 詳 細 差 異 請 參 考 書 本 第 四 節 第 四 小 節 6-19 基 本 的 SQL 查 詢 語 法 SQL 的 查 詢 句 基 本 格 式 如 下 : SELECT< 屬 性 串 列 > FROM < 資 料 表 串 列 > WHERE < 條 件 > Q1: 找 出 所 有 定 價 超 過 500 的 商 品 之 編 號 名 稱 和 定 價 關 聯 代 數 π pno, pname, unitprice (σ unitprice > 500 Product) 關 聯 邏 輯 計 算 式 {p.pno, p.pname, p.unitprice Product(p), p.unitprice>500} SQL SELECT pno, pname, unitprice FROM Product WHERE unitprice > 500; 6-20 10

基 本 的 SQL 查 詢 語 法 (Cont.) 列 出 系 統 分 析 理 論 與 實 務 的 作 者 姓 名 系 統 分 析 理 論 與 實 務 Product ( 商 品 編 號 pno, 商 品 名 稱 pname, 定 價 unitprice, 種 類 catalog) Author ( 商 品 編 號 pno, 創 作 者 名 稱 name) SELECT name FROM Product, Author WHERE pname = ' 系 統 分 析 理 論 與 實 務 ' AND Product.pNo = Author.pNo; 6-21 基 本 的 SQL 查 詢 語 法 (Cont.) 列 出 所 有 購 買 過 " 系 統 分 析 理 論 與 實 務 " 的 會 員 之 會 員 編 號 和 會 員 姓 名 系 統 分 析 理 論 與 實 務 Product ( 商 品 編 號 pno, 商 品 名 稱 pname, 定 價 unitprice, 種 類 catalog) Record ( 交 易 編 號 tno, 商 品 編 號 pno, 交 易 數 量 amount, 售 價 saleprice ) Transaction ( 交 易 編 號 tno, 會 員 編 號 transmid, 交 易 方 式 method,..) Member ( 會 員 編 號 mid, 姓 名 name, 會 員 ID pid, ) SELECT mid, name FROM Product, Record, Transaction, Member WHERE pname=' 系 統 分 析 理 論 與 實 務 ' AND Product.pNo = Record.pNo AND Record.tNo = Transaction.tNo AND transmid = mid; 6-22 11

練 習 6-6 請 找 出 陳 水 扁 " 所 寫 過 的 所 有 書 之 商 品 編 號 和 書 名 Ans: SELECT Product.pNo, pname FROM Product, Author WHERE name=' 陳 水 扁 ' AND Author.pNo=Product.pNo AND catalog = 'Book' ; 6-23 基 本 的 SQL 查 詢 語 法 ( 別 名 ) 使 用 資 料 表 名 稱 的 縮 寫 較 簡 潔 SELECT mid, name FROM Product AS P, Record AS R, Transaction AS T, Member WHERE pname =' 系 統 分 析 理 論 與 實 務 ' AND P.pNo = R.pNo AND R.tNo = T.tNo AND transmid = mid; 同 一 資 料 表 出 現 兩 次, 且 角 色 不 同 Q4: 對 於 會 員 編 號 為 'b0905555' 的 會 員, 列 出 其 姓 名 以 及 所 ( 直 接 ) 介 紹 的 會 員 之 會 員 編 號 和 姓 名 6-24 12

基 本 的 SQL 查 詢 語 法 ( 別 名 )(Cont.) b0905555 I: Member ( 會 員 編 號 mid, 會 員 姓 名 name, 會 員 ID pid,, 介 紹 人 introducer) M: Member ( 會 員 編 號 mid, 會 員 姓 名 name, 會 員 ID pid,, 介 紹 人 introducer) 其 相 對 應 的 SQL 查 詢 句 如 下 : SELECT I.name, M.mId, M.name FROM MEMBER AS I, MEMBER AS M WHERE I.mId = 'b0905555' AND I.mId = M.introducer; 6-25 基 本 的 SQL 查 詢 語 法 ( 別 名 ) AS 除 了 可 用 在 資 料 表 的 別 名 外, 也 可 用 來 更 改 屬 性 名 稱 將 Q4 所 傳 回 的 屬 性 名 稱 分 別 改 成 introducer_name, member_id 和 member_name SELECT I.name AS introducer_name, M.mId AS member_id, M.name AS member_name FROM MEMBER AS I, MEMBER AS M WHERE I.mId = 'b0905555' AND I.mId = M.introducer; 6-26 13

練 習 6-7 請 找 出 會 員 編 號 為 'b0905555' 的 會 員 之 介 紹 者, 並 列 出 該 會 員 之 姓 名 和 其 介 紹 者 的 會 員 編 號 和 姓 名 Ans: SELECT M.name, I.mId, I.name FROM MEMBER AS M, MEMBER AS I WHERE M.mId = 'b0905555' AND M.introducer = I.mId ; 6-27 基 本 的 SQL 查 詢 語 法 星 號 (*): 取 出 資 料 表 的 所 有 屬 性 SELECT * FROM Product; 沒 有 WHERE 子 句 : 沒 有 條 件 設 限 SELECT mid, name FROM Member; DISTINCT: 重 複 的 記 錄 只 保 留 一 筆 SELECT DISTINCT name FROM Member; 欄 位 值 的 比 較 :< > <= >=!= 或 <> IS NULL: 是 否 空 值 BETWEEN: 區 間 SELECT * FROM Product WHERE unitprice BETWEEN 100 AND 999; 6-28 14

基 本 的 SQL 查 詢 語 法 (Cont.) LIKE 比 較 子 : 比 較 文 字 欄 位 的 部 分 字 串 值 % 表 示 任 意 字 串 _ 代 表 任 意 字 元 SELECT * FROM Member WHERE address LIKE '% 高 雄 市 %'; SELECT * FROM Member WHERE pid LIKE '_2%'; 6-29 基 本 的 SQL 查 詢 語 法 (Cont.) Date 和 Time 的 型 態 值 不 易 直 接 表 達, 所 以 一 般 是 將 之 轉 成 字 串, 或 將 字 串 轉 成 日 期 時 間 型 態, 再 做 比 較 範 例 (Oracle) SELECT mid, name,birthday FROM Member WHERE birthday >= to_date('19700101','yyyymmdd'); 或 SELECT mid, name,birthday FROM Member WHERE to_char(birthday,'yyyymmdd') >= '19700101'; 6-30 15

基 本 的 SQL 查 詢 語 法 (Cont.) ORDER BY : 設 定 查 詢 結 果 資 料 表 裡 記 錄 的 排 列 次 序 DESC 代 表 由 大 到 小 ASC 代 表 由 小 到 大 ( 預 設 ) SELECT mid, pid, name FROM Member ORDER BY name; SELECT mid, pid, name FROM Member ORDER BY name DESC; 在 傳 回 欄 位 值 前, 也 可 用 先 做 一 些 簡 單 的 運 算 SELECT pno, name, 0.9 * unitprice FROM Product; 6-31 商 用 DBMS 的 SQL 基 本 查 詢 語 法 有 些 DBMS 沿 襲 SQL89 舊 制, 別 名 之 前 不 需 加 AS, 如 下 : SELECT I.name, M.mId, M.name FROM MEMBER I, MEMBER M WHERE I.mId = 'b0905555' AND I.mId = M.introducer; 有 些 DBMS 對 於 日 期 時 間 欄 位 值 的 比 較 不 需 任 何 轉 換 函 式 比 如 可 用 以 下 查 詢 句 找 出 出 生 於 1970 年 以 後 的 會 員 資 訊 SELECT mid, name, birthday FROM Member WHERE birthday >= '19700101'; 6-32 16

SQL 的 更 新 ( 新 增 ) 標 準 語 法 如 下 : INSERT INTO < 資 料 表 名 稱 >[< 屬 性 串 列 >] VALUES (attribute-value-list); U1: 新 增 一 筆 完 整 的 記 錄 到 商 品 資 料 表 INSERT INTO Product VALUES ('b00001', ' 資 料 庫 管 理 與 系 統 ', 700, 'Book'); U2: 新 增 一 筆 只 含 商 品 編 號 和 商 品 名 稱 的 記 錄 到 商 品 資 料 表 INSERT INTO Product(pName, pno) VALUES ( ' 資 料 庫 管 理 與 系 統 ', 'b00001'); 6-33 SQL 的 更 新 ( 新 增 )(cont.) 將 查 詢 的 結 果 整 批 新 增 入 一 個 資 料 表 U3 CREATE TABLE Book (bno CHAR(10) NOT NULL bname VARCHAR(10), unitprice DECIMAL(10,2)); INSERT INTO Book SELECT pno, pname, unitprice FROM Product WHERE catalog = 'Book'; 6-34 17

SQL 的 更 新 ( 修 改 ) 標 準 語 法 如 下 : UPDATE < 資 料 表 名 稱 > SET < 屬 性 名 稱 > = < 屬 性 值 >, < 屬 性 名 稱 > = < 屬 性 值 >, WHERE < 條 件 >; U4: 將 資 料 庫 理 論 與 實 務 這 本 書 的 定 價 改 成 700 UPDATE Product SET unitprice = 700 WHERE pname = ' 資 料 庫 理 論 與 實 務 '; 6-35 SQL 的 更 新 ( 刪 除 ) 標 準 語 法 如 下 : DELETE < 資 料 表 名 稱 > WHERE < 條 件 >; U5: 將 名 為 資 料 庫 理 論 與 實 務 的 商 品 刪 除 DELETE Product WHERE name = ' 資 料 庫 理 論 與 實 務 '; 6-36 18

練 習 6-9 請 新 增 一 本 新 書, 書 名 為 總 統 大 選 分 析, 單 價 為 200, 作 者 為 張 大 砲 Ans: 假 設 其 商 品 編 號 為 'b11111' INSERT INTO Product VALUES ('b11111', ' 總 統 大 選 分 析 ', 200,'Book'); INSERT INTO Author VALUES ('b11111',' 張 大 炮 '); 6-37 商 用 DBMS 的 SQL 更 新 語 法 MySQL 刪 除 語 法 DELETE 後 需 加 上 FROM, 例 如, DELETE FROM Product WHERE name = ` 資 料 庫 理 論 與 實 務 '; 可 參 考 本 書 網 站 上 為 各 DBMS 所 準 備 的 線 上 購 物 系 統 資 料 庫 匯 入 檔, 以 瞭 解 各 DBMS 的 細 微 語 法 差 別 可 上 本 書 網 站, 點 選 SQL 語 法 練 習, 按 指 示 輸 入 帳 號 密 碼 後 使 用 MySQL 來 練 習 SQL 指 令 6-38 19