当前位置:文档之家› sql_比较运算符

sql_比较运算符


版权所有 © 2010,Oracle。保留所有权利。
15
比较运算符
小结
在本课中,您应该已经学会: • 应用适当的比较运算符以返回所需结果 • 演示如何正确使用 BETWEEN、IN 和 LIKE 条件以返回所需结果 • 区分零和 NULL 值,其中 NULL 表示 不可用、未分配、未知或不适用 • 说明如何使用比较条件和 NULL
版权所有 © 2010,述/示范
IN IN 条件也称为“成员条件”。用于测试一个值是否在一组 指定的值范围内。例如,IN 可用来识别标识号为 2349、7354 或 4333 的学生,或识别国际电话代码为 1735、82 或 10 的人。
SELECT 歌名, 类型代码 FROM d_歌曲 WHERE 类型代码 IN (77,12);
版权所有 © 2010,Oracle。保留所有权利。
3
比较运算符
讲述/示范
比较运算符 您已经熟悉了诸如等于 (=)、小于 (<) 和 大于 (>) 之类的比较运算符。SQL 还有 其它运算符,因而增加了检索特定数据 集的功能。其中包括: • BETWEEN…AND • IN • LIKE
版权所有 © 2010,Oracle。保留所有权利。
比较运算符
版权所有 © 2010,Oracle。保留所有权利。
比较运算符
学习内容
在本课中,您将学习: • 应用适当的比较运算符以返回所需结果 • 演示如何正确使用 BETWEEN、IN 和 LIKE 条件以返回所需结果 • 区分零和 NULL 值,其中 NULL 表示 不可用、未分配、未知或不适用 • 说明如何使用比较条件和 NULL
版权所有 © 2010,Oracle。保留所有权利。
2
比较运算符
学习目的
我们在日常谈话中常会不自觉地使用比较。 • “我可以在上午 10 点到 11 点‘之间’ 和您见面。” • “我想买一条牛仔裤,就‘像’您穿 的这条一样。” • “如果我没记错的话,音乐会上最好 的座位‘是’第 100 排、第 200 排和 第 300 排。” 在 SQL 中也需要用到诸如此类的比较。比较 条件可用来在表中查找与特定条件相符的数据。 能够编写 SELECT 子句以返回特定数据是 SQL 的一项强大功能。
版权所有 © 2010,Oracle。保留所有权利。
12
比较运算符
讲述/示范
LIKE(续) 一个重要的附加选项:当需要完全匹配 含有 % 或 _ 字符的字符串时,需要指出 % 或 _ 不是通配符,而是搜索项的一部分。 ESCAPE 选项反斜杠 (\) 用来表示 _ 或 % 是名称的一部分,而不是通配符值。 例如,如果数据库将 CD 曲目号存储为 TRA_6, 则需要按以下方式编写 WHERE 子句: WHERE 曲目 LIKE 'TRA\_%‘ ESCAPE ‘\'
4
比较运算符
讲述/示范
BETWEEN…AND BETWEEN...AND 运算符用于根据一个 范围值来选择和显示行。当与 WHERE 子句一起使用时,BETWEEN...AND 条件将返回一个介于指定上限和下限 之间(包含边界值)的范围值。
版权所有 © 2010,Oracle。保留所有权利。
5
比较运算符
与 BETWEEN...AND 一样,可以采用任意一种 语法来编写 IN 条件。
版权所有 © 2010,Oracle。保留所有权利。
9
比较运算符
讲述/示范
LIKE 您是否曾经在购物场所寻找过某样东西, 虽然在杂志或电视上见过它,但不确定其 确切的样子?这与数据库搜索非常相似。 一个经理可能知道某个雇员的姓氏以“S” 开头,但却不知道其完整名字。幸运的是, 在 SQL 中,使用 LIKE 条件可以选择与字符、 日期或数字模式相匹配的行。 百分比 (%) 和下划线 (_) 这两个符号称为 通配符,可用来构建一个搜索字符串。
版权所有 © 2010,Oracle。保留所有权利。
13
比较运算符
讲述/示范
IS NULL、IS NOT NULL 是否记得 NULL?Null 指不可用、未分配、未知或不适用的值。 经常需要对不可用、未分配或未知的数据进行测试。您可能需 要知道六月份目前尚未安排计划的所有日期。或许可能需要知 道您的数据库中尚未记录其电话号码的所有客户。 IS NULL 条件用于测试不可用、未分配或未知的数据。IS NOT NULL 用于测试存在于数据库中的数据。在下一张幻灯片所显示 的示例中,所编写的 WHERE 子句会检索所有不是经理(其经 理标识为 NULL)的雇员的姓氏。
歌名 Its Finally Over I’m Going to Miss My Teacher Hurrah for Today Let’s Celebrate 12 12 77 77 类型代码
版权所有 © 2010,Oracle。保留所有权利。
8
比较运算符
讲述/示范
IN(续) 在本示例中,WHERE 子句还可以采用一组 OR 条件来编写: SELECT FROM WHERE … WHERE 歌名, 类型代码 d_歌曲 类型代码 IN ( 77, 12); 类型代码 = 77 OR 类型代码 = 12;
讲述/示范
BETWEEN…AND(续) 请注意,在对“按需 DJ”数据库进行查询的示例中,返回的 值中包含上限值和下限值。BETWEEN 条件所指定的值包含 边界值。另请注意,必须先列出下限值。
专辑 Party Music for All Occasions Songs from My Childhood Carpe Diem Here Comes the Bride 年份 2000 1999 2000 2001
版权所有 © 2010,Oracle。保留所有权利。
11
比较运算符
讲述/示范
LIKE(续) SELECT 姓氏 FROM 雇员 WHERE 姓氏 LIKE '_o%'; 上面的查询会返回以下哪些姓氏? 1. Sommersmith 2. Oog 3. Fong 4. Mo 1、2、3 和 4 是正确的!
版权所有 © 2010,Oracle。保留所有权利。
14
比较运算符
讲述/示范
IS NULL、IS NOT NULL(续) SELECT 姓氏, 经理标识 FROM 雇员 WHERE 经理标识 IS NULL; 阅读以下查询示例并说明您认为会返回什么内容: SELECT 名字, 姓氏, 批准的费用金额 FROM d_合作伙伴 WHERE 批准的费用金额 IS NULL;
版权所有 © 2010,Oracle。保留所有权利。
16
比较运算符
小结
练习指南 本课练习指南的链接位于第 0 部分的 课程资源中。
版权所有 © 2010,Oracle。保留所有权利。
17
SELECT 专辑, 年份 FROM d_cds WHERE 年份 BETWEEN 1999 AND 2001;
请注意,输出中包含上限值和下限值。
版权所有 © 2010,Oracle。保留所有权利。
6
比较运算符
讲述/示范
BETWEEN…AND(续) 使用 BETWEEN...AND 与使用以下表达式的 效果是一样的: WHERE 年份 >= 1999 AND 年份 <= 2001 事实上,使用 BETWEEN...AND 或使用替代 比较运算符并不有助于性能的改进。使用 BETWEEN...AND 就是为了提高代码可读性 并简化从数据库中获取结果的过程。
版权所有 © 2010,Oracle。保留所有权利。
10
比较运算符
讲述/示范
LIKE(续) 百分比 (%) 符号用来代表由零个或多个 字符组成的任意顺序的字符串。下划线 (_) 符号用来代表单个字符。 在以下所示的示例中,将返回其姓氏以任一 字母开头,且后跟“o”,然后是任意个字母 的所有雇员。 SELECT 姓氏 FROM 雇员 WHERE 姓氏 LIKE '_o%';
相关主题