MySQL 条件查询的常用操作


Posted in MySQL onApril 28, 2022

顾名思义, 条件查询就是使用where字句 , 将满足条件的数据筛选出来

语法 :

select < 结果 > from < 表名 > where < 条件 >

MySQL 条件查询的常用操作

这里我们以t_user表为例

-- 查询性别为男的信息
SELECT * FROM t_user WHERE sex='男'
-- 查询性别不为男的信息
SELECT * FROM t_user WHERE NOT sex='男'
-- 查询性别为男并且年龄为20的信息
SELECT * FROM t_user WHERE sex='男' AND age=20
-- 查询性别为男或者年龄为20的信息
SELECT * FROM t_user WHERE sex='男' OR age=20

模糊查询

LIKE

是否匹配于一个模式 一般和通配符搭配使用,可以判断字符型数值或数值型.    

通配符: % 任意多个字符,包含 0 个字符 _ 任意单个字符

我们知道, 在实际查询中, 往往我们只需要大致的信息, 就能查到我们需要的结果(例如淘宝搜索商品等) , 而这就需要到了模糊查询 ,例 :

-- _下划线一次匹配一个字符
-- %一次可以匹配0个或者多个字符
SELECT * FROM t_user WHERE NAME LIKE '_李_'
SELECT * FROM t_user WHERE NAME LIKE 'b__'
SELECT * FROM t_user WHERE NAME LIKE 'b%'

上述第三条sql查询结果如下 : 

MySQL 条件查询的常用操作

between and 两者之间 , 包含临界值;

in 判断某字段的值是否属于 in 列表中的某一项

IS NULL (为空的)或 IS NOT NULL (不为空的)

-- 查询体重在100和130之间的信息,包括100和130
SELECT * FROM t_user WHERE weight BETWEEN 100 AND 130
-- 查询体重是100或者110的信息
SELECT * FROM t_user WHERE weight IN(100,110)
-- 查询生日为null或者不为null的信息
SELECT * FROM t_user WHERE birthday IS NULL
SELECT * FROM t_user WHERE birthday IS NOT NULL

这里需要注意, 我们如果要用null 来作为where的查询条件时 ,是不能写成下面这样

-- SELECT * FROM t_user WHERE birthday=NULL

这样是查询不到结果的, 这里我们需要使用 is null

union

使用 union 或者 union all 会把两条sql语句的查询结果合并

当使用union 时,mysql 会把结果集中重复的记录删掉,而使用union all , mysql 会把所有的记录返回,且效率高于union 。

SELECT * FROM t_user WHERE age=20 
UNION 
SELECT * FROM t_user WHERE sex='男'

查询结果 : 

MySQL 条件查询的常用操作

SELECT * FROM t_user WHERE age=20 
UNION ALL
SELECT * FROM t_user WHERE sex='男'

 查询结果 : 

MySQL 条件查询的常用操作

排序 

查询结果排序 , 使用 ORDER BY 子句排序 order by 排序列 ASC/DESC

asc 代表的是升序, desc 代表的是降序,如果不写,默认是升序

order by 子句中可以支持单个字段、多个字段、表达式、函数、别名

-- 按体重升序排列
SELECT * FROM t_user ORDER BY weight ASC
-- 按体重降序排列
SELECT * FROM t_user ORDER BY weight DESC
-- 如果体重相等,就按照学号来排,升序
SELECT * FROM t_user ORDER BY weight ASC, number ASC

数量限制

limit 子句:对查询的显示结果限制数目 (sql 语句最末尾位置 )

在实际查询中, 数据库内会存放大量的数据, 所以我们会对查询的数量进行控制,这时就需要limit

-- 从第一条数据开始查询2条数据(不包括第一条数据)
SELECT * FROM t_user LIMIT 1,2

limit  后第一位数字是指: 开始查询的位置

第二位数字是指: 查询的数据条数

分组

group by 子句 : 对查询的信息分组

having 子句 : 对分组后的结果集再进行筛选

-- 通过sex分组
-- 这里select后跟的必须是group by后的字段或者分组函数
SELECT sex,AVG(weight) FROM t_user GROUP BY sex
SELECT sex,AVG(weight) FROM t_user GROUP BY sex HAVING sex='女'

这里需要注意的是: 

查询列表比较特殊,要求是分组函数和group by后出现的字段 

分组前筛选 原始表    group by 子句的前面         where

分组后筛选 分组后的结果集 group by 的后面    having

where 是分组前筛选, having是分组后筛选

综合

在实际的开发过程中,这些字句都是连在一起使用的,并且有着一定的位置, 位置不对就会报错,例:

SELECT sex,AVG (weight) w
FROM
  t_user
WHERE sex = '男'
GROUP BY sex
HAVING sex = '男'
ORDER BY w ASC
LIMIT 0, 1

子句的顺序是有一定要求的

查询结果 : 

MySQL 条件查询的常用操作

到此这篇关于MySQL条件查询语句常用操作全面汇总的文章就介绍到这了!

MySQL 相关文章推荐
详解MySQL 联合查询优化机制
May 10 MySQL
MySQL 使用事件(Events)完成计划任务
May 24 MySQL
52条SQL语句教你性能优化
May 25 MySQL
Mysql文件存储图文详解
Jun 01 MySQL
mysq启动失败问题及场景分析
Jul 15 MySQL
MySQL into_Mysql中replace与replace into用法案例详解
Sep 14 MySQL
浅谈mysql哪些情况会导致索引失效
Nov 20 MySQL
weblogic服务建立数据源连接测试更新mysql驱动包的问题及解决方法
Jan 22 MySQL
mysql查询结果实现多列拼接查询
Apr 03 MySQL
MySQL提升大量数据查询效率的优化神器
Jul 07 MySQL
MySQL生成千万测试数据以及遇到的问题
Aug 05 MySQL
SQL Server数据库的三种创建方法汇总
May 08 MySQL
mysql 子查询的使用
Apr 28 #MySQL
Mysql 数据库中的 redo log 和 binlog 写入策略
Apr 26 #MySQL
优化Mysql查询的示例
Apr 26 #MySQL
MySQL的存储过程和相关函数
Apr 26 #MySQL
mysql 索引的数据结构为什么要采用B+树
MySQ InnoDB和MyISAM存储引擎介绍
pt-archiver 主键自增
Apr 26 #MySQL
You might like
详解PHP实现执行定时任务
2015/12/21 PHP
PHP水印类,支持添加图片、文字、填充颜色区域的实现
2017/02/04 PHP
PHPStudy下如何为Apache安装SSL证书的方法步骤
2019/01/23 PHP
PHP PDO和消息队列的个人理解与应用实例分析
2019/11/25 PHP
通过下拉框的值来确定输入框是否可以为空的代码
2011/10/18 Javascript
jQuery UI Dialog 创建友好的弹出对话框实现代码
2012/04/12 Javascript
浅析js封装和作用域
2013/07/09 Javascript
优化Node.js Web应用运行速度的10个技巧
2014/09/03 Javascript
js实现文字滚动效果
2016/03/03 Javascript
js中获取时间new Date()的全面介绍
2016/06/20 Javascript
详解webpack + react + react-router 如何实现懒加载
2017/11/20 Javascript
浅谈vue中改elementUI默认样式引发的static与assets的区别
2018/02/03 Javascript
详解vue.js根据不同环境(正式、测试)打包到不同目录
2018/07/13 Javascript
vue中格式化时间过滤器代码实例
2019/04/17 Javascript
详解vue使用$http服务端收不到参数
2019/04/19 Javascript
[00:12]2018DOTA2亚洲邀请赛SOLO赛 MidOne是否中单第一人?
2018/04/05 DOTA
[03:00]2018完美盛典_最佳英雄奖
2018/12/17 DOTA
python得到电脑的开机时间方法
2018/10/15 Python
使用PyTorch将文件夹下的图片分为训练集和验证集实例
2020/01/08 Python
python 解决tqdm模块不能单行显示的问题
2020/02/19 Python
一款CSS3实现多功能下拉菜单(带分享按)的教程
2014/11/05 HTML / CSS
html5唤起app的方法
2017/11/30 HTML / CSS
美国正宗奢华复古手袋、珠宝及配饰网站:What Goes Around Comes Around
2018/07/21 全球购物
财务会计专业毕业生自荐信
2013/10/02 职场文书
日语专业个人求职信范文
2014/02/02 职场文书
师德师风建设方案
2014/05/08 职场文书
建筑安全责任书范本
2014/07/24 职场文书
官僚主义现象查摆问题整改措施
2014/10/04 职场文书
公务员党的群众路线教育实践活动学习心得体会
2014/10/30 职场文书
教师先进事迹材料
2014/12/16 职场文书
简历自我评价模板
2015/03/11 职场文书
教师节寄语2015
2015/03/23 职场文书
2015年药房工作总结
2015/04/25 职场文书
JavaScript实现淘宝商品图切换效果
2021/04/29 Javascript
Python基础之常用库常用方法整理
2021/04/30 Python
css3 选择器
2022/05/11 HTML / CSS