Mysql高阶语句 (一)

news2024/11/15 13:37:22

一、常用查询
(增、删、改、查)
对 MySQL 数据库的查询,除了基本的查询外,有时候需要对查询的结果集进行处理。 例如只取 10 条数据、对查询结果进行排序或分组等等
1、按关键字排序
PS:类比于windows 任务管理器
使用 SELECT 语句可以将需要的数据从 MySQL 数据库中查询出来,如果对查询的结果进行排序,可以使用 ORDER BY 语句来对语句实现排序,并最终将排序后的结果返回给用户。这个语句的排序不光可以针对某一个字段,也可以针对多个字段

(1)语法
SELECT column1, column2, … FROM table_name ORDER BY column1, column2, …

ASC|DESC;
ASC 是按照升序进行排序的,是默认的排序方式,即 ASC 可以省略。SELECT 语句中如果没有指定具体的排序方式,则默认按 ASC方式进行排序。
DESC 是按降序方式进 行排列。当然 ORDER BY 前面也可以使用 WHERE 子句对查询结果进一步过滤。

准备工作:
数据库有一张test表,记录了学生的id,姓名,分数,地址和爱好

create table test (id int,name varchar(10) primary key not null ,score decimal(5,2),address varchar(20),hobbid int(5));

insert into test values(1,'liuyi',80,'beijing',2);
insert into test values(2,'wangwu',90,'shengzheng',2);
insert into test values(3,'lisi',60,'shanghai',4);
insert into test values(4,'tianqi',99,'hangzhou',5);
insert into test values(5,'jiaoshou',98,'laowo',3);
insert into test values(6,'hanmeimei',10,'nanjing',3);
insert into test values(7,'lilei',11,'nanjing',5);
 select * from test;

在这里插入图片描述
按分数排序,默认不指定是升序(asc)排列:

select id,name,score from test order by score;

在这里插入图片描述

按照分数按降序排列:

 select id,name,score from test order by score desc;

order by还可以结合where进行条件过滤,筛选地址是南京的学生按分数降序排列:

select name,score from test where address=‘nanjing’ order by score desc;
在这里插入图片描述
ORDER BY 语句也可以使用多个字段来进行排序,当排序的第一个字段相同的记录有多条的情况下,这些多条的记录再按照第二个字段进行排序,ORDER BY 后面跟多个字段时,字段之间使用英文逗号隔开,优先级是按先后顺序而定
但order by 之后的第一个参数只有在出现相同值时,第二个字段才有意义

① 查询学生信息先按兴趣id降序排列,相同分数的,id也按降序排列:

select id,name,hobbid from test order by hobbid desc,id desc;

在这里插入图片描述
② 查询学生信息先按兴趣id(hobbid)降序排列,相同分数的,id按升序排列

 select id,name,hobbid from test order by hobbid desc,id;

在这里插入图片描述

2、区间判断及查询不重复记录
① AND/OR ——且/或
查询test表中分数大于70并且分数小于等于90的数据:

select * from tset where score >70 and score <=90;

在这里插入图片描述
查询test表中分数大于70或者分数小于等于90的数据

 select * from test where score >70 or score <=90;

在这里插入图片描述
嵌套/多条件
查询test表中分数大于70的或者(分数大于75并且分数小于90)的数据:(先执行大于70的数据,后有大于75或者小于90,所以数据中会有大于90的数据)
select * from test where score >70 or (score >75 and score <90);
在这里插入图片描述
添加:
② distinct 查询不重复记录
语法:

select distinct 字段 from 表名﹔

查询test表中hobbid 不重复的数据

 select distinct hobbid from test;

在这里插入图片描述
2、对结果进行分组
通过 SQL 查询出来的结果,还可以对其进行分组,使用 GROUP BY 语句来实现 ,GROUP BY 通常都是结合聚合函数一起使用的,常用的聚合函数包括:计数(COUNT)、 求和(SUM)、求平均数(AVG)、最大值(MAX)、最小值(MIN),GROUP BY 分组的时候可以按一个或多个字段对结果进行分组处理。

(1)语法

SELECT column_name, aggregate_function(column_name)FROM table_name WHERE column_name operator value GROUP BY column_name;
#SELECT column_name, aggregate_function(column_name): 选择要查询的列,并对这些列应用聚合函数,例如SUM、AVG、COUNT等。
FROM table_name: 指定要查询的表名。
WHERE column_name operator value: 指定要应用筛选条件的列、运算符和值。例如,可以使用等于运算符(=)、大于运算符(>)等。
GROUP BY column_name: 指定要按照哪个列进行分组。

按hobbid相同的分组,计算相同分数的学生个数(基于name个数进行计数):

select count(name),hobbid from test group by hobbid;

在这里插入图片描述

结合where语句,筛选分数大于等于80的分组,并按照hobbid 进行分组 计算学生个数:

select count(name),hobbid,score from test where score>=80 group by hobbid;

在这里插入图片描述
全班同学成绩表
count(name):计数
score 分数 :
score>=80 :优秀
score >=60 and score <80 :优-

结合order by把计算出的学生个数按升序排列:

 select count(name),score,hobbid from test where score>=80 group by hobbid order by count(name) asc;

在这里插入图片描述
3、限制结果条目(limit⭐⭐⭐)
limit 限制输出的结果记录
在使用 MySQL SELECT 语句进行查询时,结果集返回的是所有匹配的记录(行)。有时候仅 需要返回第一行或者前几行,这时候就需要用到 LIMIT 子句

(1)语法

SELECT column1, column2, ... FROM table_name LIMIT [offset,] number
#
SELECT column1, column2, ...: 选择要查询的列。
FROM table_name: 指定要查询的表名。
LIMIT [offset,] number: 指定要返回的行数。如果指定了offset,则从该行开始返回结果。如果未指定offset,则从第一行开始返回结果。number指定要返回的行数。

LIMIT 的第一个参数是位置偏移量(可选参数),是设置 MySQL 从哪一行开始显示。 如果不设定第一个参数,将会从表中的第一条记录开始显示。需要注意的是,第一条记录的 位置偏移量是 0,第二条是 1,以此类推。第二个参数是设置返回记录行的最大数目。

查询test表中所有信息显示前4行记录:

select * from test limit 3;
在这里插入图片描述
从第4行开始,往后显示3行内容:

 select * from test limit 3,3;

在这里插入图片描述
结合order by语句,按id的大小升序排列显示前三行:

 select id,name from test order by id limit 3;

在这里插入图片描述

#基础select 小的升阶 怎么输出最后三行⭐⭐

 select id,name from test order by id desc limit 3;

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

成都瀚网科技有限公司:抖店精选联盟企业是什么?

我很高兴为您提供有关如何加入抖店特色联盟企业以及加入的好处的信息。在这篇文章中&#xff0c;我将为大家详细介绍如何申请加入抖店精选的关联公司&#xff0c;并讲解加入的好处。希望能够帮助您更好地了解和使用抖店精选联盟企业平台。 1、如何加入抖店精选联盟企业&#xf…

亚马逊鲲鹏系统是怎么操作测评的

亚马逊鲲鹏系统可以注册亚马逊买家号、养号、下单留评等&#xff0c;是一款功能比较齐全的测评软件&#xff0c;具体操作如下&#xff1a; 首先我们需要先准备好买家账号&#xff0c;账号可以直接去购买已经注册好了的账号&#xff0c;也可以准备好账号所需要的一些邮箱、ip、…

做邮件营销前,这些注意事项一定要知晓

邮件营销是一种有效的网络营销手段&#xff0c;可以帮助企业与潜在客户建立长期联系&#xff0c;促进销售和品牌认知。相比于其他的营销手段&#xff0c;邮件营销针对性更强&#xff0c;可以根据不同类型用户所具有的特征和属性进行营销。其次&#xff0c;邮件营销的覆盖范围较…

EPICS asyn连接测试例程

1) 用makeBaseApp.pl新建一个EPICS IOC的目录结构&#xff1a; rootorangepi5:/usr/local/EPICS/program/testConnect# ls configure iocBoot Makefile testConnectApp2) 编辑configure目录下的RELEASE文件&#xff0c;定义asyn模块所在的路径&#xff1a; ... SUPPORT/us…

Java“牵手”1688拍立淘接口数据,图片搜索1688商品,图片识别商品接口,1688API申请指南

1688商城是一个网上购物平台&#xff0c;售卖各类商品&#xff0c;包括服装、鞋类、家居用品、美妆产品、电子产品等。要获取1688商品列表和商品详情页面数据&#xff0c;您可以通过开放平台的接口或者直接访问1688商城的网页来获取商品详情信息。以下是两种常用方法的介绍&…

【Java 动态数据统计图】动态数据统计思路案例(动态,排序,动态数组(重点推荐))七(129)

需求&#xff1a;前端根据后端的返回数据&#xff1a;画统计图&#xff1b; 说明&#xff1a; 1.X轴为地域&#xff0c;Y轴为地域出现的次数&#xff1b; 2. 动态展示&#xff08;有地域展示&#xff0c;没有不展示&#xff0c;且高低排序&#xff09; Demo案例&#xff1a; …

使用卷积操作实现因子分解机

本文将介绍如何使用卷积操作实现因子分解机器。卷积网络因其局部性和权值共享的归纳偏差而在计算机视觉领域获得了广泛的成功和应用。卷积网络可以用来捕获形状的堆叠分类特征(B, num_cat, embedding_size)和形状的堆叠特征(B, num_features, embedding_size)之间的特征交互。 …

【C++】C++11的新特性(上)

引入 C11作为C标准的一个重要版本&#xff0c;引入了许多令人振奋的新特性&#xff0c;极大地丰富了这门编程语言的功能和表达能力。本章将为您介绍C11的一些主要变化和改进&#xff0c;为接下来的章节铺垫。 文章目录 引入 一、列表初始化 1、1 {} 初始化 1、2 std::initiali…

问道管理:macd参数改良设置?

MACD目标是一种广泛应用的技能剖析目标&#xff0c;其特色在于能够同时反映趋势和动量改变。可是&#xff0c;很多买卖者感到困惑的是&#xff0c;怎么设置MACD的参数才能更好地指导买卖。 1. MACD目标参数解析 MACD目标是依据两个移动平均线的穿插来判别商场的趋势与动量改变…

解压jar包并导入库环境

背景 因为各种历史原因&#xff0c;当初的maven依赖环境已下载不了了&#xff0c;所以需要从生产环境的jar包里&#xff0c;获取库环境来本地运行。 但是网上很多方法都是用mvn install命令&#xff0c;一个个jar包导入的&#xff0c;不符合我的需求&#xff08;需要导入280多…

Linux 虚拟机同步时间crontab以及crond详解

目录 一 Linux 虚拟机同步时间设置 1. 检查是否安装cron服务&#xff08;即时间同步器&#xff09; 2. 下载时间同步器 3. 编辑crontab 内容 4. 同步更新电脑网络时间 5.设置 reload 6. 查看 crond 状态 二 crond 详解 1. 启动/关闭cron服务 2. crontab命令格式 3. …

VK1616是LED显示控制驱动电路/LED驱动IC、数显驱动芯片、数码管驱动芯片

产品品牌&#xff1a;永嘉微电/VINKA 产品型号&#xff1a;VK1616 封装形式&#xff1a;SOP16 产品年份&#xff1a;新年份 概述&#xff1a;VK1616是一种数码管或点阵LED驱动控制专用芯片&#xff0c;内部集成有3线串行接口、数据锁存器、LED 驱动等电路。SEG脚接LED阳极&a…

mysql存储过程之遍历设置表中某些字段值

缘起 ​ mysql数据库中有用到分表&#xff0c;大概300张表&#xff0c;都是以geo_data_xxxxxx来命名&#xff0c;之前测试过程中&#xff0c;有给300张表中的一个字段设置过值&#xff0c;但是想重新生成一遍数据。那么后面是做了一个数据清洗&#xff0c;给300张表is_turnout…

Prometheus监控(三)架构

文章目录 Prometheus架构图Prometheus生态圈组件Prometheus Serverclient librariesPushgatewayexporterAlartmanager Prometheus架构理解存储计算层采集层应用层 Prometheus架构图 Prometheus生态圈组件 Prometheus Server 主服务器&#xff0c;负责收集和存储时间序列数据 …

SAP_ABAP_BDC录屏案例

SAP ABAP顾问能力模型梳理_企业数字化建设者的博客-CSDN博客SAP Abap顾问能力模型https://blog.csdn.net/java_zhong1990/article/details/132469977 一、实施步骤 1.1 SHDB --> 新建记录-->输入录制的tcode :BP,-->执行录屏操作-->录制结果封装成函数 1.2 SHDB …

大数据到底是好是坏?_光点科技

近年来&#xff0c;随着科技的不断发展和互联网的普及&#xff0c;大数据已经成为一个备受关注的话题。它带来了许多机遇和挑战&#xff0c;引发了人们对于其是好是坏的争议。大数据究竟是一把双刃剑&#xff0c;需要我们从多个角度来审视。 大数据的好处无疑是显而易见的。首先…

GNU make系列之写Makefile文件(1)

一.欢迎来到我的酒馆 在本章节介绍如何写Makefile文件。 目录 一.欢迎来到我的酒馆二.Makefile包含了什么三.引入其它的Makefile文件四.MAKEFILES变量 二.Makefile包含了什么 2.1 Makefile包含了5种类型&#xff1a;显式的规则&#xff0c;隐式的规则&#xff0c;变量的定义&am…

There is already ‘xxxController‘ bean method的解决方法

报这个错的原因是因为你controller里的RequestMapping中的路径有重复&#xff01;

嵌入式linux设备网口带宽-测试方法

iperf是一个基于Client/Server的网络性能测试工具&#xff0c;可以测试TCP、UDP和SCTP带宽质量&#xff0c;能够提供网络吞吐率信息&#xff0c;以及震动、丢包率&#xff0c;最大段和最大传输单元大小等统计信息&#xff0c;帮助我们测试网络性能&#xff0c;定位网络瓶颈。其…

keil5 报错no target connected

场景&#xff1a;用ST_Link V2 在 keil5 中下载stm32程序 原因&#xff1a;线路连接错误 正确连接 注意&#xff1a;江科大stm32和stlink的接线&#xff0c;一定要对齐&#xff0c;我买的一个不是按照顺序接线的&#xff0c;需要仔细查看