第 六 章 基 本 的 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