MySQL高阶SQL语句
文章目录
- MySQL高阶SQL语句
- MySQL常用查询
- 1、按关键字排序
- 1.1 语法
- 1.2 ASC和DESC
- 1.3 对数据表中信息进行排序
- 1.3.1 普通排序
- 1.3.2 结合where进行条件过滤
- 1.3.3 对多个字段进行排序
- 2、区间判断及查询不重复记录
- 2.1 and/or —— 且/或
- 2.1.1 普通查询
- 2.1.2 嵌套/多条件查询
- 2.2 distinct 查询不重复记录
- 3、对结果进行分组
- 3.1 普通分组
- 3.2 结合where语句分组
- 3.3 结合order by 语句分组排序
- 3.4 其他分组记录
- 4、限制结果条目
- 4.1 普通限制查询
- 4.2 结合order by 语句,限制查询并排序
- 5、设置别名
- 5.1 设置别名—alias
- 5.2 做为连接语句的操作符,创建新表
- 5.2.1 创建新表,将之前表中的记录复制到新表中
- 5.2.2 结合where语句,使用as创建新表
- 5.3 使用场景
- 6、通配符
- 6.1 查询name字段以x开头的记录
- 6.2 查询address字段以n结尾的记录
- 6.3 查询address字段hu__n中有两个字符的记录
- 6.4 查询address字段中包含g的记录
- 6.5 查询address字段qing后面3个字符的记录
- 6.6 通配符%与_可以结合使用
MySQL高阶SQL语句
MySQL常用查询
- 对 MSQL数据库的查询,除了基本的查询外,有时候需要对查询的结果集进行处理。例如只取 10条数据、对查询结果进行排序或分组等等
1、按关键字排序
- 类比于windows 任务管理器
- 使用 select 语句可以将需要的数据从 mysql 数据库中查询出来,如果对查询的结果进行排序,可以使用 order by 语句来对语句实现排序,并最终将排序后的结果返回给用户。这个语句的排序不光可以针对某一个字段,也可以针对多个字段。
1.1 语法
SELECT columnl,column2,.., FRoM table name ORDER BY columnl, column2, ...
1.2 ASC和DESC
ASC: 是按升序进行排序的,是默认的排序方式,即ASC可以省略。select 语句中如果没有指定具体的排序方式,则默认按 ASC方式进行排序。
DESC: 是按降序方式进行排列。当然 order by 前面也可以使用 where 语句对查询结果进一步过滤。
- 创建数据库数据表
create database xi;
#创建数据库use xi;
#切换到数据库create table ww(id int(4),name varchar(10) primary key not null,score decimal(5,2),address varchar(40),hobbid int(8));
#创建表desc ww;
#查看表的结构信息insert into ww values(1,'aaaa',80,'beijing',2);
insert into ww values(2,'bbbb',49,'miandian',2);
insert into ww values(3,'cccc',90,'qingdao',4);
insert into ww values(4,'dddd',60,'shanghai',5);
insert into ww values(5,'yyyy',98,'shanghai',3);
insert into ww values(6,'nnnn',30,'hangzhou',3);
insert into ww values(7,'mmmm',11,'nanjing',5);
insert into ww values(8,'xxxx',88,'hunan',5);
#表中插入数据select * from ww;
#查看数据表信息
1.3 对数据表中信息进行排序
1.3.1 普通排序
select name,score from ww order by score;
#选择name,score字段,按分数score进行排序,默认是升序select name,score from ww order by score desc;
#选择name,score字段,按分数score进行排序,降序
1.3.2 结合where进行条件过滤
- order by 结合where语句进行条件过滤
select name,score from ww where address='shanghai' order by score desc;
#选择name,score字段,对地址是shanghai的score分数进行降序排序
1.3.3 对多个字段进行排序
- order by 语句也可以使用多个字段来进行排序,当排序的第一个字段相同的记录有多条的情况下,这些多条的记录再按照第二个字段进行排序,字段之间使用英文逗号隔开,优先级是按先后顺序而定
select id,name,hobbid from ww order by hobbid desc,id desc;
#选择id,name,hobbid字段,先按hobbid进行降序排序,如果一致,则按id进行降序排序select id,name,hobbid from ww order by hobbid desc,id;
#选择id,name,hobbid字段,先按hobbid进行降序排序,如果一致,则按id进行升序排序
2、区间判断及查询不重复记录
2.1 and/or —— 且/或
2.1.1 普通查询
select * from ww where score > 70 and score <= 90;
#查看表中score大于60并且小于等于90的记录select * from ww where score < 60 or score > 90;
#查看表中score大于60或者小于等于90的记录
2.1.2 嵌套/多条件查询
select * from ww where score > 70 or (score > 80 and score < 90);
#查看表中score大于80或者(大于30并且小于70)的记录,括号里面的内容执行完是一个准确的数字
2.2 distinct 查询不重复记录
- 格式
select distinct 字段 from 表名;
select distinct hobbid from ww;
#去掉表中hobbid字段重复的部分
3、对结果进行分组
-
通过 sql 查询出来的结果,还可以对其进行分组,使用 group by 语句来实现 ,group by 通常都是结合聚合函数一起使用的
-
常用的聚合函数包括:计数(COUNT)、 求和(SUM)、求平均数(AVG)、最大值(MAX)、最小值(MIN),group by 分组的时候可以按一个或多个字段对结果进行分组处理。
3.1 普通分组
- 语法格式
select count(字段1),字段2 from 表名 group by 字段2;
select count(name),hobbid from ww group by hobbid;
#以hobbid字段的数进行分组,基于name计数,统计出相同hobbid的个数
3.2 结合where语句分组
select count(name),hobbid from ww where score >= 60 group by hobbid;
#以hobbid字段的数进行分组,基于name计数,统计出score大于等于60的相同hobbid的个数
3.3 结合order by 语句分组排序
select count(name),score,hobbid from ww where score >= 80 group by hobbid order by score desc;
#以hobbid字段的数进行分组,基于name计数,统计出score大于等于80的相同hobbid的个数,并按score降序排列
3.4 其他分组记录
select count(*) from ww;
#统计表中有多少行记录(此方法会进行全表扫描)select count(name) from ww;
#统计表中有多少行记录(使用字段查询,速度会比count(*)快,因为此方法只扫描name字段列)select sum(score) from ww;
#统计score的总和select max(score) from ww;
#查询表中score最大数select min(score) from ww;
#查询表中score最小数select avg(score) from ww;
#查询表中score平均数
4、限制结果条目
-
在使用mysql select 语句进行查询时,结果返回的是所有匹配的记录(行)。有时候仅需要返回第一行或者前几行,这时候就需要用到 limit 语句
-
limit 的第一个参数是位置偏移量(可选参数),是设置 mysql 从哪一行开始显示。 如果不设定第一个参数,将会从表中的第一条记录开始显示。需要注意的是,第一条记录的 位置偏移量是 0,第二条是 1,以此类推。第二个参数是设置返回记录行的最大数目。
4.1 普通限制查询
select * from ww limit 4;
#查询所有数据显示前5行(位置偏移量从0开始,以此类推,0表示字段行)select * from ww limit 6,1;
#查询所有数据从第7行开始,显示后面1行内容
4.2 结合order by 语句,限制查询并排序
select * from ww order by id limit 4;
#查询表中数据,按id字段进行升序排序,只显示前5行select * from ww order by id desc limit 3;
#显示表的最后3行内容
5、设置别名
- 在 mysql查询时,当表的名字比较长或者表内某些字段比较长时,为了方便书写或者多次使用相同的表,可以给字段列或表设置别名。使用的时候直接使用别名,简洁明了,增强可读性
- 其中 AS 语句是可选的。AS 之后的别名,主要是为表内的列或者表提供临时的名称,在查询过程中使用,库内实际的表名或字段名是不会被改变的
5.1 设置别名—alias
select name as 姓名,score 成绩,address 地址 from ww;
#设置name,score,address别名,alias是临时的,不会改变表的结构select w.name as 姓名,w.score 成绩,w.address 地址 from ww as w;
#多表同字段会显示区别select sum(score) 总分数 from ww;
#查询表中score的总和
5.2 做为连接语句的操作符,创建新表
- as创建一个新表并定义表结构,插入表数据(与原表相同)
- 但是”约束“没有被完全”复制“过来,如果原表设置了主键,那么附表的:default字段会默认设置一个0
5.2.1 创建新表,将之前表中的记录复制到新表中
create table xx01 as select * from ww;
#复制ww表信息,生成新的数据表xx01select * from xx01;
#查看数据表信息
5.2.2 结合where语句,使用as创建新表
create table xx02 as select * from ww where score >= 80;
#筛选ww表中score大于等于80的分数信息,生成新的数据表xx02
- as会复制原表的表结构和数据,但是约束条件不会被复制,比如原表设置了主键,但新表中不会有主键
5.3 使用场景
- 对复杂的表进行查询的时候,别名可以缩短查询语句的长度
- 多表相连查询的时候(通俗易懂、减短sql语句)
6、通配符
-
通配符主要用于替换字符串中的部分字符,通过部分字符的匹配将相关结果查询出来
-
通配符主要跟like一起使用,并协同where语句共同完成查询任务
%:表示零个、一个或者多个字符_:表示单个字符
6.1 查询name字段以x开头的记录
select id,name from ww where name like 'x%';
#查询表中name字段以x开头的记录
6.2 查询address字段以n结尾的记录
select * from ww where address like '%n';
#查询表中address字段以n结尾的记录
6.3 查询address字段hu__n中有两个字符的记录
- 常用于模糊查询
select * from ww where address like 'hu__n';
#查询表中address字段hu__n中有两个字符的记录
6.4 查询address字段中包含g的记录
select * from ww where address like '%g%';
#查询表中address字段中包含g的记录
6.5 查询address字段qing后面3个字符的记录
select * from ww where address like 'qing___';
#查询表中address字段qing后面3个字符的记录
6.6 通配符%与_可以结合使用
select * from ww where address like 'h%_';
#查询表中address字段以“h”开头的记录
相关文章:

MySQL高阶SQL语句
文章目录 MySQL高阶SQL语句MySQL常用查询1、按关键字排序1.1 语法1.2 ASC和DESC1.3 对数据表中信息进行排序1.3.1 普通排序1.3.2 结合where进行条件过滤1.3.3 对多个字段进行排序 2、区间判断及查询不重复记录2.1 and/or —— 且/或2.1.1 普通查询2.1.2 嵌套/多条件查询 2.2 di…...

聊聊CSS
css 的介绍 学习目标 能够知道css的作用 1. css 的定义 css(Cascading Style Sheet)层叠样式表,它是用来美化页面的一种语言。 没有使用css的效果图 使用css的效果图 2. css 的作用 美化界面, 比如: 设置标签文字大小、颜色、字体加粗等样式。 控制页面布局, 比如…...

C语言 青蛙跳台阶问题
目录 编辑 1.问题描述 2.问题分析 3.全部代码 4.结语 1.问题描述 一只青蛙可以一次跳一级台阶,也可以一次跳两级台阶,如果青蛙要跳上n级台阶有多少种跳法? 2.问题分析 当台阶只有一级时,只能跳一级,所以只有一…...

【Django开发】前后端分离美多商城项目第3篇:用户部分,1. 后端接口设计:【附代码文档】
美多商城项目4.0文档完整教程(附代码资料)主要内容讲述:美多商城,项目准备1.B2B–企业对企业,2.C2C–个人对个人,3.B2C–企业对个人,4.C2B–个人对企业。项目准备,配置1. 修改settings/dev.py 文件中的路径信息,2. INS…...
DHCP snooping、DHCP安全及威胁防范
DHCP snooping、DHCP安全及威胁防范 [SW1]display dhcp snooping user-bind all,查看DHCP snooping表项。 DHCP snooping: 表项是通过服务器发送给客户端的ACK报文生成的。 只能在交换机上开启,路由器不支持,并且建议在接入交…...

用eclipse创建Web项目,通过Servlet实现Web访问的功能。
要使用Eclipse和Tomcat 10创建一个简单的Web项目,并通过Servlet实现Web访问功能,你需要遵循以下详细步骤: 1. 安装和配置Eclipse和Tomcat 10 确保你已经安装了Eclipse IDE for Java EE Developers和Tomcat 10。如果还没有安装,请…...

tools.jar下载 Unable to create schema compiler
网上查找了一堆下载tools.jar的都是忽悠人的,在这我就直接告诉大家,直接在电脑的JDK安装路径下的lib文件下复制就可以了。如果没有的话可以diss我我发给你...
【0278】checkpointer 共享内存(CheckpointerShmem)初始化(3)
0. 关于checkpointer 检查指针是Postgres 9.2的新特性。它处理所有检查点。自上次检查点以来,检查点在经过一定时间后自动分发,并且还可以发出信号来执行请求的检查点。(GUC参数要求每隔这么多WAL段就有一个检查点,这是通过后端在填充WAL段时发出信号来实现的; checkpointer…...

算法打卡day29|贪心算法篇03|Leetcode 1005.K次取反后最大化的数组和、134. 加油站、135. 分发糖果
算法题 Leetcode 1005.K次取反后最大化的数组和 题目链接:1005.K次取反后最大化的数组和 大佬视频讲解:K次取反后最大化的数组和视频讲解 个人思路 思路清晰,因为是取反当然是取越小的负数越好,那么先按绝对值排序。如果是负数就取反&#…...

【hexo博客6】自定义域名 购买、配置、更新部署
【hexo博客6】自定义域名 购买、配置、更新部署 写在最前面自定义域名购买域名DNS配置Github 配置 更新部署博客 🌈你好呀!我是 是Yu欸 🌌 2024每日百字篆刻时光,感谢你的陪伴与支持 ~ 🚀 欢迎一起踏上探险之旅&#…...
Django使用pyJwt进行token校验
1.登录成功后返回token,这里使用authenticate进行校验是否存在该用户 def login(request):try:data json.loads(request.body)username data.get(username)password data.get(password)if not all([username, password]):return to_response(status400, msg参数…...
❤️算法笔记❤️-(每日一刷-26、删除有序数组的重复项)
文章目录 题目思路解法 题目 给你一个 非严格递增排列 的数组 nums ,请你** 原地** 删除重复出现的元素,使每个元素 只出现一次 ,返回删除后数组的新长度。元素的 相对顺序 应该保持 一致 。然后返回 nums 中唯一元素的个数。 考虑 nums 的唯…...

银河麒麟系统安装设备类型选择lvm简单模式之后,数据写入导致失败导致系统重启无法正常加载
银河麒麟系统安装设备类型选择lvm简单模式之后,数据写入导致失败导致系统重启无法正常加载 一 系统环境1.1 系统版本信息1.2 通过镜像安装的过程中选择设备类型选择的是lvm简单模式 二 问题描述三 问题修复过程3.1 挂载ISO镜像,引导到字符终端界面3.2 修…...

Mybatis-核心配置文件 / Mybatis增删改查
1. 核心配置文件 1.1. 概述 核心配置文件是MyBatis框架中用于集中定义全局配置信息的XML文件,其内部包含了一系列预设标签,用于设置数据库连接、对象映射、类型处理等关键参数。这些标签遵循特定的排列顺序,尽管并非所有标签都是强制性的&a…...
Nginx(面试)
NGINX 速记问答 Q 什么是Nginx?它的主要特点是什么? A Nginx是一个高性能的开源Web服务器和反向代理服务器。它以高并发、低内存消耗和高稳定性著称。 Q Nginx与Apache Web服务器有什么区别? A Nginx与Apache相比,更适用于处…...

net::ERR_SSL_PROTOCOL_ERROR
小程序 发起网络请求 解决: 如果还没有申请SSL证书,那就直接把https请求改为http 测试可以用 上线不推荐...
BaseDao封装增删改查(超详解)
Hi i,m JinXiang ⭐ 前言 ⭐ 本篇文章主要介绍对数据库中表中的数据进行增改删查询,封装一个工具类(BaseDao)的详细使用以及部分理论知识 🍉欢迎点赞 👍 收藏 ⭐留言评论 📝私信必回哟😁 &…...
【Python操作基础】——元组
🍉CSDN小墨&晓末:https://blog.csdn.net/jd1813346972 个人介绍: 研一|统计学|干货分享 擅长Python、Matlab、R等主流编程软件 累计十余项国家级比赛奖项,参与研究经费10w、40w级横向 文…...

光伏投融资该如何计算?
光伏投融资是光伏产业发展过程中的重要环节,其计算涉及到多个方面,包括项目规模、预期收益、成本分析、风险评估等。合理的投融资计算能够为光伏项目的实施提供资金保障,同时也能够降低投资风险,提高项目的经济效益。 首先&#x…...
【更新中】Leetcode中遇到的最短路径算法
dijsktra算法模板: def dijkstra(x):#x表示出发点dis[inf]*n #dis记录从x出发到各个点的最短距离,初始化为infdis[x]0 #源点到自己的距离为0vis[False]*n #检查各个点是否访问过for _ in range(n-1): #检查除了源点的其他n-1个点,更新dis…...

华为云AI开发平台ModelArts
华为云ModelArts:重塑AI开发流程的“智能引擎”与“创新加速器”! 在人工智能浪潮席卷全球的2025年,企业拥抱AI的意愿空前高涨,但技术门槛高、流程复杂、资源投入巨大的现实,却让许多创新构想止步于实验室。数据科学家…...

3.3.1_1 检错编码(奇偶校验码)
从这节课开始,我们会探讨数据链路层的差错控制功能,差错控制功能的主要目标是要发现并且解决一个帧内部的位错误,我们需要使用特殊的编码技术去发现帧内部的位错误,当我们发现位错误之后,通常来说有两种解决方案。第一…...
在 Nginx Stream 层“改写”MQTT ngx_stream_mqtt_filter_module
1、为什么要修改 CONNECT 报文? 多租户隔离:自动为接入设备追加租户前缀,后端按 ClientID 拆分队列。零代码鉴权:将入站用户名替换为 OAuth Access-Token,后端 Broker 统一校验。灰度发布:根据 IP/地理位写…...

Psychopy音频的使用
Psychopy音频的使用 本文主要解决以下问题: 指定音频引擎与设备;播放音频文件 本文所使用的环境: Python3.10 numpy2.2.6 psychopy2025.1.1 psychtoolbox3.0.19.14 一、音频配置 Psychopy文档链接为Sound - for audio playback — Psy…...
Java毕业设计:WML信息查询与后端信息发布系统开发
JAVAWML信息查询与后端信息发布系统实现 一、系统概述 本系统基于Java和WML(无线标记语言)技术开发,实现了移动设备上的信息查询与后端信息发布功能。系统采用B/S架构,服务器端使用Java Servlet处理请求,数据库采用MySQL存储信息࿰…...

力扣热题100 k个一组反转链表题解
题目: 代码: func reverseKGroup(head *ListNode, k int) *ListNode {cur : headfor i : 0; i < k; i {if cur nil {return head}cur cur.Next}newHead : reverse(head, cur)head.Next reverseKGroup(cur, k)return newHead }func reverse(start, end *ListNode) *ListN…...
站群服务器的应用场景都有哪些?
站群服务器主要是为了多个网站的托管和管理所设计的,可以通过集中管理和高效资源的分配,来支持多个独立的网站同时运行,让每一个网站都可以分配到独立的IP地址,避免出现IP关联的风险,用户还可以通过控制面板进行管理功…...

C++ 设计模式 《小明的奶茶加料风波》
👨🎓 模式名称:装饰器模式(Decorator Pattern) 👦 小明最近上线了校园奶茶配送功能,业务火爆,大家都在加料: 有的同学要加波霸 🟤,有的要加椰果…...
高防服务器价格高原因分析
高防服务器的价格较高,主要是由于其特殊的防御机制、硬件配置、运营维护等多方面的综合成本。以下从技术、资源和服务三个维度详细解析高防服务器昂贵的原因: 一、硬件与技术投入 大带宽需求 DDoS攻击通过占用大量带宽资源瘫痪目标服务器,因此…...

解析两阶段提交与三阶段提交的核心差异及MySQL实现方案
引言 在分布式系统的事务处理中,如何保障跨节点数据操作的一致性始终是核心挑战。经典的两阶段提交协议(2PC)通过准备阶段与提交阶段的协调机制,以同步决策模式确保事务原子性。其改进版本三阶段提交协议(3PC…...