【正文】
? % (百分號 ) 代表任意長度(長度可以為 0)的字符串 ? 例: a%b表示以 a開頭,以 b結尾的任意長度的字符串。CS39。MA39。IS39。 An Introduction to Database System (3) 確定集合 [例 13]查詢既不是信息系 、 數(shù)學系 , 也不是計算 機科學系的學生的姓名和性別 。CS39。MA39。IS39。 SELECT Sname, Sdept, Sage FROM Student WHERE Sage NOT BETWEEN 20 AND 23; An Introduction to Database System (3) 確定集合 使用謂詞 IN 值表 , NOT IN 值表 值表 : 用逗號分隔的一組取值 [例 12]查詢信息系( IS)、數(shù)學系( MA)和計 算機科學系( CS)學生的姓名和性別。 SELECT Sname, Sage FROM Student WHERE Sage 20; 或 SELECT Sname, Sage FROM Student WHERE NOT Sage = 20; An Introduction to Database System (2) 確定范圍 ? 使用謂詞 BETWEEN … AND … NOT BETWEEN … AND … [例 10] 查詢年齡在 20~23歲(包括 20歲和 23歲)之間的學生的姓名、系別和年齡 。 正確的寫法 SELECT DISTINCT Cno, Grade FROM SC。 結果: Sno 95001 95001 95001 95002 95002 An Introduction to Database System 例題(續(xù)) (2) SELECT DISTINCT Sno FROM SC。 (1) SELECT Sno FROM SC。 2020Sage ISLOWER(Sdept) 李勇 Year of Birth: 1976 cs 劉晨 Year of Birth: 1977 is 王名 Year of Birth: 1978 ma 張立 Year of Birth: 1977 is An Introduction to Database System [例 ] 使用列 別名 改變查詢結果的列標題 SELECT Sname NAME, 39。 2020Sage, ISLOWER(Sdept) FROM Student; An Introduction to Database System 例題(續(xù)) 輸出結果: Sname 39。 SELECT Sname, 39。 SELECT Sno, Sname, Ssex, Sage, Sdept FROM Student; 或 SELECT * FROM Student; An Introduction to Database System 3. 查詢經(jīng)過計算的值 SELECT子句的 目標列表達式 為表達式 ? 算術表達式 ? 字符串常量 ? 函數(shù) ? 列別名 ? 等 An Introduction to Database System 3. 查詢經(jīng)過計算的值 [例 4] 查全體學生的姓名及其出生年份 。 SELECT Sno, Sname FROM Student; [例 2] 查詢全體學生的姓名 、 學號 、 所在系 。 通常會在每組中作用集函數(shù) 。 [例 7] 刪除 Student表的 Stusname索引。 這相當于增加了一個 UNIQUE約束 An Introduction to Database System 建立索引 (續(xù)) ? 聚簇索引 ? 建立聚簇索引后 , 基表中數(shù)據(jù)也需要按指定的聚簇屬性值的升序或降序存放 。 其中 Student表按學號升序建唯一索引 , Course表按課程號升序建唯一索引 , SC表按學號升序和課程號降序建唯一索引 。 ALTER TABLE Student DROP UNIQUE(Sname); An Introduction to Database System 建立與刪除索引 ? 建立索引是加快查詢速度的有效手段 ? 建立索引 ? DBA或表的屬主 ( 即建立表的人 ) 根據(jù)需要建立 ? 有些 DBMS自動建立以下列上的索引 ? PRIMARY KEY ? UNIQUE ? 維護索引 ? DBMS自動完成 ? 使用索引 ? DBMS自動選擇是否使用索引以及使用哪些索引 An Introduction to Database System 一、建立索引 ? 語句格式 CREATE [UNIQUE] [CLUSTER] INDEX 索 引 名 ON 表名 (列名 [次序 ][,列名 [次序] ]…); ? 用 表名 指定要建索引的基本表名字 ? 索引可以建立在該表的一 列 或多列上 , 各列名之間用逗號分隔 ? 用 次序 指定索引值的排列次序 , 升序: ASC, 降序:DESC。 An Introduction to Database System 語句格式(續(xù)) ? 刪除屬性列 直接 /間接刪除 ? 把表中要保留的列及其內容復制到一個新表中 ? 刪除原表 ? 再將新表重命名為原表名 直接刪除屬性列 :(新 ) 例: ALTER TABLE Student Drop Se; An Introduction to Database System [例 3] 將年齡的數(shù)據(jù)類型改為半字長整數(shù)。 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表增加 “ 入學時間 ” 列 , 其數(shù)據(jù)類型為日期型 。 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 ↑