- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第 章
条件查询
*1 条件表达式
*1 使用 WHERE 关键字设置查询条件
*1 排序条件查询的结果
*1 TOP 与 ROWNUM 的使用
在日常工作中,数据库的查询并非只是简单地查询所有记录,多数情况下是指定搜 索条件查询需要的数据,例如,查找计算机系的所有学生;查找 4 学分的所有课程等。 在查询语句中,指定条件需要使用 WHERE 子句。本章将介绍编写条件表达式的方法和 使用 WHERE 子句查询所需数据的一些简单方法。
7.1 条件表达式
条件表达式是使用条件运算符将常量、字段值、函数以及字段名连接起来的表达式。条件表达式 的值只有两种,分别是真(True)和假(False)。因为只要用到条件查询就要编写条件表达式,所以 了解条件表达式的组成,掌握其编写方法非常重要。本节将介绍条件表达式的相关内容。
7.1.1 指针与字段变量的概念
为了后面能很好地说明 WHERE 子句中条件表达式的工作原理,首先介绍两个概念——指针与字 段变量。指针是人们虚拟出来的一个箭头(或者标记),实际上它并不存在。指针可以指向数据表中 的任何一条记录,当指针指向某条记录时该记录就被称为当前记录。例如,指针指向了第 3 条记录时, 第 3 条记录就会成为当前记录,如图 7.1 所示,当前记录为第 3 条记录(学号为 0002 的记录)。
图 7.1 指针示意图
了解了指针和当前记录后,下面介绍字段变量。在表达式中出现的字段名其实就是字段变量,称 其为字段变量的原因是字段名的值会随着指针的移动而变化。例如,在图 7.1 中,姓名字段的当前值为 “李四”,而如果指针移动到了第 4 条记录上,姓名字段的当前值就会变为“马六”,所以表达式中 将字段名作为变量来使用。
7.1.2 条件表达式
如果要使用 WHERE 子句,则必须学会编写条件表达式。条件表达式其实是关系表达式、逻辑(布 尔)表达式和几个 SQL 特殊条件表达式的统称。条件表达式只有真(True)和假(False)两种值。在 学习编写条件表达式之前,首先应当了解条件运算符。下面的表 7.1 列出了 SQL 语言中使用的条件运 算符。
表 7.1 条件运算符
运 算 符 说 明 举 例
关系运算符
= 等于 姓名=王五,学分=4,出生日期=05/29/1973 小于 考试成绩90
续表
运 算 符 说 明 举 例
关系运算符
= 小于等于 出生日期=01/01/1974 大于 平时成绩90 = 大于等于 平时成绩=80 或!= 不等于 所属院系中文系 逻辑(布尔)运算符
NOT 非 NOT 考试成绩90 AND 与(而且) 考试成绩80 AND 平时成绩=90 OR 或 平时成绩=100 OR 考试成绩95 SQL 特殊条件运算符
IN 在某个集合中 学分 IN (2,3,4) NOT IN 不在某个集合中 所属院系 NOT IN(中文系,外语系) BETWEEN 在某个范围内 学分 BETWEEN 2 AND 3 NOT BETWEEN 不在某个范围内 学号 NOT BETWEEN 0001 AND 0005 LIKE 与某种模式匹配 姓名 LIKE %三% NOT LIKE 不与某种模式匹配 课名 NOT LIKE %基础% IS NULL 是 NULL 值 联系方式 2 IS NULL IS NOT NULL 不是 NULL 值 联系方式 2 IS NOT NULL
1.关系运算符
使用关系运算符编写条件表达式时,需要注意字段的类型。如果是字符类型的字段,则必须与字 符型常量相比较,例如:
姓名=王五
因为姓名是字符型字段,所以一定要注意将“王五”放进单引号中,将其变为字符串。该表达式 在指针指向 Student 表的第 2 条记录时为真,其他情况下均为假。因为只有在指针指向第 2 条记录时, 字段变量“姓名”的值才会为王五,此时表达式便成为:
王五=王五
因此,表达式的结果为真。 如果是数值类型的字段,则必须与数值型常量比较,例如:
学分=4
在此,绝对不可以将数值 4 放进单引号内,因为学分是数值型常量。 使用关系运算符编写条件表达式时,最需要注意的是日期型字段。有些 DBMS 中支持日期型常量,
例如 Access。所以在 Access 中编写 1974 年 1 月 1 日之前出生的条件表达式为:
出生日期#01/01/1974#
而有些 DBMS 中,没有日期型常量的概念,例如,SQL Server 和 Oracle 数据库系统,但是这类数
据库管理系统能够识别日期格式的字符串。例如,在 SQL Server 中编写 1974 年 1 月 1 日之前出生的条
件表达式为:
出生日期
文档评论(0)