【正文】
字符匹配 L I K E , N O T L I K E空 值 I S N U L L , I S N O T N U L L多重條件 AND , ORWHERE子句常用的查詢條件 (1) 比較大小 在 WHERE子句的 比較條件 中使用比較運(yùn)算符 ? =, , , =, =, != 或 ? 邏輯運(yùn)算符 NOT + 比較運(yùn)算符 [例 8] 查詢所有年齡在 20歲以下的學(xué)生姓名及其年齡。 SELECT Sname, Sage FROM Student WHERE Sage 20; (2) 確定范圍 ? 使用謂詞 BETWEEN … AND … NOT BETWEEN … AND … [例 10] 查詢年齡在 20~23歲(包括 20歲和 23歲)之間的學(xué)生的姓名、系別和年齡。 [例 11] 查詢年齡不在 20~23歲之間的學(xué)生姓名、系別和年齡。 (3) 確定集合:謂詞 IN用來查找屬性值屬于指定集合的元組。 使用謂詞 IN 值表 NOT IN 值表 其中 , 值表 :用逗號分隔的一組取值 [例 12]查詢信息系 ( IS)、 數(shù)學(xué)系 ( MA) 和計算機(jī) 科學(xué)系 ( CS) 學(xué)生的姓名和性別。 [例 13]查詢既不是信息系 、 數(shù)學(xué)系 , 也不是計算 機(jī)科學(xué)系的學(xué)生的姓名和性別 。 (4) 字符串匹配 :查找指定的屬性列值與匹配串相匹配的元組。 [NOT] LIKE ‘匹配串 ’ [ESCAPE ‘ 換碼字符’ ] 通配符: %(百分號 ) 代表任意長度(長度可以為 0)的字符串 ? 例: a%b表示以 a開頭,以 b結(jié)尾的任意長度的字符串。如 acb, addgb, ab 等都滿足該匹配串 _(下橫線 ) 代表任意單個字符 ? 例: a_b表示以 a開頭,以 b結(jié)尾的長度為 3的任意字符串。如 acb, afb等都滿足該匹配串 1) 匹配串為固定字符串 [例 14] 查詢學(xué)號為 95001的學(xué)生的詳細(xì)情況 。 SELECT * FROM Student WHERE Sno LIKE 39。9500139。; 等價于: SELECT * FROM Student WHERE Sno = 39。9500139。; 2) 匹配模板為含通配符的字符串 [例 15] 查詢所有姓劉學(xué)生的姓名、學(xué)號和性別。 SELECT Sname, Sno, Ssex FROM Student WHERE Sname LIKE ‘劉 %’; [例 16] 查詢所有不姓劉的學(xué)生姓名。 匹配模板為含通配符的字符串(續(xù)) [例 17] 查詢名字中第 2個字為“陽”字的學(xué)生的姓名和學(xué)號。 SELECT Sname, Sno FROM Student WHERE Sname LIKE 39。_ _陽 %39。; 3) 使用換碼字符將通配符轉(zhuǎn)義為普通字符 SELECT Cno, Ccredit FROM Course WHERE Cname LIKE 39。DB\_Design39。 ESCAPE 39。\39。 [例 19] 查詢 DB_Design課程的課程號和學(xué)分。 當(dāng)用戶要查詢的字符串本身就含有 % 或 _ 時,要使用 ESCAPE ‘換碼字符 ’ 短語對通配符進(jìn)行轉(zhuǎn)義:使用換碼字符將通配符轉(zhuǎn)義為普通字符。 [例 20] 查詢以 DB_開頭,且倒數(shù)第 3個字符為 i的課程的詳細(xì)情況。 SELECT * FROM Course WHERE Cname LIKE 39。DB\_%i_ _39。 ESCAPE 39。 \ 39。; 作業(yè) ?P127 T3 T5 1) 2) 3)