当前位置: 首页 > news >正文

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 自己解释一个,正则表达式库解释另一个)

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

匹配多个实例

常用元字符

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

练习 

相关文章:

MySQL-高级查询

查询处理 排序(默认不是按主键排序的) order by 字段1[,字段2] [asc|desc] 默认是升序排序也可以指定 select 列表中列的序号进行排序如果是多个字段,那么在上一个字段排序完的基础上排序下一个 限制数量 limit 行数&#xff0…...

Netty笔记10:LengthFieldBasedFrameDecoder很简单,请看

Netty笔记1:线程模型 Netty笔记2:零拷贝 Netty笔记3:NIO编程 Netty笔记4:Epoll Netty笔记5:Netty开发实例 Netty笔记6:Netty组件 Netty笔记7:ChannelPromise通知处理 Netty笔记8:ByteBuf使用介绍 Netty笔记9:粘包半包 Netty笔记10:LengthFieldBasedFrameDec…...

linux 安装Mysql无法远程访问问题的排查

宝塔面板安装了mysql5.6后 只能本地访问 firewall 在使用宝塔面板(BT Panel)安装 MySQL 5.6 后,如果你发现 MySQL 只能本地访问,而不能从其他机器或服务访问,这通常是由于防火墙设置或 MySQL 配置的问题。以下是一些步…...

DeepSeek搭配Excel,制作自定义按钮,实现办公自动化!

今天跟大家分享下我们如何将DeepSeek生成的VBA代码,做成按钮,将其永久保存在我们的Excel表格中,下次遇到类似的问题,直接在Excel中点击按钮,就能10秒搞定,操作也非常的简单. 一、代码准备 代码可以直接询问…...

英文生物信息学技术社区Top10推荐:基本情况、评介和网页链接

英文生物信息学技术社区Top10推荐:基本情况、评介和网页链接 李升伟 一、思考与分析 生物信息学涉及生物数据分析和计算工具,所以相关的社区可能包括论坛、问答平台、资源库等等。 首先,我想到Biostars,这是一个比较知名的生物信…...

Lumerical INTERCONNECT 中的自相位调制 (SPM)

一、自相位调制的数学介绍 A.非线性薛定谔方程(NLSE): NLSE 是光学中的一个关键方程。它告诉我们光脉冲在具有非线性和色散特性的介质中的行为方式。该方程如下所示: i ∂A/∂z β2/2 ∂A/∂t γ|A|A 0 其中: - …...

每日定投40刀BTC(6)20250227 - 20250302

定投 得而复失 《得而复失》初得明珠喜欲狂,转瞬即逝心彷徨。得失之间悟真谛,淡看浮华守本常。...

leetcode 230. 二叉搜索树中第 K 小的元素

题目如下 数据范围 利用一个全局的计数器每过一个节点就加一,再利用中序遍历的特性(即遍历到的节点是从小到大的)通过代码 /*** Definition for a binary tree node.* struct TreeNode {* int val;* TreeNode *left;* TreeN…...

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

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

Metal学习笔记十一:贴图和材质

在上一章中,您设置了一个简单的 Phong 光照模型。近年来,研究人员在基于物理的渲染 (PBR) 方面取得了长足的进步。PBR 尝试准确表示真实世界的着色,真实世界中离开表面的光量小于表面接收的光量。在现实世界中&#xf…...

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

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

*算法中的数据结构(3)

持续更新 1.单调栈 它依旧是⼀个栈结构,只不过⾥⾯存储的数据是递增或者递减的。 2. 单调栈解决的问题 *寻找当前元素左侧,离它最近,并且⽐它⼤的元素在哪; • 寻找当前元素左侧,离它最近,并且⽐它⼩的元素…...

【大模型系列篇】国产开源大模型DeepSeek-V3技术报告解析

DeepSeek-V3技术报告 目录 DeepSeek-V3技术报告 1. 摘要 2. 引言 3. DeepSeek V3 架构 3.1 基础架构 3.1.1. 多头潜在注意力 3.1.2. DeepSeekMoE和无辅助损失的负载均衡 3.2 多令牌预测 4. 基础设施 4.1 计算集群 4.2 训练框架 4.2.1. DualPipe算法与计算通信协同优…...

MyBatisPlus搭建教程

简介 搭建MyBatisPlus2.x 构建项目 配置Maven 引入依赖 springboot <dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId></dependency><dependency><groupId>com.alibaba</groupId>&l…...

【商城实战(2)】商城架构设计:从底层逻辑到技术实现

【商城实战】专栏重磅来袭&#xff01;这是一份专为开发者与电商从业者打造的超详细指南。从项目基础搭建&#xff0c;运用 uniapp、Element Plus、SpringBoot 搭建商城框架&#xff0c;到用户、商品、订单等核心模块开发&#xff0c;再到性能优化、安全加固、多端适配&#xf…...

数据序列化协议 Protobuf 3 介绍(Go 语言)

Protobuf 3 入门 1. 什么是序列化&#xff1f; 1.1 概念 序列化&#xff08;Serialization 或 Marshalling&#xff09; 是指将数据结构或对象的状态转换成可存储或传输的格式。反向操作称为反序列化&#xff08;Deserialization 或 Unmarshalling&#xff09;&#xff0c;它…...

从芯片到光网络:解密平面光波导技术(PLC)核心优势

关键词&#xff1a;PLC、OFDR、光链路检测 平面光波导技术&#xff08;Planar Lightwave Circuit, PLC&#xff09;是一种基于平面波导结构的光学器件制造技术。它通过在平面基底上制作光波导&#xff0c;实现光信号的传输、分路、耦合、调制等功能。PLC技术的核心在于利用光波…...

5分钟快速搭建一个 SpringBoot3 + MyBatis-Plus 工程项目

环境 idea 2023.3.5 jdk 17 mysql 8 创建SpringBoot工程 创建SpringBoot工程&#xff0c;这里有两种方式可选&#xff0c;一种是使用idea提供的Spring Initializr自动创建&#xff0c;一种是通过Maven Archetype手动创建 自动创建SpringBoot工程 使用Spring Initializr创建…...

如何判断https使用了哪个版本的TLS?

互联网各领域资料分享专区(不定期更新): Sheet 正文 一、使用浏览器开发者工具(适合普通用户) 1. Google Chrome 打开目标网站(如 https://example.com)。点击地址栏左侧的 锁形图标。选择 「连接是安全的」 → 「证书信息」。在证书详情中,查看 「技术详细信息」 或 「…...

如何在 NocoBase 中实现 CRM 的线索转化

1. 引言 本教程将一步一步地引导您如何在 NocoBase 中实现 CRM 的商机转化&#xff08;Opportunity Conversion&#xff09;功能。我们将介绍如何创建所需的 collections&#xff08;数据表&#xff09;、配置数据管理页面、设计转化流程以及设置关联管理&#xff0c;从而帮助…...

Linux链表操作全解析

Linux C语言链表深度解析与实战技巧 一、链表基础概念与内核链表优势1.1 为什么使用链表&#xff1f;1.2 Linux 内核链表与用户态链表的区别 二、内核链表结构与宏解析常用宏/函数 三、内核链表的优点四、用户态链表示例五、双向循环链表在内核中的实现优势5.1 插入效率5.2 安全…...

Zustand 状态管理库:极简而强大的解决方案

Zustand 是一个轻量级、快速和可扩展的状态管理库&#xff0c;特别适合 React 应用。它以简洁的 API 和高效的性能解决了 Redux 等状态管理方案中的繁琐问题。 核心优势对比 基本使用指南 1. 创建 Store // store.js import create from zustandconst useStore create((set)…...

Cesium1.95中高性能加载1500个点

一、基本方式&#xff1a; 图标使用.png比.svg性能要好 <template><div id"cesiumContainer"></div><div class"toolbar"><button id"resetButton">重新生成点</button><span id"countDisplay&qu…...

【ROS】Nav2源码之nav2_behavior_tree-行为树节点列表

1、行为树节点分类 在 Nav2(Navigation2)的行为树框架中,行为树节点插件按照功能分为 Action(动作节点)、Condition(条件节点)、Control(控制节点) 和 Decorator(装饰节点) 四类。 1.1 动作节点 Action 执行具体的机器人操作或任务,直接与硬件、传感器或外部系统…...

稳定币的深度剖析与展望

一、引言 在当今数字化浪潮席卷全球的时代&#xff0c;加密货币作为一种新兴的金融现象&#xff0c;正以前所未有的速度改变着我们对传统货币和金融体系的认知。然而&#xff0c;加密货币市场的高度波动性却成为了其广泛应用和普及的一大障碍。在这样的背景下&#xff0c;稳定…...

Linux离线(zip方式)安装docker

目录 基础信息操作系统信息docker信息 安装实例安装步骤示例 遇到的问题问题1&#xff1a;修改默认工作路径启动失败问题2 找不到对应组 基础信息 操作系统信息 OS版本&#xff1a;CentOS 7 64位 内核版本&#xff1a;3.10.0 相关命令&#xff1a; uname -rcat /etc/os-rele…...

Java求职者面试指南:Spring、Spring Boot、MyBatis框架与计算机基础问题解析

Java求职者面试指南&#xff1a;Spring、Spring Boot、MyBatis框架与计算机基础问题解析 一、第一轮提问&#xff08;基础概念问题&#xff09; 1. 请解释Spring框架的核心容器是什么&#xff1f;它在Spring中起到什么作用&#xff1f; Spring框架的核心容器是IoC容器&#…...

人工智能(大型语言模型 LLMs)对不同学科的影响以及由此产生的新学习方式

今天是关于AI如何在教学中增强学生的学习体验&#xff0c;我把重要信息标红了。人文学科的价值被低估了 ⬇️ 转型与必要性 人工智能正在深刻地改变教育&#xff0c;这并非炒作&#xff0c;而是已经发生的巨大变革。教育机构和教育者不能忽视它&#xff0c;试图简单地禁止学生使…...

Caliper 配置文件解析:fisco-bcos.json

config.yaml 文件 config.yaml 是 Caliper 的主配置文件,通常包含以下内容: test:name: fisco-bcos-test # 测试名称description: Performance test of FISCO-BCOS # 测试描述workers:type: local # 工作进程类型number: 5 # 工作进程数量monitor:type: - docker- pro…...

macOS 终端智能代理检测

&#x1f9e0; 终端智能代理检测&#xff1a;自动判断是否需要设置代理访问 GitHub 在开发中&#xff0c;使用 GitHub 是非常常见的需求。但有时候我们会发现某些命令失败、插件无法更新&#xff0c;例如&#xff1a; fatal: unable to access https://github.com/ohmyzsh/oh…...