




已阅读5页,还剩18页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第6章使用WHERE子句查询表中满足条件的记录,在使用SQL语句进行查询操作时,很多时候开发人员或者用户并不是对数据表中的全部记录感兴趣,而只是想得到实际需要的数据记录,这时就需要对查询结果进行限制。在SQL语句中可以使用WHERE子句过滤掉不符合条件的记录。这一章就介绍如何使用WHERE子句查询表中满足条件的记录。,第6章使用WHERE子句查询表中满足条件的记录,算术比较运算符的使用BETWEENAND运算符查询指定条件范围的记录IN运算符查询与列表匹配的记录字符串和时间的比较逻辑查询中AND、OR和NOT运算符的使用空值查询字符匹配查询转义字符的使用,6.1比较查询,在WHERE子句中可以使用比较运算符对数值、字符值等信息进行查询。比较运算符这里归纳为三类:算术比较运算符、BETWEENAND运算符和IN运算符。这一节将分别对对这三种比较运算符的查询方法进行介绍。最后还将介绍WHERE子句中字符串和时间的比较方法。,6.1.1算术比较运算符,SQL语句中的算术比较运算符主要包括=(等于)、=(大于等于)、(大于)、(不等于)、!(不大于)、!(不小于)。在SELECT语句的WHERE子句中可以使用算术比较运算符对指定列进行比较,其语法格式如下:字段1比较运算符值其中,字段1表示数据表中需要查询的字段列名,字段1后面跟的是算术比较运算符,值表示的是指定列要比较的数值。使用比较运算符返回的结果是一个逻辑值。如果逻辑值为TRUE,则会返回查询到的记录,如果逻辑值为FALSE,则不会返回相应的查询结果。,6.1.2BETWEENAND运算符查询指定条件范围的记录,BETWEENAND运算符可以用来查询指定条件范围的记录。使用BETWEENAND运算符查询时在BETWEEN运算符和AND运算符后面都需要给定一个值。其语法格式如下:字段1BETWEEN值1AND值2其中,字段1表示数据表中需要查询的字段;值1为给定数值中较小的值;值2为给定数值中较大的值。其最终查询的结果也包括值1和值2本身的值。,6.1.3IN运算符查询与列表匹配的记录,IN运算符查询用来查询与列表匹配的记录。使用IN运算符,可以将满足列表中满足指定表达式的任何一个值都查询出来。IN运算符后的属性值可以是一个,也可以有多个,多个属性值之间需要要用逗号分隔。其语法格式如下:字段1IN(属性值1,属性值2,属性值3)其中字段1表示数据表中需要查询的字段;属性值1,属性值2,属性值3分别表示需要查询的值。属性值既可以是数字类型的也可以是字符类型的值。如果属性值是字符类型的值,则需要使用单引号将其引住。,6.1.4字符串比较,在使用SQL语句进行比较查询时,经常会遇到字符串比较问题。对字符串进行比较时,常用的数据库都可以使用比较运算符对字符串进行比较,另外,在MySQL数据库中还可以使用关键字BINARY对字符串进行二进制比较。在这一小节中将对这两种字符串比较方式进行介绍。1使用比较运算符对字符串进行比较2使用BINARY关键字对字符串进行二进制比较,6.1.5日期时间的比较,在WHERE子句中对日期值和时间进行比较时,要比较的日期和时间必须是数据库服务器可以接受的字符串格式。例如,在学生信息表(T_student)中,学生的出生日期被设置为DATETIME日期类型的变量。要想在WHERE子句中对学生的出生日期值进行比较,可以使用单引号将该日期值引住。,6.2逻辑查询,在SQL语句中逻辑运算符主要包括AND、OR和NOT三种。其中AND运算符用来查询同时满足多个条件的记录,OR运算符用来查询多个条件中满足其中任一个条件的记录,NOT运算符用来查询满足相反条件的记录。这一节将对这三个逻辑运算符的使用方法一一介绍,并在最后通过例子介绍混合使用上述三种逻辑运算符进行复杂逻辑查询的情况。,6.2.1使用AND运算符查询同时满足多个条件的记录,在SQL的执行操作中,很多情况下,WHERE子句并不是只希望满足一个条件,而是希望最终查询的结果必须同时满足多个条件(两个或者两个以上)。这个时候就需要使用AND运算符。其语法格式如下:条件1AND条件2其中条件1,条件2是在WHERE子句中进行查询时需要满足的条件。如果希望使用AND运算符在WHERE子句中连接多个条件。可以使用下面的语法格式。条件1AND条件2AND条件3,6.2.1使用AND运算符查询同时满足多个条件的记录,这里使用两个AND运算符来连接3个条件。多个AND运算符进行连接操作时,每一个AND运算符两侧的值必须都为TRUE,也就是说这些条件都同时被满足的情况下,结果才会被显示出来。说明:在MicrosoftSQLServer数据库中,使用“&”符号代替AND运算符表示逻辑与运算。,6.2.2使用OR运算符查询满足任一条件的记录,在使用SQL进行查询操作时,有些时只是希望查询的结果中满足多个条件中的任一条件即可。这个时候就需要使用OR运算符。使用OR运算符可以用来查询满足任一条件的记录。其语法格式如下:条件1OR条件2其中条件1,条件2是在WHERE子句中进行查询时需要的条件。这两个条件中,只要符合其中任何一个条件,则符合该条件的记录就会被检索出来。如果希望使用OR运算符在WHERE子句中连接多个条件。可以使用下面的语法格式条件1OR条件2OR条件3,6.2.2使用OR运算符查询满足任一条件的记录,这里使用两个OR运算符来连接3个条件。多个OR运算符进行连接操作时,两侧的条件中任何一个条件为TRUE,满足该条件的记录就会被显示出来。说明:在MicrosoftSQLServer数据库中,使用“|”符号代替OR运算符表示逻辑与运算。,6.2.3使用NOT运算符对查询条件的布尔值求反,有些时候,需要查询不满足指定条件的记录,这个时候就需要使用NOT运算符。NOT运算符对查询条件的布尔值求反。说明:在MicrosoftSQLServer数据库中,使用“”符号代替NOT运算符表示逻辑与运算。,6.2.4复杂逻辑查询,在前面的3节中,分别介绍了AND运算符、OR运算符和NOT运算符这3个逻辑运算符的使用。这3个逻辑运算符也可以放到一个SQL语句中混合使用。在这3个逻辑运算符中,NOT的优先级最高,AND的优先级要高于OR。为了便于理解,一般在混合使用这3个逻辑运算符时,可以使用括号将每一个部分括起来。,6.3空值查询,在使用SQL语句执行查询操作时,还有一种是空值查询。在数据表中,如果一个表的行属性中不存在任何值的时候,也就是说该表的行属性中没有任何数据记录。那么就将其称之为空值。在SQL的查询中,NULL可以用来表示空值的含义。在SQL语句中,可以使用ISNULL或者ISNOTNULL关键字来判断空值。,6.4使用LIKE操作符实现模糊查询,在使用SQL语句进行查询时,经常会遇到这样一种情况,就是不能完全确定所需要查询信息的完整条件,但是这些信息又具有某些明显的特征。例如,想学习SQL语言,希望到图书馆中找一些相关的资料,但是又不知道有关SQL语言的书都有哪些,这个时候一般都会在图书管理系统中输入关键字SQL,这样与SQL有关的所有书籍就都会查到了。这就是模糊查询。在SQL语言中就提供了用于模糊查询的关键字LIKE,它需要和通配符“%”和“_”配合使用。这一节就来介绍如何使用LIKE来实现模糊查询。,6.4.1匹配任意单个字符,在SQL语句中,通配符“_”表示匹配单个字符。即在查询语句中,一个“_”只能表示匹配一个字符。,6.4.2匹配0个或者多个字符,在SQL语句中,通配符“%”表示匹配0个或者多个字符。即一个“%”可以表示0个字符,也可以表示一个字符,也可以表示两个或者更多的字符。,6.4.3使用转义字符,在使用SQL执行模糊查询时,有时数据表某个字段中的字符值本身就含有“%”或者是“_”这两个字符。开发人员希望在查询时,将字符值本身就含有“%”或者是“_”两个字符作为该字符的一部分查询出来,这个时间就需要使用ESCAPE关键字对其进行转义操作。使用ESCAPE关键字进行转义操作步骤如下:(1)在需要转义的“%”或者是“_”字符前加一个转义符,该转义符可以是一个任意字符。(2)在ESCAPE关键字后制定该转义符的名称。经过这两个步骤之后,位于该转义符之后的那个通配符(“%”或者是“_”字符)就会被转义为一个普通字符。,6.5使用REGEXP关键字进行模式匹配,在MySQL数据库中,还提供了一种更加灵活的模式匹配方法,就是使用REGEXP关键字对字符串进行模式匹配。使用REGEXP关键字对字符串进行模式匹配,只要是在被匹配的字符串中含有与匹配模版中相匹配的子串,就被认为是模式匹配。其返回值就为TRUE。在MySQL数据库中,使用REGEXP关键字对字符串进行模式匹配时,可以使用一些模式匹配修饰符对模式匹配进行测试。:用来匹配字符串的开始。$:用来匹配字符串的结尾。:在方括号中的任何字符都可以匹配。例如abc表示匹配方括号中的字符a、字符b或者是字符c。,6.5使用REGEXP关键字进行模式匹配,-:连字符用来表示字符匹配的范围。例如a-z表示匹配方括号中字符a到字符z中的任何一个字符。+:表示用于匹配的该字符在被匹配的字符串中出现至少一次或者多次。*:表示用
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年职业病防治法试题(含参考答案)
- 电竞赛事品牌传播渠道创新创业项目商业计划书
- 乳清蛋白粉生产创新创业项目商业计划书
- 线上购物线下试驾创新创业项目商业计划书
- 电商平台商品描述服务创新创业项目商业计划书
- 2025年事业单位工勤技能-新疆-新疆机械热加工一级(高级技师)历年参考题库含答案解析(5套)
- 江苏省东海县石榴中学2021届高三上学期9月学情检测数学试题含答案
- 会展站位设计方案(3篇)
- 2025年事业单位工勤技能-山西-山西无损探伤工一级(高级技师)历年参考题库含答案解析(5套)
- 2025年事业单位工勤技能-山西-山西城管监察员五级(初级工)历年参考题库含答案解析(5套)
- 产品线库存管理与补货预测系统
- 妇女维权法律知识讲座
- 2025年内蒙古自治区中考语文真题含答案
- 2025版危险货物道路运输综合预案(电石)
- 2025年中医确有专长考试试题及答案
- DB32∕T 4553-2023 医疗机构医疗器械不良事件监测工作指南
- 2025年机关事业单位技能资格考试-政工历年参考题库含答案解析(5套共100道单选合辑)
- 关于工勤人员管理办法
- 传统丧事流程安排方案
- 老中医讲辟谷课件
- 殡葬政策培训课件
评论
0/150
提交评论