MySQL-高级查询

查询处理

排序(默认不是按主键排序的)

order by 字段1[,字段2] [asc|desc]
  • 默认是升序排序
  • 也可以指定 select 列表中列的序号进行排序
  • 如果是多个字段,那么在上一个字段排序完的基础上排序下一个

限制数量

limit 行数(从第一行开始)
limit 开始行(从0开始),行数
  • 可以使用 limit 解决分页问题 

去重

select distinct 字段1[,字段2] from 表名;
  • 如果是多个字段,则表示查询这些字段不同时一样的数据 

组合查询

select 字段1[,字段2] from 表1
union
select 字段1[,字段2] from 表2;
  • 每个查询必须包含相同数量的列
  • 列必须拥有相似的数据类型
  • union 自动去除了重复行,如果不想去除重复行,可以使用 union all

练习

函数

数值函数

abs(x):返回 x 的绝对值

ceil(x):向上取整,返回大于等于 x 的最小整数值

floor(x):向下取整,返回小于等于 x 的最大整数值

round(x,y=0):四舍五入,将 x 四舍五入 y 位小数,y 不传返回整数,y 为负数时,保留 x 值到小数点左边 y 位

truncate(x,y):截断函数,返回被舍去至小数点后 y 位的数字 x,y 为负数时截断小数点左边 y 位

mod(x,y):返回 x 除以 y 的余数

rand():生成 0-1 的随机数

字符函数

concat(s1,s2, …. ):字符串连接,如果任何一个参数为 null,则返回值为 null

concat_ws(x,s1,s2,…):指定分隔符的字符连接函数,x 是连接分隔符,如果分隔符为 null,则结果为 null

lower(str):大写转小写

upper(str):小写转大写

length(str):字符串长度

Itrim(str):删除字符串左侧空格

rtrim(str):删除字符串右侧空格

trim(str):删除字符串两侧空格

substr(str,n,len):截取子字符串,字符串 str 从 n 的位置截取长度为 len 的字符串,如果 n 为负数,则子字符串的位置起始于字符串结尾的 n 个字符

left(str,n):返回字符串 str 的最左边 n 个字符

right(str,n):返回字符串 str 的最右边 n 个字符

replace(str,from_str,to_str):替换函数,字符串 str 中所有的字符串 from_str 均被 to_str 替换,然后返回这个字符串

format (x,n):将数字 x 格式化,并以四舍五入的方式保留小数点后 n 位,结果以字符串的形式返回。若 n 为 0,则返回结果不含小数部分

日期时间函数

curdate()/current_date():获取当前日期,YYYY-MM-DD 格式

curtime()/current_time():获取当前时间,HH:MM:SS 格式

week(date):返回 date 为一年中的第几周

now()/sysdate():获取当前日期和时间,YYYY-MM-DD HH:MM:SS 格式

date_add(date,interval expr type):执行日期的加运算,date 是一个 datetime 或 date 值,指定起始时间。expr 是时间间隔。type 为关键词,如 YEAR, MONTH, DAY, WEEK, HOUR 等。

datediff(date1,date2):计算两个日期之间的间隔天数

unix_timestamp(date):返回 date 的 UNIX 时间戳

from_unixtime(unix):返回 unix 时间戳的日期值

date_format(date,format):日期格式化,按 format 格式化 date 值

str_to_date(date,format):将字符串转换成 date 类型

聚合函数(分组函数)

avg(expression):返回某列的平均值

sum(expression):返回某列值的和

count(expression):返回某列的行数

max(expression):返回某列的最大值

min(expression):返回某列的最小值

  • 聚合函数会自动的忽略空值,不需要手动增加条件排除 NULL
  • 聚合函数不能作为 where 子句后的限制条件

流程函数

if(value,t,f):如果 value 为真返回 t,否则返回 f

ifnull(column,value):如果 column 为空返回 value,否则返回 column

在 SQL 语句当中若有 NULL 值参与数学运算,计算结果一定是 NULL,为了防止计算结果出现 NULL,建议先使用 ifnull 空值处理函数预先处理

练习

分组查询

创建分组

select 字段1[,字段2] from 表名 group by 字段1;
  • 根据一个或多个字段对结果集进行分组,在分组的字段上可以使用 count、sum、avg 等函数
  • 如果分组列中具有 NULL 值,则 NULL 将作为一个分组返回。如果列中有多行NULLL值,它们将分为一组
  • group by 子句必须出现在 where 子句之后,order by 子句之前

过滤分组

select 字段1[,字段2] from 表名 group by 字段1 having 限制条件;
  • having 必须和 group by 一起使用
  • having 非常类似于 where。唯一的差别是 where 过滤行,而 having 过滤分组。having 和 where 的区别也可以理解为,where 是分组前过滤,having 是分组后过滤

练习

正则表达式

regexp 操作符后面跟的就是正则表达式,正则表达式的作用是匹配文本,将一个模式(正则表达式)与一个文本串进行比较。

select * from emp where ename like "%s%";

select * from emp where ename regexp "s";

like 和 regexp 的区别:

  • like:匹配整个列,如果被匹配的文本仅在列值中出现(没有配合其他通配符),like将不会找到它
  • regexp:在列值内进行匹配,如果被匹配的文本在列值中出现,regexp 将会找到它,相应的行将被返回

匹配单个实例

|:表示匹配其中之一,使用 | 从功能上类似 or

[ ]:匹配字符之一,[ ]是另一种形式的 or 语句。[123] 为 [1|2|3] 的缩写

[-]:匹配范围,使用 - 来定义一个范围。例如:[1-3]、[a-z]

ll:转义字符,多数正则表达式使用单个反斜杠作为转义字符,但MySQL 要求两个反斜杠(MySQL 自己解释一个,正则表达式库解释另一个)

匹配字符类:存在找出你自己经常使用的数字、所有字母字符或所有数字字母字符等的匹配。为更方便工作,可以使用预定义的字符集,称为字符类

匹配多个实例

常用元字符

重复元字符(修饰前一个字符)

练习 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/981727.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

解决各大浏览器中http地址无权限调用麦克风摄像头问题(包括谷歌,Edge,360,火狐)后续会陆续补充

项目场景: 在各大浏览器中http地址调用电脑麦克风摄像头会没有权限,http协议无法使用多媒体设备 原因分析: 为了用户的隐私安全,http协议无法使用多媒体设备。因为像摄像头和麦克风属于可能涉及重大隐私问题的API,ge…

权限系统设计方案实践(Spring Security + RBAC 模型)

前言 权限系统设计基本上是所有项目中都会涉及的一个重要部分。通过权限系统,我们将对用户角色、功能模块访问进行限制,从而保证系统安全性。本文将介绍中大型项目中常用的一套权限系统设计方案,通过 SpringSecurity 安全管理框架&#xff0c…

数学软件Matlab下载|支持Win+Mac网盘资源分享

如大家所了解的,Matlab与Maple、Mathematica并称为三大数学软件。Matlab应用广泛,常被用于数据分析、无线通信、深度学习、图像处理与计算机视觉、信号处理、量化金融与风险管理、机器人,控制系统等领域。 Matlab将数值分析、矩阵计算、科学…

植物大战僵尸杂交版v3.3最新版本(附下载链接)

B站游戏作者潜艇伟伟迷于12月21日更新了植物大战僵尸杂交版3.3版本!!!,有b站账户的记得要给作者三连关注一下呀! 不多废话下载链接放上: 夸克网盘链接::https://pan.quark.cn/s/6f2a…

GPU、NPU与LPU:大语言模型(LLM)硬件加速器全面对比分析

引言:大语言模型计算基础设施的演进 随着大语言模型(LLM)的快速发展与广泛应用,高性能计算硬件已成为支撑LLM训练与推理的关键基础设施。目前市场上主要有三类处理器用于加速LLM相关任务:GPU(图形处理单元…

计算机网络数据传输探秘:包裹如何在数字世界旅行?

计算机网络数据传输探秘:包裹如何在数字世界旅行? 一、从快递网络看数据传输本质 想象你网购了一件商品: 打包:商家用纸箱包装,贴上地址标签(数据封装)运输:包裹经过网点→分拣中心→运输车(网络节点与链路)签收:快递员核对信息后交付(数据校验与接收)数据的网络…

VirtualBox虚拟机MacOS从Big Sur升级到Sequoia(失败)

VirtualBox虚拟机里安装好Big Sur版本,尝试升级到Sequoia,但是最终失败了。 软件升级 直接在系统偏好-软件更新里可以看到提示,提示可以升级到15版本Sequoia 点击同意,看能不能升级到Sequoia吧。升级前先用时光做了备份。 升级…

从数据到决策,永洪科技助力良信电器“智”领未来

在数字经济浪潮汹涌的时代,数字化转型已成为企业增强竞争力、实现可持续发展的必由之路。良信电器,作为国内知名的电气设备制造企业,积极响应时代号召,携手永洪科技,共同开启了数字化转型的新篇章。 上海良信电器股份有…

dify接入语音转文本模型后报错: microphone not authorized

遇到microphone not authorized莫慌,这是因为没有获取到设备的麦克风权限导致的 解决方法:(三种选其一,我实际使用的是第三种) 1.将http路径转换成https 2.接入的前端增加获取麦克风权限的功能 3.打开设备麦克风权限:(能快速验证…

华为hcia——Datacom实验指南——配置手工模式以太网链路聚合

什么是以太网链路聚合(Eth-trunk) 是一种将多个物理链路捆绑在一起,让设备以为是一条大链路,能够增加带宽,增加冗余度,提升可靠性,实现负载平衡。 传输方式有两种 基于数据流传输和基于数据包…

【随手笔记】利尔达NB模组

1.名称 移芯EC6263GPP 参数 指令备注 利尔达上电输出 [2025-03-04 10:24:21.379] I_AT_WAIT:i_len2 [2025-03-04 10:24:21.724] LI_AT_WAIT:i_len16 [2025-03-04 10:24:21.724] [2025-03-04 10:24:21.733] Lierda [2025-03-04 10:24:21.733] [2025-03-04 10:24:21.745] OK移…

RNN实现精神分裂症患者诊断(pytorch)

RNN理论知识 RNN(Recurrent Neural Network,循环神经网络) 是一种 专门用于处理序列数据(如时间序列、文本、语音、视频等)的神经网络。与普通的前馈神经网络(如 MLP、CNN)不同,RNN…

阿里万相,正式开源

大家好,我是小悟。 阿里万相正式开源啦。这就像是AI界突然开启了一扇通往宝藏的大门,而且还是免费向所有人敞开的那种。 你想想看,在这个科技飞速发展的时代,AI就像是拥有神奇魔法的魔法师,不断地给我们带来各种意想…

json介绍、python数据和json数据的相互转换

目录 一 json介绍 json是什么? 用处 Json 和 XML 对比 各语言对Json的支持情况 Json规范详解 二 python数据和json数据的相互转换 dumps() : 转换成json loads(): 转换成python数据 总结 一 json介绍 json是什么? 实质上是一条字符串 是一种…

250301-OpenWebUI配置DeepSeek-火山方舟+硅基流动+联网搜索+推理显示

A. 最终效果 B. 火山方舟配置(一定要点击添加) C. 硅基流动配置(最好要点击添加,否则会自动弹出所有模型) D. 联网搜索配置 E. 推理过程显示 默认是没有下面的推理过程的显示的 F. SearXNG配置 注意:此…

Linux中死锁问题的探讨

在 Linux 中,死锁(Deadlock) 是指多个进程或线程因为竞争资源而相互等待,导致所有相关进程或线程都无法继续执行的状态。死锁是一种严重的系统问题,会导致系统资源浪费,甚至系统崩溃。 死锁的定义 死锁是指…

【Go】Go viper 配置模块

1. 配置相关概念 在项目开发过程中,一旦涉及到与第三方中间件打交道就不可避免的需要填写一些配置信息,例如 MySQL 的连接信息、Redis 的连接信息。如果这些配置都采用硬编码的方式无疑是一种不优雅的做法,有以下缺陷: 不同环境…

ffmpeg源码编译支持cuda

1.安装cuda CUDA Toolkit 11.3 Downloads | NVIDIA Developer 在选择组件的时候,将CUDA中的Nsight VSE和Visual Studio Integration取消勾选 不然会安装失败 2.编译ffmpeg 把cuda编译宏定义开启,再编译avcodec 3.编译livavutil报错struct "Cuda…

DELL EMC Unity存储如何让控制器进入service mode和退出service mode

近期遇到好几个关于DELL EMC unity (VNXe)存储系统挂掉的案例,都是很后期才寻找支持到我们这里,然后再看问题,已经变得很复杂,几乎都是从一个相对简单的问题搞成了一锅粥甚至最后丢数据的情况。 为此&…

金蝶ERP星空对接流程

1.金蝶ERP星空OPENAPI地址: 金蝶云星空开放平台 2.下载金蝶云星空的对应SDK包 金蝶云星空开放平台 3.引入SDK流程步骤 引入Kingdee.CDP.WebApi.SDK 右键项目添加引用,在打开的引用管理器中选择浏览页签,点击浏览按钮,找到从官…