第三章 关系数据库标准语言SQL

第一节 第二节 第三节 第四节

第三节 查 询   (1)(2)(3)(4)(5)(6)(7)(8)(9)(10)(11)(12)(13)
(2) 确定范围
    使用谓词 BETWEEN … AND …
    NOT BETWEEN … AND …
    [例10] 查询年龄在20~23岁(包括20岁和23岁)之间的学生的姓名、系别和年龄。
    SELECT Sname,Sdept,Sage
    FROM Student
    WHERE Sage BETWEEN 20 AND 23;
    [例11] 查询年龄不在20~23岁之间的学生姓名、系别和年龄。
    SELECT Sname,Sdept,Sage
    FROM Student
    WHERE Sage NOT BETWEEN 20 AND 23;
(3) 确定集合:使用谓词 IN <值表>, NOT IN <值表>。
    <值表>:用逗号分隔的一组取值。
    [例12]查询信息系(IS)、数学系(MA)和计算机科学系(CS)学生的姓名和性别。
    SELECT Sname,Ssex
    FROM Student
    WHERE Sdept IN ( 'IS','MA','CS' );
    [例13]查询既不是信息系、数学系,也不是计算机科学系的学生的姓名和性别。
    SELECT Sname,Ssex
    FROM Student
    WHERE Sdept NOT IN ( 'IS','MA','CS' );
(4) 字符串匹配:[NOT] LIKE ‘<匹配串>’ [ESCAPE ‘ <换码字符>’]。
    <匹配串>:指定匹配模板
    匹配模板:固定字符串或含通配符的字符串。当匹配模板为固定字符串时,可以用 = 运算符取代 LIKE
谓词。用 != 或 < >运算符取代 NOT LIKE 谓词,通配符:
    % (百分号) 代表任意长度(长度可以为0)的字符串。
    例:a%b表示以a开头,以b结尾的任意长度的字符串。如acb,addgb,ab 等都满足该匹配串。
    _ (下横线) 代表任意单个字符。
    例:a_b表示以a开头,以b结尾的长度为3的任意字符串。如acb,afb等都满足该匹配串。
    ESCAPE 短语:当用户要查询的字符串本身就含有 % 或 _ 时,要使用ESCAPE '<换码字符>' 短语对通
配符进行转义。
1) 匹配模板为固定字符串
    [例14] 查询学号为95001的学生的详细情况。
    SELECT *
    FROM Student
    WHERE Sno LIKE '95001';
    等价于:
    SELECT *
    FROM Student
    WHERE Sno = '95001';

吉林大学网络教育学院 版权所有