当前位置:网站首页>MySQL之数据查询(WHERE)
MySQL之数据查询(WHERE)
2022-07-27 20:51:00 【遇安.112】
WHERE子句必须紧跟在FROM子句之后,在WHERE子句中,使用一个条件从FROM子句的中间结果中选取行。语法格式:WHERE <判定运算>
判定运算:结果为true、false或unknown
WHERE子句会根据条件对FROM子句的中间结果中的行一行一行地进行判断,当条件为ture时,一行就被包含到WHERE子句的中间结果集中。
在SQL中,返回逻辑值(true或false)的运算符或关键字都可称为谓词,判定运算包括比较运算、模式匹配、范围比较、空值比较和子查询。
1、比较运算
比较运算符用于比较两个表达式值,MySQL支持的比较运算符有:=(等于),<(小于),<=(小于等于),>(大于),>=(大于等于),<=>(相等或都等于空),<>(不等于),!=(不等于)。
表达式是除TEXT和BLOB类型外的表达式。
当两个表达式值均不为空值(NULL)时,除了“<=>”运算符,其他比较运算返回逻辑值true(真)或false(假)。而当两个表达式值中有一个为空值或都为空值时,将返回unknown。
例:查询Bookstore数据库book表中书名为“网页程序设计”的记录
SELECT *
FROM book
WHERE 书名='网页程序设计';例:查询Book表中单价大于30的图书情况
SELECT *
FROM Book
WHERE 单价>30;MySQL有一个特殊的等于运算符“<=>”,当两个表达式彼此相等或都等于空值时,其运算的值为true,其中有一个空值或都是非空值但不相等时该条件结果就是false,而没有unknown的情况。
2、逻辑运算
逻辑运算可以将多个判定运算的结果通过逻辑运算符(AND、OR、XOR和NOT)组成更为复杂的查询条件。
逻辑运算符用于对某个条件进行测试,运算结果为true(1)或false(0)。MySQL提供的逻辑运算符有:
not或!:逻辑非
or或||:逻辑或
and或&&:逻辑与
xor:逻辑异或
逻辑运算操作的结果是1或0,分别表示true和false。
3、模式匹配
LIKE运算符用于指出一个字符串是否与指定的字符串相匹配,其运算对象可以是char、varchar、text、datetime等类型的数据,返回逻辑值true或false。
语法格式:表达式 [not] LIKE 表达式
使用LIKE进行模式匹配时,常使用特殊符号_和%进行模糊查询,%代表0个或多个字符,_代表单个字符。
由于MySQL默认不区分大小写,要区分大小写时需要更换字符集的校对规则。
例:查询Members表中姓“张”的会员的身份证号、姓名、注册时间
SELECT 身份证号,会员姓名,注册时间
FROM Members
WHERE 会员姓名 LIKE'张%';例:查询book表中图书编号倒数第2位为D的图书编号和书名
SELECT 图书编号,书名
FROM book
WHERE 图书编号 LIKE'%D_';若要查找特殊符号中的一个或全部(_和%),须使用一个转义字符。如当要查找下划线_时,可以使用ESCAPE'#'来定义#为转义字符,这样,语句中在#后面的_就失去了其原来的特殊意义,被视为正常的下划线_。
例:查询book表中书名中包含下划线的图书。
SELECT 图书编号,书名
FROM book
WHERE 书名 LIKE'%#_%'ESCAPE'#';4、范围比较
用于范围比较的关键字有两个,分别是BETWEEM和IN
当要查询的条件是某个值的范围时,可以使用BETWEEN关键字。BETWEEN关键字指出查询范围,格式为:表达式 [NOT] BETWEEN 表达式1 AND 表达式2
例:查询Book表中2003年出版的图书的情况
SELECT *
FROM Book
WHERE 出版时间 BETWEEN'2003-1-1' AND '2003-12-31';
#或
SELECT *
FROM Book
WHERE 出版时间>='2003-1-1' AND 出版时间<='2003-12-31';例:若要查询Book表中不在2003年出版的所有图书的情况,则要使用NOT
SELECT *
FROM Book
WHERE 出版时间 NOT BETWEEN '2003-1-1' AND '2003-12-31';
#或
SELECT *
FROM Book
WHERE 出版时间<='2003-1-1' OR 出版时间>='2003-12-31';使用IN关键字可以指定一个值表,值表中列出所有可能的值,当与值表中的任一个匹配时,即返回true,否则返回false。
语法格式:表达式 [NOT] IN(子查询 | 表达式1[,...表达式n])
IN关键字应用最多的是表达子查询,也可以用于OR运算。
例:查询Book表中“高等教育出版社”,“北京大学出版社”和“人民大学出版社”出版的图书情况
SELECT * FROM Book
WHERE 出版社 IN('高等教育出版社','北京大学出版社','人民大学出版社');
#或
SELECT * FROM Book
WHERE 出版社='高等教育出版社'
OR 出版社='北京大学出版社'
OR 出版社='人民大学出版社';5、空值比较
当需要判定一个表达式的值是否为空值时,使用IS NULL关键字。
语法格式:表达式 IS [NOT] NULL
若表达式的值为空值,返回true,否则返回false,当使用not时,结果刚好相反。
例:查询Sell 表中还未发货的订单记录
SELECT *
FROM Sell
WHERE 是否发货 IS NULL;边栏推荐
- Xu Jinbo: AI protein prediction and design
- 强化学习——PyTorch 实现 Advantage Actor-Critic (A2C)
- 寻找和利用 XXE – XML 外部实体注入
- JUC工具包学习
- Starfish Os X MetaBell战略合作,元宇宙商业生态更进一步
- 携手长江存储,江波龙推出全球最小扩展卡
- What are the advantages of Tita's OKR system over other similar products or shared documents?
- 【CVA估值训练营】如何快速读懂上市公司年报——第四讲
- ELK日志分析系统安装和部署
- 新技术引领大中型企业营销新变革,用友BIP CRM重磅发布!
猜你喜欢

他山之石 | 蚂蚁超大规模知识图谱构建及应用

回Mixlab三天,“创造力团队”治好了我的精神内耗

Common Taylor expansion

华为鸿蒙 3 正式发布,这个安全功能解决了一大痛点

The wechat installation package has expanded 575 times in 11 years, and the up owner: "98% of the documents are garbage"; Apple App store was exposed to a large number of pornographic apps; Four techn

【信号处理】基于高阶统计量特征的通信系统中微弱信号检测附matlab代码

初步了解Panda3D音频和高级交互组件

深入了解 XXE 注射

寻找和利用 XXE – XML 外部实体注入
![[elm classification] classification of UCI data sets based on nuclear limit learning machine and limit learning machine, with matlab code](/img/bd/fe105f0af3a24ad6f220fa35bb5e8d.png)
[elm classification] classification of UCI data sets based on nuclear limit learning machine and limit learning machine, with matlab code
随机推荐
Learn more about xxE injection
钉钉报警工具
Current situation and future of Nb IOT industry: cross the threshold of 100million shipments and rush to 5g connection!
XML 外部实体 (XXE) 漏洞及其修复方法
2022夏暑假每日一题(五)
总投资600亿!富士康半导体高端封测项目正式落户青岛
寻找和利用 XXE – XML 外部实体注入
2022/7/24-7/25
With double-digit growth in revenue and profit, China Resources Yibao has quietly created these new products worth more than 100 million
Kubevera deploys applications through cli
【 图像去雾】基于暗通道和非均值滤波实现图像去雾附matlab代码
Helm chart explanation and common commands: helm template / package / plugin
LANproxy mapping local development environment
Read an article to understand artificial neural network
The total investment is 60billion! Foxconn semiconductor high-end package test project officially settled in Qingdao
Zabbix4.0 uses SNMP agent to monitor vcenter6.5
实现按照序号命名的txt文件由后往前递补重命名文件
[signal denoising] signal denoising based on Kalman filter with matlab code
How do I shut down oracle?
Exercise --- BFS