MySQL条件查询语句常用操作全面汇总

作者:羡羡ˇ 时间:2024-01-26 11:10:24 

顾名思义, 条件查询就是使用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条件查询语句常用操作全面汇总

来源:https://blog.csdn.net/xx12321q/article/details/123641200

标签:MySQL,条件查询
0
投稿

猜你喜欢

  • php简单实现批量上传图片的方法

    2023-11-20 13:55:53
  • Pytorch模型的保存/复用/迁移实现代码

    2023-12-12 10:37:43
  • Python Requests安装与简单运用

    2023-09-26 22:02:15
  • python数据分析之员工个人信息可视化

    2023-08-05 02:32:26
  • Python Django搭建文件下载服务器的实现

    2021-06-04 14:37:55
  • python通过re正则表达式切割中英文的操作

    2021-11-29 04:41:23
  • 详解Django-auth-ldap 配置方法

    2023-05-16 14:50:17
  • Python学习思维导图(必看篇)

    2021-03-19 02:13:13
  • mysql 5.7.12 winx64安装配置方法图文教程

    2024-01-28 15:53:26
  • python2和python3在处理字符串上的区别详解

    2021-10-07 03:29:31
  • 浅析Python requests 模块

    2023-04-28 17:45:18
  • python爬虫爬取网页数据并解析数据

    2022-03-03 06:25:02
  • python在CMD界面读取excel所有数据的示例

    2023-03-14 12:36:51
  • tensorflow 初始化未初始化的变量实例

    2021-05-16 13:47:54
  • PHP模板引擎Smarty中变量的使用方法示例

    2023-11-14 23:32:25
  • JavaScript中的onerror事件概述及使用

    2024-05-03 15:06:39
  • Python切片知识解析

    2022-06-07 06:31:58
  • Python3获取拉勾网招聘信息的方法实例

    2022-06-28 00:57:11
  • python 教程实现 turtle海龟绘图

    2022-03-19 10:45:35
  • CodeIgniter自定义控制器MY_Controller用法分析

    2024-05-05 09:17:36
  • asp之家 网络编程 m.aspxhome.com