首页 数据库 mysql教程 7、使用WHERE子句查询表中满足条件的记录_MySQL

7、使用WHERE子句查询表中满足条件的记录_MySQL

Jun 01, 2016 pm 01:34 PM
开发 数据表 用户 记录

bitsCN.com

在使用SQL语句进行查询操作时,很多时候开发人员或者用户并不是对数据表中的全部记录感兴趣,而只是想得到实际需要的数据记录,这时就需要对查询结果进行限制。在SQL语句中可以使用WHERE子句过滤掉不符合条件的记录。
1.比较查询
在WHERE子句中可以使用比较运算符对数值、字符值等信息进行查询。比较运算符这里归纳为三类:算术比较运算符、BETWEEN…AND运算符和IN运算符。这一节将分别对对这三种比较运算符的查询方法进行介绍。最后还将介绍WHERE子句中字符串和时间的比较方法。
算术比较运算符
SQL语句中的算术比较运算符主要包括=(等于)、>=(大于等于)、(大于)、(不等于)、!>(不大于)、!字段1  比较运算符 值
其中,字段1表示数据表中需要查询的字段列名,字段1后面跟的是算术比较运算符,值表示的是指定列要比较的数值。使用比较运算符返回的结果是一个逻辑值。如果逻辑值为TRUE,则会返回查询到的记录,如果逻辑值为FALSE,则不会返回相应的查询结果。
注意:在WHERE子句中比较的是数值型数据时,可以不使用单引号;如果是其他类型的数据(例如,字符串、时间型等)则必须使用单引号将其引住。另外,WHERE子句中比较运算符的左侧和右侧的数据类型必须是兼容的。
BETWEEN…AND运算符查询指定条件范围的记录
BETWEEN…AND运算符可以用来查询指定条件范围的记录。使用BETWEEN…AND运算符查询时在BETWEEN运算符和AND运算符后面都需要给定一个值。其语法格式如下:
字段1 BETWEEN 值1  AND 值2
其中,字段1表示数据表中需要查询的字段;值1为给定数值中较小的值;值2为给定数值中较大的值。其最终查询的结果也包括值1和值2本身的值
提示:SQL中,可以使用NOT BETWEEN AND运算符来排除一些记录。例如要查询教师信息表中年龄不在30~50之间的教师信息,就可以通过NOT BETWEEN AND来实现。
IN运算符查询与列表匹配的记录
IN运算符查询用来查询与列表匹配的记录。使用IN运算符,可以将满足列表中满足指定表达式的任何一个值都查询出来。IN运算符后的属性值可以是一个,也可以有多个,多个属性值之间需要要用逗号分隔。其语法格式如下:
字段1 IN(属性值1, 属性值2, 属性值3…)
其中字段1表示数据表中需要查询的字段;属性值1, 属性值2, 属性值3分别表示需要查询的值。属性值既可以是数字类型的也可以是字符类型的值。如果属性值是字符类型的值,则需要使用单引号将其引住。
字符串比较
在使用SQL语句进行比较查询时,经常会遇到字符串比较问题。对字符串进行比较时,常用的数据库都可以使用比较运算符对字符串进行比较,另外,在MySQL数据库中还可以使用关键字BINARY对字符串进行二进制比较。
使用比较运算符对字符串进行比较时,比较运算符的左右两侧字符值应该用单引号引住。
SELECT 'mysql' = 'MySQL'
7、使用WHERE子句查询表中满足条件的记录_MySQL
如果希望比较的字符串区分大小写,可以使用BINARY关键字对字符串进行二进制比较。使用BINARY关键字,会把一个字符串(数字)转换成一个二进制对象。格式如下:

SELECT string1 比较运算符 BINARY string2  或SELECT BINARY string1 比较运算符 string2
登录后复制
SELECT 'mysql' = BINARY 'MySQL'
7、使用WHERE子句查询表中满足条件的记录_MySQL
日期时间的比较
在WHERE子句中对日期值和时间进行比较时,要比较的日期和时间必须是数据库服务器可以接受的字符串格式。例如,在学生信息表(T_student)中,学生的出生日期被设置为DATETIME日期类型的变量。要想在WHERE子句中对学生的出生日期值进行比较,可以使用单引号将该日期值引住。
2.逻辑查询
在SQL语句中逻辑运算符主要包括AND、OR和NOT三种。其中AND运算符用来查询同时满足多个条件的记录,OR运算符用来查询多个条件中满足其中任一个条件的记录,NOT运算符用来查询满足相反条件的记录。
使用AND运算符查询同时满足多个条件的记录
在SQL的执行操作中,很多情况下,WHERE子句并不是只希望满足一个条件,而是希望最终查询的结果必须同时满足多个条件(两个或者两个以上)。这个时候就需要使用AND运算符。其语法格式如下:
条件1 AND 条件2
其中条件1,条件2是在WHERE子句中进行查询时需要满足的条件。如果希望使用AND运算符在WHERE子句中连接多个条件。可以使用下面的语法格式。
条件1 AND 条件2  AND条件3 …
这里使用两个AND运算符来连接3个条件。多个AND运算符进行连接操作时,每一个AND运算符两侧的值必须都为TRUE,也就是说这些条件都同时被满足的情况下,结果才会被显示出来。
说明:在Microsoft SQL Server数据库中,使用“&”符号代替AND运算符表示逻辑与运算。
使用OR运算符查询满足任一条件的记录
在使用SQL进行查询操作时,有些时只是希望查询的结果中满足多个条件中的任一条件即可。这个时候就需要使用OR运算符。使用OR运算符可以用来查询满足任一条件的记录。其语法格式如下:
条件1 OR条件2
其中条件1,条件2是在WHERE子句中进行查询时需要的条件。这两个条件中,只要符合其中任何一个条件,则符合该条件的记录就会被检索出来。如果希望使用OR运算符在WHERE子句中连接多个条件。可以使用下面的语法格式
条件1 OR条件2  OR条件3 …
这里使用两个OR运算符来连接3个条件。多个OR运算符进行连接操作时,两侧的条件中任何一个条件为TRUE,满足该条件的记录就会被显示出来。
说明:在Microsoft SQL Server数据库中,使用“|”符号代替OR运算符表示逻辑与运算。
使用NOT运算符对查询条件的布尔值求反
有些时候,需要查询不满足指定条件的记录,这个时候就需要使用NOT运算符。NOT运算符对查询条件的布尔值求反。
说明:在Microsoft SQL Server数据库中,使用“~”符号代替NOT运算符表示逻辑与运算。
这3个逻辑运算符也可以放到一个SQL语句中混合使用。在这3个逻辑运算符中,NOT的优先级最高,AND的优先级要高于OR。为了便于理解,一般在混合使用这3个逻辑运算符时,可以使用括号将每一个部分括起来。
3.空值查询
在使用SQL语句执行查询操作时,还有一种是空值查询。在数据表中,如果一个表的行属性中不存在任何值的时候,也就是说该表的行属性中没有任何数据记录。那么就将其称之为空值。在SQL的查询中,NULL可以用来表示空值的含义。在SQL语句中,可以使用IS NULL或者IS NOT NULL关键字来判断空值。
4.使用LIKE操作符实现模糊查询
在使用SQL语句进行查询时,经常会遇到这样一种情况,就是不能完全确定所需要查询信息的完整条件,但是这些信息又具有某些明显的特征。例如,想学习SQL语言,希望到图书馆中找一些相关的资料,但是又不知道有关SQL语言的书都有哪些,这个时候一般都会在图书管理系统中输入关键字SQL,这样与SQL有关的所有书籍就都会查到了。这就是模糊查询。在SQL语言中就提供了用于模糊查询的关键字LIKE,它需要和通配符“%”和“_”配合使用。
在SQL语句中,通配符“_”表示匹配单个字符。即在查询语句中,一个“_”只能表示匹配一个字符。
在SQL语句中,通配符“%”表示匹配0个或者多个字符。即一个“%”可以表示0个字符,也可以表示一个字符,也可以表示两个或者更多的字符。
在使用SQL执行模糊查询时,有时数据表某个字段中的字符值本身就含有“%”或者是“_”这两个字符。开发人员希望在查询时,将字符值本身就含有“%”或者是“_”两个字符作为该字符的一部分查询出来,这个时间就需要使用ESCAPE关键字对其进行转义操作。使用ESCAPE关键字进行转义操作步骤如下:
(1)在需要转义的“%” 或者是“_”字符前加一个转义符,该转义符可以是一个任意字符。
(2)在ESCAPE关键字后制定该转义符的名称。
经过这两个步骤之后,位于该转义符之后的那个通配符(“%” 或者是“_”字符)就会被转义为一个普通字符。
5.使用REGEXP关键字进行模式匹配(regular expression
在MySQL数据库中,还提供了一种更加灵活的模式匹配方法,就是使用REGEXP关键字对字符串进行模式匹配。使用REGEXP关键字对字符串进行模式匹配,只要是在被匹配的字符串中含有与匹配模版中相匹配的子串,就被认为是模式匹配。其返回值就为TRUE。
在MySQL数据库中,使用REGEXP关键字对字符串进行模式匹配时,可以使用一些模式匹配修饰符对模式匹配进行测试。
^:用来匹配字符串的开始。
$:用来匹配字符串的结尾。
[]:在方括号中的任何字符都可以匹配。例如[abc]表示匹配方括号中的字符a、字符b或者是字符c。
-:连字符用来表示字符匹配的范围。例如[a-z]表示匹配方括号中字符a到字符z中的任何一个字符。
:表示用于匹配的该字符在被匹配的字符串中出现至少一次或者多次。
*:表示用于匹配的该字符在被匹配的字符串中出现零次或者多次。
():在圆括号中的内容将被看做一个整体。例如(abc),表示匹配样式(abc)的字符串是abc。
{m}:其中整数m表示花括号前的字符串需要出现的次数。例如{abc}{2}表示匹配样式{abc}{2}的字符串是abcabc。
另外,REGEXP还可以对字符串进行模式匹配测试。
SELECT 'agf' REGEXP '[a-d] ','banana' REGEXP '(ana){2}'
7、使用WHERE子句查询表中满足条件的记录_MySQLbitsCN.com
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳图形设置
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您听不到任何人,如何修复音频
3 周前 By 尊渡假赌尊渡假赌尊渡假赌

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

如何用小红书号查找用户?能查到手机号吗? 如何用小红书号查找用户?能查到手机号吗? Mar 22, 2024 am 08:40 AM

随着社交媒体的迅速发展,小红书已经成为了备受青睐的社交平台之一。用户可以通过创建小红书号来展示个人身份,并与其他用户交流互动。如果你需要查找某个用户的小红书号码,可以按照以下简单步骤进行操作。一、如何用小红书号查找用户?1.打开小红书APP,点击右下角的“发现”按钮,然后选择“笔记”选项。2.在笔记列表中,找到你想查找的用户发布的那篇笔记。点击进入笔记详情页。3.在笔记详情页中,点击用户头像下方的“关注”按钮,即可进入该用户的个人主页。4.在用户个人主页右上角,点击三个点按钮,然后选择“个人信息

以超级用户身份登录Ubuntu 以超级用户身份登录Ubuntu Mar 20, 2024 am 10:55 AM

在Ubuntu系统中,root用户通常是禁用状态的。要激活root用户,可以使用passwd命令设置密码,然后使用su-命令以root身份登录。根用户是具有系统管理权限且不受限制的用户。他拥有访问和修改文件、用户管理、软件安装和删除,以及系统配置更改等权限。根用户与普通用户有着明显的区别,根用户拥有系统中最高的权限和更广泛的控制权。根用户可以执行重要的系统命令和编辑系统文件,而普通用户则无法做到这一点。在本指南中,我将探讨Ubuntu根用户,如何以根用户身份登录,以及它与普通用户的不同之处。注意

拼多多买过的东西在哪里查看记录 查看买过的商品记录的方法 拼多多买过的东西在哪里查看记录 查看买过的商品记录的方法 Mar 12, 2024 pm 07:20 PM

  拼多多软件内提供的商品好物非常多,随时随地想买就买,而且每一件商品质量都是严格把关的,件件商品都是正品,不同还有非常多优惠的购物折扣,让大家网购根本停不下来。输入手机号在线登录,在线添加多个收货地址和联系方式,可以随时查看最新的物流动态,不同品类的商品板块都是开放的,搜索上下滑动选购下单,足不出户轻松体验便捷的网购服务,还能查看所有的购买记录,包括自己买过的商品,数十个购物红包、优惠券免费领取使用,现在小编在线详细为拼多多用户们带来查看买过的商品记录的方法。  1.打开手机,点击拼多多图标,

四款值得推荐的AI辅助编程工具 四款值得推荐的AI辅助编程工具 Apr 22, 2024 pm 05:34 PM

这个AI辅助编程工具在这个AI迅速发展的阶段,挖掘出了一大批好用的AI辅助编程工具。AI辅助编程工具能够提高开发效率、改善代码质量、降低bug率,是现代软件开发过程中的重要助手。今天大姚给大家分享4款AI辅助编程工具(并且都支持C#语言),希望对大家有所帮助。https://github.com/YSGStudyHards/DotNetGuide1.GitHubCopilotGitHubCopilot是一款AI编码助手,可帮助你更快、更省力地编写代码,从而将更多精力集中在问题解决和协作上。Git

学习如何利用Go语言开发移动应用程序 学习如何利用Go语言开发移动应用程序 Mar 28, 2024 pm 10:00 PM

Go语言开发移动应用程序教程随着移动应用市场的不断蓬勃发展,越来越多的开发者开始探索如何利用Go语言开发移动应用程序。作为一种简洁高效的编程语言,Go语言在移动应用开发中也展现出了强大的潜力。本文将详细介绍如何利用Go语言开发移动应用程序,并附上具体的代码示例,帮助读者快速入门并开始开发自己的移动应用。一、准备工作在开始之前,我们需要准备好开发环境和工具。首

AI程序员哪家强?探索Devin、通义灵码和SWE-agent的潜力 AI程序员哪家强?探索Devin、通义灵码和SWE-agent的潜力 Apr 07, 2024 am 09:10 AM

2022年3月3日,距世界首个AI程序员Devin诞生不足一个月,普林斯顿大学的NLP团队开发了一个开源AI程序员SWE-agent。它利用GPT-4模型在GitHub存储库中自动解决问题。SWE-agent在SWE-bench测试集上的表现与Devin相似,平均耗时93秒,解决了12.29%的问题。SWE-agent通过与专用终端交互,可以打开、搜索文件内容,使用自动语法检查、编辑特定行,以及编写和执行测试。(注:以上内容为原内容微调,但保留了原文中的关键信息,未超过指定字数限制。)SWE-A

Linux系统中的用户密码存储机制解析 Linux系统中的用户密码存储机制解析 Mar 20, 2024 pm 04:27 PM

Linux系统中的用户密码存储机制解析在Linux系统中,用户密码的存储是非常重要的安全机制之一。本文将解析Linux系统中用户密码的存储机制,包括密码的加密存储、密码的验证过程以及如何安全地管理用户密码。同时,将通过具体的代码示例展示密码存储的实际操作过程。一、密码的加密存储在Linux系统中,用户密码并不是以明文的形式存储在系统中,而是经过加密后保存。L

Oracle数据库:一个用户是否可以拥有多个表空间? Oracle数据库:一个用户是否可以拥有多个表空间? Mar 03, 2024 am 09:24 AM

Oracle数据库是一种常用的关系型数据库管理系统,许多用户都会遇到关于表空间的使用问题。在Oracle数据库中,一个用户可以拥有多个表空间,这样可以更好地管理数据存储和组织。本文将探讨一个用户如何在Oracle数据库中拥有多个表空间,并提供具体的代码示例。在Oracle数据库中,表空间是用来存储表、索引、视图等对象的逻辑结构。每个数据库都至少有一个表空间,

See all articles