MySQL条件查询语句常用操作全面汇总
作者:羡羡ˇ 发布时间:2024-01-26 11:10:24
顾名思义, 条件查询就是使用where字句 , 将满足条件的数据筛选出来
语法 :
select < 结果 > from < 表名 > where < 条件 >
这里我们以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查询结果如下 :
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='男'
查询结果 :
SELECT * FROM t_user WHERE age=20
UNION ALL
SELECT * FROM t_user WHERE sex='男'
查询结果 :
排序
查询结果排序 , 使用 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
子句的顺序是有一定要求的
查询结果 :
来源:https://blog.csdn.net/xx12321q/article/details/123641200


猜你喜欢
- 本文实例讲述了Python使用matplotlib和pandas实现的画图操作。分享给大家供大家参考,具体如下:画图在工作再所难免,尤其在做
- 概况在开发过程中,我们一般直接用Python命令直接运行Flask程序。这样的运行只适合我们开发,方便我们调试。一旦程序部署到线上,这样运行
- 前言今天呢,笔者想和大家来聊聊python+pytest接口自动化测试的参数关联,笔者这边就不多说废话了,咱们直接进入正题。一、什么是参数关
- 首先,需要简单的了解一下爬虫,尽可能简单快速的上手,其次,需要了解的是百度的API的接口,搞定这个之后,最后,按照官方给出的demo,然后写
- 这篇文章是为了对网络模型的权重输出,可以用来转换成其他框架的模型。import tensorflow as tffrom tensorflo
- Ruby中有一个很方便的Struct类,用来实现结构体。这样就不用费力的去定义一个完整的类来仅仅用作访问属性。class Dog <
- 概述for循环是一个循环控制结构,可以执行指定次数的循环语法第一种for {} //无线循环第二种for 条件语
- 问题描述环境: CentOS6.5想在此环境下使用python3进行开发,但CentOS6.5默认的python环境是2.6.6版本。 之前
- 前言SVG可以算是目前最最火热的图像文件格式了,它的英文全称为Scalable Vector Graphics,意思为可缩放的矢量图形。它是
- 本文会把学习过程中遇到的一些小问题和解决办法放在这里,以便于大家能够更好地学习python。一、Python的异常处理因为想到自己不断尝试写
- //前一阵子以为学习需要就在自己的本本上装了个mysql数据库。今天想把结合jsp做的项目拿到学校机器上用用,但发现数据库数据怎么迁移,首先
- 本文实例讲述了JS实现向表格行添加新单元格的方法。分享给大家供大家参考。具体如下:下面的JS代码可以想表格中指定id的行插入新的单元格<
- 前言很多人都认为人脸识别是一项非常难以实现的工作,看到名字就害怕,然后心怀忐忑到网上一搜,看到网上N页的教程立马就放弃了。这些人里包括曾经的
- 分组条形图拓展一下问题复杂度:使用水平条形图展示每位员工前三个月的销售额。此时,我们需要将每位员工的销售额按月分组,分别绘制条形图进行展示。
- 第一种:拼接字符串,可以解决问题,但是为了避免sql注入,不建议这样写还是看看第二种:使用.format()函数,很多时候我都是使用这个函数
- SQL*Plus system/manager 2、显示当前连接用户 SQL> show user 3、查看系统拥有哪些用户 SQL&
- 一、导入excel文件和相关库import pandas;import matplotlib;from pandas.tools.plott
- 我们知道同步执行和异步执行的区别,为了更好的提高用户的体验,我们都会采用异步方式去处理一些问题,毕竟单线程的同步可能回造成卡死等现象,很不友
- 将dataframe中的NaN替换成希望的值import pandas as pddf1 = pd.DataFrame([{'col
- coalesce 函数可以接受多个参数,将会返回这些参数中第一个非NULL的值,若提供的参数全部为NULL,则返回NULLifnull 函数