【MySQL】基本查询(二)
文章目录
- 一. 结果排序
- 二. 筛选分页结果
- 三. Update
- 四. Delete
- 五. 截断表
- 六. 插入查询结果
- 结束语
操作如下表
//创建表结构
mysql> create table exam_result(-> id int unsigned primary key auto_increment,-> name varchar(20) not null comment '同学姓名',-> chinese float default 0.0 comment '语文成绩',-> math float default 0.0 comment '数学成绩',-> english float default 0.0 comment '英语成绩'-> );//插入测试数据
INSERT INTO exam_result (name, chinese, math, english) VALUES
('唐三藏', 67, 98, 56),
('孙悟空', 87, 78, 77),
('猪悟能', 88, 98, 90),
('曹孟德', 82, 84, 67),
('刘玄德', 55, 85, 45),
('孙权', 70, 73, 78),
('宋公明', 75, 65, 30);
一. 结果排序
语法:
ASC 升序(从小到大)
DESX 降序(从大到小)
排序默认为ASC 升序
select ... from table_name order by 属性 [ASC 或者 DESC]
注意:没有order by 子句的查询,返回的顺序是未定义的。
NULL值比任何值都小
查询同学及数学成绩,按数学成绩升序显示
mysql> select name,math from exam_result order by math;
+-----------+------+
| name | math |
+-----------+------+
| 宋公明 | 65 |
| 孙权 | 73 |
| 孙悟空 | 78 |
| 曹孟德 | 84 |
| 刘玄德 | 85 |
| 唐三藏 | 98 |
| 猪悟能 | 98 |
+-----------+------+
查询同学各门成绩,依次按 数学降序,英语升序,语文升序的方式显示
多字段排序,排序优先级随书写顺序
mysql> select name,math,english,chinese from exam_result order by math desc,english asc,math asc;
+-----------+------+---------+---------+
| name | math | english | chinese |
+-----------+------+---------+---------+
| 唐三藏 | 98 | 56 | 67 |
| 猪悟能 | 98 | 90 | 88 |
| 刘玄德 | 85 | 45 | 55 |
| 曹孟德 | 84 | 67 | 82 |
| 孙悟空 | 78 | 77 | 87 |
| 孙权 | 73 | 78 | 70 |
| 宋公明 | 65 | 30 | 75 |
+-----------+------+---------+---------+
查询同学及总分,由高到低
order by 子句可以使用别名
mysql> select name,chinese+math+english as total from exam_result order by total desc;
+-----------+-------+
| name | total |
+-----------+-------+
| 猪悟能 | 276 |
| 孙悟空 | 242 |
| 曹孟德 | 233 |
| 唐三藏 | 221 |
| 孙权 | 221 |
| 刘玄德 | 185 |
| 宋公明 | 170 |
+-----------+-------+
查询姓孙的同学或者姓曹的同学的数学成绩,结果按数学成绩由高到低显示
mysql> select name,math from exam_result where name like '孙%' or name like '曹%' order by math desc;
+-----------+------+
| name | math |
+-----------+------+
| 曹孟德 | 84 |
| 孙悟空 | 78 |
| 孙权 | 73 |
+-----------+------+
二. 筛选分页结果
行的起始下标是0
从0开始,筛选n条结果(默认从0开始)
select ... from table_name ... limit n
从s开始,筛选n条结果
select ... from table_name ... limit s,n
从s开始,筛选n条结果(建议使用)
select ... from table_name ... limit n offset s
注意:对未知表进行查询时,最好加一条limit 1,避免因为表中数据过大,查询全表数据导致数据库卡死
按id进行分页,每页3条记录,分别显示第1,2,3页
//第一页
mysql> select id,name,math,english,chinese from exam_result
order by id limit 3 offset 0;
+----+-----------+------+---------+---------+
| id | name | math | english | chinese |
+----+-----------+------+---------+---------+
| 1 | 唐三藏 | 98 | 56 | 67 |
| 2 | 孙悟空 | 78 | 77 | 87 |
| 3 | 猪悟能 | 98 | 90 | 88 |
+----+-----------+------+---------+---------+
//第二页
mysql> select id,name,math,english,chinese from exam_result
order by id limit 3 offset 3;
+----+-----------+------+---------+---------+
| id | name | math | english | chinese |
+----+-----------+------+---------+---------+
| 4 | 曹孟德 | 84 | 67 | 82 |
| 5 | 刘玄德 | 85 | 45 | 55 |
| 6 | 孙权 | 73 | 78 | 70 |
+----+-----------+------+---------+---------+
//第三页
mysql> select id,name,math,english,chinese from exam_result
order by id limit 3 offset 6;
+----+-----------+------+---------+---------+
| id | name | math | english | chinese |
+----+-----------+------+---------+---------+
| 7 | 宋公明 | 65 | 30 | 75 |
+----+-----------+------+---------+---------+
三. Update
update table_name set 属性=数据 [where...] [order by ...] [limit ...]
[]内的容可以省略
将孙悟空同学的数学成绩变更为80分
mysql> update exam_result set math=80 where name='孙悟空';
将曹孟德同学的数学成绩变更为60分,语文成绩变更为70分
mysql> update exam_result set math=60,chinese=70 where name='曹孟德';
将总成绩倒数前三的3位同学的数学成绩加上30分
MySQL不支持math+=30,但可以使用math=math+30
mysql> update exam_result set math=math+30 order by english+math+chinese limit 3;
将所有同学的语文成绩更新为原来的2倍
没有where子句的update会更新全表数据
update exam_result set chinese=chinese*2;
四. Delete
delete from table_name [where...] [order by...] [limit ...]
删除孙悟空同学的信息
delete from exam_result where name='孙悟空';
删除整表数据 注意慎用
delete from table_name;
需要注意的是,delete删除数据不会改变auto_increment自增长的记录
五. 截断表
truncate [table] table_name;
注意:此操作慎用
- 只能对整表操作,不能像delete那样针对部分数据使用
- 实际上truncate不对数据操作,所以比delete更快,但是truncate在删除数据的时候,并不经过真正的事物,所以无法回滚
- 会重置auto_increment
六. 插入查询结果
insert into table_name 属性列 select ...
将select查询的结果插入表中
实验:删除表中的重复数据,重复数据只能有一份
mysql> create table duplicate_table(-> id int,-> name varchar(20)-> );
mysql> insert into duplicate_table values-> (100,'aaa'),-> (100,'aaa'),-> (200,'bbb'),-> (200,'bbb'),-> (200,'bbb'),-> (300,'ccc');
思路:建立一个具有相同表结构的表,然后将dupliate_table的数据,无重复的查找出来,然后插入新表中,再将新表重命名为duplicate_table
//建立新表
mysql> create table no_duplicate_table like duplicate_table;
//将查询的无重复的数据插入新表
mysql> insert into no_duplicate_table select distinct * from duplicate_table;
//删除旧表
mysql> drop table duplicate_table;
//重命名新表
mysql> rename table no_duplicate_table to duplicate_table;
结束语
感谢你的阅读
如果觉得本篇文章对你有所帮助的话,不妨点个赞支持一下博主,拜托啦,这对我真的很重要。

相关文章:
【MySQL】基本查询(二)
文章目录 一. 结果排序二. 筛选分页结果三. Update四. Delete五. 截断表六. 插入查询结果结束语 操作如下表 //创建表结构 mysql> create table exam_result(-> id int unsigned primary key auto_increment,-> name varchar(20) not null comment 同学姓名,-> chi…...
Qt:多语言支持,构建全面应用程序“
Qt:强大API、简化框架、多语言支持,构建全面应用程序" 强大的API:Qt提供了丰富的API,包括250多个C类,基于模板的集合、序列化、文件操作、IO设备、目录管理、日期/时间等功能。还包括正则表达式处理和支持2D/3D…...
性能监控-链路级监控工具
常见的链路监控工具,我们都称之为 APM 开源工具 几个开源的好用的工具,它们分别是 Pinpoint、SkyWalking、Zipkin、CAT 网络上也有人对这几个工具做过测试 比对,得到的结论是每个产品对性能的影响都在 10% 以下,其中 SkyWalking …...
clickonce 程序发布到ftp在使用cnd 加速https 支持下载,会不会报错
ClickOnce 是一种用于发布和部署.NET应用程序的技术,通常用于本地部署或通过网络分发应用程序。将 ClickOnce 程序发布到 FTP 服务器并使用 CDN(内容分发网络)进行加速是可能的,但要确保配置正确以避免出现错误。 在使用 CDN 加速…...
Nginx详细学习记录
1. Nginx概述 Nginx是一个轻量级的高性能HTTP反向代理服务器,同时它也是一个通用类型的代理服务器,支持绝大部分协议,如TCP、UDP、SMTP、HTTPS等。 1.1 Nginx基础架构 Nginx默认采用多进程工作方式,Nginx启动后,会运行…...
golang gin——中间件编程以及jwt认证和跨域配置中间件案例
中间件编程jwt认证 在不改变原有方法的基础上,添加自己的业务逻辑。相当于grpc中的拦截器一样,在不改变grpc请求的同时,插入自己的业务。 简单例子 func Sum(a, b int) int {return a b }func LoggerMiddleware(in func(a, b int) int) f…...
如何快速制作令人惊叹的长图海报
在当今的数字时代,制作一张吸引人的长图海报已成为许多人的需求。无论是为了宣传活动,还是展示产品,一张设计精美的长图海报都能引起人们的注意。下面,我们将介绍一种简单的方法,使用在线海报制作工具来创建长图海报。…...
D (1092) : DS循环链表—约瑟夫环(Ver. I - A)
Description N个人坐成一个圆环(编号为1 - N),从第S个人开始报数,数到K的人出列,后面的人重新从1开始报数。依次输出出列人的编号。 例如:N 3,K 2,S 1。 2号先出列,然…...
Python爬虫(二十二)_selenium案例:模拟登陆豆瓣
本篇博客主要用于介绍如何使用seleniumphantomJS模拟登陆豆瓣,没有考虑验证码的问题,更多内容,请参考:Python学习指南 #-*- coding:utf-8 -*-from selenium import webdriver from selenium.webdriver.common.keys import Keysimp…...
1. Flink程序打Jar包
文章目录 步骤注意事项 步骤 用 maven 打 jar 包,需要在 pom.xml 文件中添加打包插件依赖 <build><plugins><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-shade-plugin</artifactId><ver…...
水波纹文字效果动画
效果展示 CSS 知识点 text-shadow 属性绘制立体文字clip-path 属性来绘制水波纹 工具网站 CSS clip-path maker 效果编辑器 页面整体结构实现 使用多个 H2 标签来实现水波纹的效果实现,然后使用clip-path结合动画属性一起来进行波浪的起伏动画实现。 <div …...
【1.1】神经网络:关于神经网络的介绍
✅作者简介:大家好,我是 Meteors., 向往着更加简洁高效的代码写法与编程方式,持续分享Java技术内容。 🍎个人主页:Meteors.的博客 💞当前专栏: 神经网络(随缘更新) ✨特色…...
java项目中git的.ignore文件设置
在Git中,ignore是用来指定Git应该忽略的故意不被追踪的文件。它并不影响已经被Git追踪的文件。我们可以通过.ignore文件在Git中指定要忽略的文件。 当我们执行git add命令时,Git会检查.gitignore文件,并自动忽略这些文件和目录。这样可以避免…...
11.3 读图举例
一、低频功率放大电路 图11.3.1所示为实用低频功率放大电路,最大输出功率为 7 W 7\,\textrm W 7W。其中 A \textrm A A 的型号为 LF356N, T 1 T_1 T1 和 T 3 T_3 T3 的型号为 2SC1815, T 4 T_4 T4 的型号为 2SD525, T 2…...
黑马JVM总结(二十八)
(1)语法糖-foreach (2)语法糖-switch-string (3)语法糖-switch-enum (4)语法糖-枚举类 枚举类 (5)语法糖-twr1...
2023年DDoS攻击发展趋势的分析和推断
DDoS是一种非常“古老”的网络攻击技术,随着近年来地缘政治冲突对数字经济格局的影响,DDoS攻击数量不断创下新高,其攻击的规模也越来越大。日前,安全网站Latest Hacking News根据DDoS攻击防护服务商Link11的统计数据,对…...
RT-Thread 内存管理(学习二)
内存堆管理应用示例 这是一个内存堆的应用示例,这个程序会创建一个动态的线程,这个线程会动态申请内存并释放,每次申请更大的内存,当申请不到的时候就结束。 #include <rtthread.h>#define THREAD_PRIORITY 25 #defi…...
怎么修改jupyter lab 的工作路径而不是直接再桌面路径打开
要修改Jupyter Lab的工作路径,你可以按照以下步骤操作: 打开终端或命令提示符窗口。 输入 jupyter lab --generate-config 命令来生成Jupyter Lab的配置文件。 找到生成的配置文件,通常会位于 ~/.jupyter/jupyter_notebook_config.py。 使…...
高精度NTP时钟服务器(时间同步服务器)技术方案探讨
高精度NTP时钟服务器(时间同步服务器)技术方案探讨 高精度NTP时钟服务器(时间同步服务器)技术方案探讨 四分天下目前,全球的 GPS卫星同步系统处于“四分天下”状态,以美俄两国的系统处于领导地位ÿ…...
LFU 缓存 -- LinkedHashSet
相关题目: 460. LFU 缓存 相关文章 LRU 缓存 – 哈希链表 # 460. LFU 缓存 # Python中和 LinkedHashSet 相似的数据结构 OrderedDict from collections import OrderedDict class LFUCache:# key 到 val 的映射,我们后文称为 KV 表keyToVal {}# key 到…...
告别ODX文件!用AUTOSAR AP的SOVD协议,5分钟搞懂服务化诊断怎么玩
告别ODX文件!用AUTOSAR AP的SOVD协议,5分钟搞懂服务化诊断怎么玩 如果你是一名嵌入式软件工程师或诊断工程师,一定对传统UDS诊断中繁琐的ODX文件配置深恶痛绝。每次ECU升级都要重新生成和分发ODX文件,版本管理混乱,工具…...
Granite TimeSeries FlowState R1 模型效果深度评测:与传统统计方法的对比
Granite TimeSeries FlowState R1 模型效果深度评测:与传统统计方法的对比 时间序列预测这事儿,听起来挺专业,其实离我们生活很近。比如,电商平台要预测下个月的销售额,电力公司要预估明天的用电负荷,甚至…...
数电技术实战解析04:CMOS门电路设计与优化
1. CMOS反相器:数字世界的开关艺术 第一次拆解CMOS反相器时,我被它的精妙设计震撼到了——就像家里电灯的双控开关,只不过这个"开关"的尺寸只有头发丝的万分之一。这个由PMOS和NMOS管组成的经典结构,构成了所有数字电路…...
S32K144开发环境避坑指南:SDK选择与Segger JLink配置详解
S32K144开发环境避坑指南:SDK选择与Segger JLink配置详解 第一次接触NXP S32K144微控制器时,最令人头疼的莫过于开发环境的搭建。记得去年接手一个汽车电子项目,团队花了整整三天时间才让调试器正常工作——不是因为硬件问题,而是…...
LeetCode 125. Valid Palindrome 题解
LeetCode 125. Valid Palindrome 题解 题目描述 给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写。 示例 1: 输入: "A man, a plan, a canal: Panama" 输出: true 解释:"…...
Captura视频质量优化终极指南:先降噪后锐化的完美工作流
Captura视频质量优化终极指南:先降噪后锐化的完美工作流 【免费下载链接】Captura Capture Screen, Audio, Cursor, Mouse Clicks and Keystrokes 项目地址: https://gitcode.com/gh_mirrors/ca/Captura Captura是一款功能强大的屏幕录制工具,支持…...
PiliPlus视频播放进度条:自定义绘制与交互实现终极指南
PiliPlus视频播放进度条:自定义绘制与交互实现终极指南 【免费下载链接】PiliPlus PiliPlus 项目地址: https://gitcode.com/gh_mirrors/pi/PiliPlus PiliPlus是一款功能强大的视频播放器应用,其中自定义视频播放进度条是其核心功能之一。这个进度…...
如何用DiffSynth Studio实现AI舞蹈动作生成与舞台效果可视化:完整指南
如何用DiffSynth Studio实现AI舞蹈动作生成与舞台效果可视化:完整指南 【免费下载链接】DiffSynth-Studio DiffSynth Studio 是一个扩散引擎。我们重组了包括 Text Encoder、UNet、VAE 等在内的架构,保持了与开源社区模型的兼容性,同时提高了…...
嵌入式Telnet服务器库:轻量级MCU远程调试方案
1. TelnetServer 库概述TelnetServer 是一个轻量级、可移植的嵌入式 Telnet 服务器实现库,专为资源受限的 MCU 环境设计。它不依赖 POSIX socket API 或完整 TCP/IP 协议栈抽象层(如 LwIP 的 netconn 接口),而是直接对接底层网络驱…...
Qwen2.5-72B-GPTQ-Int4惊艳效果:128K上下文长文档摘要与重点提取
Qwen2.5-72B-GPTQ-Int4惊艳效果:128K上下文长文档摘要与重点提取 1. 模型概述与核心能力 1.1 Qwen2.5系列模型简介 Qwen2.5是通义千问大模型系列的最新版本,提供了从0.5B到72B不同参数规模的预训练和指令调优模型。相比前代Qwen2,这个版本…...
