MSQL数据库教程(视频指导版 【例335】查询学号以08开头,以08结尾的学生学号、姓名和专业名。 se1ect学号,姓名,专业名 from xs where学号 regexp'^08.·085 执行结果如图3.26所示 号 81181林一帆:计算机 图3.26执行结果 星号表示匹配位于其前面的字符,这个例子中,星号前面是点,点又表示任意一个 说明字符,所以这个结构表示一组任意的学符 3.范围比较 用于范围比较的关键字有两个: BETWEEN和IN 当要查询的条件是某个值的范围时,可以使用 BETWEEN关键字指出查询范围,格式为 表达式[NoT] BETWEEN表达式1AND表达式2 当不使用NOT时,若表达式的值在表达式1与2之间(包括这两个值),则返回TRUE,否 则返回 FALSE;使用NOT时,返回值刚好相反 表达式1的值不能大于表达式2的值 使用IN关键字可以指定一个值表,值表中列出所有可能的值,当与值表中的任一个匹配时 即返回TRUE,否则返回 FALSE使用N关键字指定值表的格式为 表达式IN 【例3.36】查询xscj数据库xs表中不在1993年出生的学生情况。 select学号,姓名,专业名,出生日期 from xs where出生日期 not between1993-1-1'and1993-12-31 行结果如图3.27所示 号:姓名:专业名:出生日期 199483 图3.27执行结果
当第3章MsOL查询和视图 【例3.37】查询xs表中专业名为“计算机”“通信工程”或“无线电”的学生的情况 trom xs where专业名in('计算机','通信工程',’无线电') 该语句与下句等价: where专业名=·计算机’or专业名=通信工程ox专业名=·无线电 IN关键字最主要的作用是表达子查询。 说明 4.空值比较 当需要判定一个表达式的值是否为空值时,使用 IS NULL关键字,格式为 表达式Is[NoT1NULL 当不使用NoT时,若表达式的值为空值,返回TRUE,否则返间 FALSE;当使用NOT时 结果刚好相反。 【例3.38】查询ⅹsj数据库中总学分尚不定的学生情况 from xs 本例即查找总学分为空的学生,结果为 5.子查询 在查询条件中,可以使用另一个查询的结果作为条件的一部分,例如,判定列值是否与某个 查询的结果集中的值相等,作为查询条件部分的查询称为子查询。SQL标准允许 SELECT多层 嵌套使用,用来表示复杂的查询>子查询除了可以用在 SELECT语句中,还可以用在 INSERT、 UPDATE及 DELETE语句中。子查询通常与N、 EXIST谓词及比较运算符结合使用 (1)IN子查询 IN子查询用于进行个给定值是否在子查询结果集中的判断,格式为 表达式 当表达式与子查询结果表中的某个值相等时,IN谓词返回TRUE,否则返回 FALSE;若使用了NOT,则返回的值刚好相反。 【例3.39】查找在xsj数据库中选修了课程号为206的课程的学生的姓名 学号 select姓名,学号 where学号in where课程号=206 执行结果如图3.28所示