【正文】
An Introduction to Database System 數(shù)據(jù)庫系統(tǒng)概論 An Introduction to Database System 第三章 關(guān)系數(shù)據(jù)庫標(biāo)準(zhǔn)語言 SQL An Introduction to Database System 第三章 關(guān)系數(shù)據(jù)庫標(biāo)準(zhǔn)語言 SQL SQL概述 數(shù)據(jù)定義 查詢 數(shù)據(jù)更新 視圖 數(shù)據(jù)控制 嵌入式 SQL 小結(jié) An Introduction to Database System SQL概述 ? SQL的特點(diǎn) ? 1. 綜合統(tǒng)一 ? 2. 高度非過程化 ? 3. 面向集合的操作方式 ? 4. 以同一種語法結(jié)構(gòu)提供兩種使用方法 ? 5. 語言簡潔,易學(xué)易用 An Introduction to Database System SQL概述 (續(xù) ) 表 3 . 1 S Q L 語言的動(dòng)詞S Q L 功 能 動(dòng) 詞數(shù) 據(jù) 定 義 C R E A T E , D R O P , A L T E R數(shù) 據(jù) 查 詢 S E L E C T數(shù) 據(jù) 操 縱 I N S E R T , U P D A T ED E L E T E數(shù) 據(jù) 控 制 G R A N T , R E V O K EAn Introduction to Database System SQL概述 (續(xù) ) SQL server 2020 DB2 An Introduction to Database System SQL對(duì)關(guān)系數(shù)據(jù)庫三級(jí)模式的支持 An Introduction to Database System 第三章 關(guān)系數(shù)據(jù)庫標(biāo)準(zhǔn)語言 SQL SQL概述 數(shù)據(jù)定義 查詢 數(shù)據(jù)更新 視圖 數(shù)據(jù)控制 嵌入式 SQL 小結(jié) An Introduction to Database System 數(shù) 據(jù) 定 義 表 3 . 2 S Q L 的數(shù)據(jù)定義語句操 作 方 式操 作 對(duì)象創(chuàng) 建 刪 除 修 改表 C R E A T ET A B L ED R O PT A B L EA L T E RT A B L E視 圖 C R E A T EV I E WD R O P V I E W索 引 C R E A T EI N D E XD R O PI N D E XAn Introduction to Database System 定義 語句格式 CREATE TABLE 表名 ( 列名 數(shù)據(jù)類型 [ 列級(jí)完整性約束條件 ] [, 列名 數(shù)據(jù)類型 [ 列級(jí)完整性約束條件] ] … [, 表級(jí)完整性約束條件 ] ) ; ? 表名 :所要定義的基本表的名字 ? 列名 :組成該表的各個(gè)屬性 ( 列 ) ? 列級(jí)完整性約束條件 :涉及相應(yīng)屬性列的完整性約束條件 ? 表級(jí)完整性約束條件 :涉及一個(gè)或多個(gè)屬性列的完整性約束條件 An Introduction to Database System 例題 [例 1] 建立一個(gè) “ 學(xué)生 ” 表 Student, 它由學(xué)號(hào)Sno、 姓名 Sname、 性別 Ssex、 年齡 Sage、 所在系 Sdept五個(gè)屬性組成 。 其中學(xué)號(hào)不能為空 ,值是唯一的 , 并且姓名取值也唯一 。 CREATE TABLE Student (Sno CHAR(5) NOT NULL UNIQUE, Sname CHAR(20) UNIQUE, Ssex CHAR(1) , Sage INT, Sdept CHAR(15)); An Introduction to Database System 定義基本表(續(xù)) ? 常用完整性約束 ? 主碼約束: PRIMARY KEY ? 唯一性約束: UNIQUE ? 非空值約束: NOT NULL ? 參照完整性約束 PRIMARY KEY與 UNIQUE的區(qū)別? An Introduction to Database System 例題 (續(xù)) ? [例 2] 建立一個(gè) “ 學(xué)生選課 ” 表 SC,它由學(xué)號(hào) Sno、課程號(hào) Cno,修課成績Grade組成,其中 (Sno, Cno)為主碼。 ? CREATE TABLE SC( ? Sno CHAR(5) , ? Cno CHAR(3) , ? Grade int, ? Primary key (Sno, Cno))。 An Introduction to Database System 例題 (續(xù)) Sno S n a m e S s e x S a g e S d e p t ↑ ↑ ↑ ↑ ↑ 字符型 字符型 字符型 整數(shù) 字符型 長度為 5 長度為 20 長度為 1 長度為 15 不能為空值A(chǔ)n Introduction to Database System 三、刪除基本表 DROP TABLE 表名 。 基本表刪除 數(shù)據(jù) 、 表上的索引都刪除 表上的視圖往往仍然保留,但 無法引用 刪除基本表時(shí),系統(tǒng)會(huì)從數(shù)據(jù)字典中刪去有關(guān)該 基本表及其索引的描述 (標(biāo)準(zhǔn)中沒有,認(rèn)為表建立后就永久存在) An Introduction to Database System 例題 [例 5] 刪除 Student表 DROP TABLE Student 。 An Introduction to Database System 二、修改基本表 ALTER TABLE 表名 [ ADD 新列名 數(shù)據(jù)類型 [ 完整性約束 ] ] [ DROP 完整性約束名 ] [ MODIFY 列名 數(shù)據(jù)類型 ]; ? 表名 : 要修改的基本表 ? ADD子句 : 增加新列和新的完整性約束條件 ? DROP子句 : 刪除指定的完整性約束條件 ? MODIFY子句 : 用于修改列名和數(shù)據(jù)類型 An Introduction to Database System 例題 [例 2] 向 Student表增加 “ 入學(xué)時(shí)間 ” 列 , 其數(shù)據(jù)類型為日期型 。 ALTER TABLE Student ADD Se DATE; ? 不論基本表中原來是否已有數(shù)據(jù) , 新增加的列一律為空值 。 An Introduction to Database System 語句格式(續(xù)) ? 刪除屬性列 直接 /間接刪除 ? 把表中要保留的列及其內(nèi)容復(fù)制到一個(gè)新表中 ? 刪除原表 ? 再將新表重命名為原表名 直接刪除屬性列 :(新 ) 例: ALTER TABLE Student Drop Se; An Introduction to Database System [例 3] 將年齡的數(shù)據(jù)類型改為半字長整數(shù)。