MySQL -- CURD(下)

news2025/1/20 6:02:43

1. Update 修改

1.1 语法

对符合条件的结果进⾏列值更新

UPDATE [LOW_PRIORITY] [IGNORE] table_reference
 SET assignment [, assignment] ...
 [WHERE where_condition]
 [ORDER BY ...]
 [LIMIT row_count]

1.2 示例

将吕布的数学成绩改为99分

update exam set math = 99 where name = '吕布';

在这里插入图片描述

将貂蝉的语文成绩改成88,数学77

update exam set math = 77,chinese = 88 where name = '貂蝉';

在这里插入图片描述

将总成绩倒数前三的3位同学的数学成绩减上10分

update exam set math= math-10 chinese + math + english is not null  order by math+chinese+english asc limit 3;

在这里插入图片描述

注意:
以原值的基础上做变更时,不能使⽤math+=10这样的语法
不加where条件时,会导致全表数据被列新,谨慎操作

2. Delete 删除

2.2 语法

DELETE FROM tbl_name [WHERE where_condition] [ORDER BY ...] [LIMIT row_count]

2.3 示例

① 删除曹阿瞒同学的考试成绩

delete from exam where name = '曹阿满';

在这里插入图片描述

② 删除整张表数据

delete from tbl_name;

在这里插入图片描述

注意:执⾏Delete时不加条件会删除整张表的数据,谨慎操作

3. 截断表

3.1 语法

TRUNCATE [TABLE] tbl_name

3.2 ⽰例

  1. 准备测试表
CREATE TABLE t_truncate (
 id INT PRIMARY KEY AUTO_INCREMENT,
 name VARCHAR(20)
);
  1. 插⼊测试数据
INSERT INTO t_truncate (name) VALUES ('A'), ('B'), ('C');
  1. 查看测试表
 select * from t_truncate;

在这里插入图片描述

  1. 查看建表结构,AUTO_INCREMENT=4

在这里插入图片描述

  1. 截断表,注意受影响的⾏数是0
    在这里插入图片描述
  2. 插入一条数据,再次查看表结构,AUTO_INCREMENT=2
    在这里插入图片描述

3.3 Truncate注意事项

  • 只能对整表操作,不能像 DELETE ⼀样针对部分数据
  • 不对数据操作所以⽐DELETE更快,TRUNCATE在删除数据的时候,不经过真正的事物,所以⽆法回滚
  • 会重置 AUTO_INCREMENT 项 (即自主键被重置)

4. 插⼊查询结果

4.1 语法

INSERT INTO table_name [(column [, column ...])] SELECT ...

5. 聚合函数

5.1 常用函数

函数说明
COUNT([DISTINCT] expr)返回查询到的数据的 数量
SUM([DISTINCT] expr)返回查询到的数据的 总和,不是数字没有意义
AVG([DISTINCT] expr)返回查询到的数据的平均值,不是数字没有意义
MAX([DISTINCT] expr)返回查询到的数据的最⼤值,不是数字没有意义
MIN([DISTINCT] expr)返回查询到的数据的最⼩值,不是数字没有意义

COUNT统计符合条件的记录条数.SUM,AVG,MAX,MIN只支持数值类型

5.2 ⽰例

5.2.1 COUTN

① 统计exam表中有多少记录
在这里插入图片描述
在这里插入图片描述

② 统计语⽂成绩⼩于70分的学⽣个数
在这里插入图片描述

5.2.2 SUM

在这里插入图片描述
在这里插入图片描述在这里插入图片描述

5.2.3 AVG

在这里插入图片描述

5.2.4 MAX, MIN

在这里插入图片描述

6. Group by 分组查询

GROUPBY⼦句的作⽤是通过⼀定的规则将⼀个数据集划分成若⼲个⼩的分组,然后针对若⼲个分组进⾏数据处理,⽐如使⽤聚合函数对分组进⾏统计。

6.1 语法

 SELECT 
 {col_name |expr} ,... ,aggregate_function (aggregate_expr)
 FROM table_references
 GROUP BY {col_name|expr},...
 [HAVING]where_condition]
  • col_name|expr要查询的列或表达式,可以有多个,必须在据GROUP BY ⼦句中作为分组的依据.
  • aggregate_function: 聚合函数,⽐如COUNT(), SUM(), AVG(), MAX(), MIN()
  • aggregate_expr:聚合函数传⼊的列或表达式,如果列或表达式不在GOURP BY ⼦句中,必须包含在聚合函数中.

6.2 ⽰例

  1. 准备测试表
    列分别为:id(编号),name(姓名),role(⻆⾊),salary(薪⽔)
 drop table if exists emp;
 create table emp (
 id bigint primary key auto_increment,
 name varchar(20) not null,
 role varchar(20) not null,
 salary decimal(10, 2) not null
 );
  1. 插入测试数据
insert into emp values (1, '⻢云', '⽼板', 1500000.00);
 insert into emp values (2, '⻢化腾', '⽼板', 1800000.00);
 insert into emp values (3, '鑫哥', '讲师', 10000.00);
 insert into emp values (4, '博哥', '讲师', 12000.00);
  insert into emp values (5, '平姐', '学管', 9000.00);
 insert into emp values (6, '莹姐', '学管', 8000.00);
 insert into emp values (7, '孙悟空', '游戏⻆⾊', 956.8);
 insert into emp values (8, '猪悟能', '游戏⻆⾊', 700.5);
 insert into emp values (9, '沙和尚', '游戏⻆⾊', 333.3);
  1. 统计每个⻆⾊的⼈数
select role, count(*) from emp group by role;

在这里插入图片描述
在这里插入图片描述
4. 统计每个⻆⾊的平均⼯资,最⾼⼯资,最低⼯资

 select role, ROUND(avg(salary),2) as 平均⼯资,
  ROUND(max(salary),2) as 最⾼⼯资, 
 ROUND(min(salary),2) as 最低⼯资 from emp group by role;

在这里插入图片描述
在这里插入图片描述

6.3 having⼦句

使⽤GROUPBY对结果进⾏分组处理之后,对分组的结果进⾏过滤时,不能使⽤where语句,而要使⽤ HAVING ⼦句(having 跟在group by字句之后).

  1. 显⽰平均⼯资低于1500的⻆⾊和它的平均⼯资
 select role, avg(salary) from emp group by role having avg(salary) < 1500;

在这里插入图片描述

6.4 Having 与Where 的区别

  • Having⽤于对分组结果的条件过滤
  • Where⽤于对表中真实数据的条件过滤

7.内置函数

MySQL内部实现好的一些函数,可以直接拿来用,一般对数据的处理在应用程序中完成,不要放在数据库.

7.1 ⽇期函数

日期函数

函数说明
CURDATE()返回当前⽇期,同义词CURRENT_DATE,CURRENT_DATE()
CURTIME()返回当前时间,同义词CURRENT_TIME,CURRENT_TIME([fsp])
NOW()返回当前⽇期和时间,同义语CURRENT_TIMESTAMP,CURRENT_TIMES
DATE(data)提取date或datetime表达式的⽇期部分
ADDDATE(date,INTERVAL expr unit)向⽇期值添加时间值(间隔),同义词DATE_ADD()
SUBDATE(date,INTERVAL expr unit)向⽇期值减去时间值(间隔),同义词DATE_SUB()
DATEDIFF(expr1,expr2)两个⽇期的差,以天为单位,expr1-expr2

在这里插入图片描述

7.2 字符串处理函数

函数说明
CHAR_LENGTH(str)返回给定字符串的⻓度,同义词CHARACTER_LENGTH()
LENGTH(str)返回给定字符串的字节数,与当前使⽤的字符编码集有关
CONCAT(str1,str2,…)返回拼接后的字符串
CONCAT_WS(separator,str1,s tr2,…)返回拼接后带分隔符的字符串
LCASE(str)将给定字符串转换成⼩写,同义词LOWER()
UCASE(str)将给定字符串转换成⼤写,同义词UPPER()
HEX(str), HEX(N)对于字符串参数str,HEX()返回str的⼗六进制字符串表⽰形式,对于数字参数N,HEX()返回⼀个⼗六进制字符串表⽰形式
INSTR(str,substr)返回substring第⼀次出现的索引
NSERT(str,pos,len,newstr )在指定位置插⼊⼦字符串,最多不超过指定的字符数
SUBSTR(str,pos) SUBSTR(str FROM pos FOR len)返回指定的⼦字符串,同义词SUBSTRING(str,pos),SUBSTRING(str FROM pos FOR len)
REPLACE(str,from_str,to_s tr)把字符串str中所有的from_str替换为to_str,区分⼤⼩写
STRCMP(expr1,expr2)逐个字符⽐较两个字符串,返回-1,0,1
LEFT(str,len),RIGHT(str,len)返回字符串str中最左/最右边的len个字符
LTRIM(str),RTRIM(str),TRIM(str)删除给定字符串的前导、末尾、前导和末尾的空格
TRIM([{LEADING/TRAILING /BOTH } [remstr] FROM]删除给定符串的前导、末尾或前导和末尾的指定字符串

示例:
显⽰学⽣的考试成绩,格式为"XXX的语⽂成绩:XXX分,数学成绩:XXX分,英语成绩:XXX分"

select concat(name, '的语⽂成绩:', chinese, '分,数学成绩:', math, '分,英语成绩:', english, '分') as 分数 from exam;

在这里插入图片描述

7.3 数学函数

函数说明
ABS(X)返回X的绝对值
CEIL(X)返回不⼩于X的最⼩整数值,同义词是CEILING(X)
FLOOR(X)返回不⼤于X的最⼤整数值
CONV(N,from_base,to_base)不同进制之间的转换
FORMAT(X,D)将数字X格式化为“#,###,###”的格式。##',四舍五⼊到⼩数点后D位,并以字符串形式返回
RAND([N])返回⼀个随机浮点值,取值范围[0.0,1.0)
ROUND(X), ROUND(X,D)将参数X舍⼊到⼩数点后D位
CRC32(expr)计算指定字符串的循环冗余校验值并返回⼀个32位⽆符号整数

在这里插入图片描述

示例: 字符串的循环冗余校验
在这里插入图片描述

7.4 其他常⽤函数

函数说明
version()显⽰当前数据库版本
user()显⽰当前⽤⼾
database()显⽰当前正在使⽤的数据库

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

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

相关文章

【计算机网络】 —— 数据链路层(壹)

文章目录 前言 一、概述 1. 基本概念 2. 数据链路层的三个主要问题 二、封装成帧 1. 概念 2. 帧头、帧尾的作用 3. 透明传输 4. 提高效率 三、差错检测 1. 概念 2. 奇偶校验 3. 循环冗余校验CRC 1. 步骤 2. 生成多项式 3. 例题 4. 总结 四、可靠传输 1. 基本…

亚马逊 aws-waf-token 算法生成,协议逆向,通杀!!!

声明 本文章中所有内容仅供学习交流&#xff0c;抓包内容、敏感网址、数据接口均已做脱敏处理&#xff0c;严禁用于商业用途和非法用途&#xff0c;否则由此产生的一切后果均与作者无关&#xff0c;若有侵权&#xff0c;请联系我立即删除&#xff01; 难度不大&#xff0c;核…

SpringBoot 赋能家乡特色推荐系统:高效架构与前沿技术集成

1 绪 论 1.1课题背景与意义 在Internet高速发展的今天&#xff0c;计算机的应用几乎完全覆盖我们生活的各个领域&#xff0c;互联网在经济&#xff0c;生活等方面有着举足轻重的地位&#xff0c;成为人们资源共享&#xff0c;信息快速传递的重要渠道。在中国&#xff0c;网上管…

肥羊直播 1.0.2 |频道非常丰富的高清画质电视直播软件

肥羊直播App是一款专为电视用户设计的直播软件&#xff0c;提供丰富多彩的直播内容&#xff0c;包括央视、卫视、综合、地方、卡通动漫、娱乐、历史古装和电影等频道。该软件支持多种设备&#xff0c;如智能电视、高清机顶盒和安卓手机&#xff0c;为用户带来便捷且高清的观看体…

基础加/解密程序V2.0(Ascll码加减实现) txt保存密钥

Hello大家好&#xff0c;这次我对上篇博客&#xff08;基础加/解密程序&#xff08;Ascll码加减实现&#xff09;-CSDN博客&#xff09;中的代码略加修改&#xff0c;退出了2.0版本&#xff0c;这次我加入了txt输入/出流&#xff0c;使得可随时对密钥进行更改。不过在使用前&am…

代码随想录算法训练营day50|动态规划12

不同的子序列 给定一个字符串 s 和一个字符串 t &#xff0c;计算在 s 的子序列中 t 出现的个数。、 编辑距离中的删除元素&#xff0c;其实就是直接变数字&#xff0c;其只删除原来的较长的数组里的元素 递推模拟&#xff0c;使用s的最后一个元素匹配&#xff0c;或者删除…

keil报错---connection refused due to device mismatch

解决办法如下&#xff1a; 记得改成1 把Enable取消

黑森林实验室发布FLUX.1 Tools控制套件,全面介绍

FLUX.1 Tools是什么 FLUX.1 Tools 是由 Black Forest Labs 发布的一套模型工具&#xff0c;旨在为文本到图像模型 FLUX.1 提供更多的控制和可操作性&#xff0c;使得对真实和生成图像的修改和重新创作成为可能。这套工具包括四个核心功能&#xff1a;FLUX.1 Fill、FLUX.1 Dept…

【包教包会】CocosCreator3.x——重写Sprite,圆角、3D翻转、纹理循环、可合批调色板、不影响子节点的位移旋转缩放透明度

一、效果演示 重写Sprite组件&#xff0c;做了以下优化&#xff1a; 1、新增自变换&#xff0c;在不影响子节点的前提下位移、旋转、缩放、改变透明度 新增可合批调色板&#xff0c;支持色相、明暗调节 新增圆角矩形、3D透视旋转、纹理循环 所有功能均支持合批、原生平台&…

AI 语音:IIElevenLabs 如何通过文本训练出新的声音

网址&#xff1a;Free Text to Speech & AI Voice Generator | ElevenLabs 1&#xff09;点击添加新的声音 2&#xff09;根据需要选择 3&#xff09;比如我选择第一个&#xff08;从文本提示设计一个全新的声音&#xff09; 4&#xff09;通过中文将想要的声音要求翻译成…

Vant UI +Golang(gin) 上传文件

前端基本用法&#xff1a;点击查看 实现代码&#xff1a; const afterRead (file) > {console.log(file);//set content-type to multipart/form-dataconst formData new FormData();formData.append("file", file.file);request.POST("/api/v1/users/up…

2021 年“泰迪杯”数据分析技能赛B 题肥料登记数据分析

2021 年“泰迪杯”数据分析技能赛B 题肥料登记数据分析 完整代码请私聊 博主 # 一、背景 肥料是农业生产中一种重要的生产资料&#xff0c;其生产销售必须遵循《肥料登记管理办法》&#xff0c;依法在农业行政管理部门进行登记。各省、自治区、直辖市人民政府农业行政主管部门主…

C#常见错误—空对象错误

System.NullReferenceException&#xff1a;未将对象引用设置到对象的实例 在C#编程中&#xff0c;System.NullReferenceException是一个常见的运行时异常&#xff0c;其错误信息“未将对象引用设置到对象的实例”意味着代码试图访问一个未被初始化或已被设置为null的对象的成…

MATLAB Simulink® - 智能分拣系统

系列文章目录 前言 本示例展示了如何在虚幻引擎 环境中对四种不同形状的标准 PVC 管件实施半结构化智能分拣。本示例使用 Universal Robots UR5e cobot 执行垃圾箱拣选任务&#xff0c;从而成功检测并分类物体。cobot 的末端执行器是一个吸力抓手&#xff0c;它使 cobot 能够拾…

【SpringMVC】应用分层

阿华代码&#xff0c;不是逆风&#xff0c;就是我疯 你们的点赞收藏是我前进最大的动力&#xff01;&#xff01; 希望本文内容能够帮助到你&#xff01;&#xff01; 目录 一&#xff1a;场景引入 二&#xff1a;前后端分离三层架构 1&#xff1a;表现层 2&#xff1a;业务…

【TCP 网络通信(发送端 + 接收端)实例 —— Python】

TCP 网络通信&#xff08;发送端 接收端&#xff09;实例 —— Python 1. 引言2. 创建 TCP 服务器&#xff08;接收端&#xff09;2.1 代码示例&#xff1a;TCP 服务器2.2 代码解释&#xff1a; 3. 创建 TCP 客户端&#xff08;发送端&#xff09;3.1 代码示例&#xff1a;TCP…

在阿里云/Linux环境搭建Gitblit服务

在阿里云/Linux环境搭建Gitblit服务 1. 整体描述2. 前期准备3. 安装步骤3.1 下载gitblit3.2 上传gitblit3.3 解压文件3.4 修改文件配置3.5 启动gitblit3.6 安全组配置 4. 总结 1. 整体描述 前段时间买了一个阿里云服务器&#xff0c;2核2G&#xff0c;3M固定带宽的配置&#x…

定时任务——xxl-job源码解析

摘要 本文深入解析了xxl-job的源码&#xff0c;xxl-job是一个分布式任务调度平台&#xff0c;其核心设计思想是将调度行为抽象成“调度中心”&#xff0c;而任务逻辑则由“执行器”处理&#xff0c;实现调度与任务的解耦。文章详细介绍了调度器和执行器的初始化流程、任务执行…

吉他初学者学习网站搭建系列(9)——如何用coze做一个网站助手

文章目录 背景功能搭建智能体新增工作流效果总结 背景 随着AI大模型的普及&#xff0c;国内也涌现出许多帮助用户更便捷使用大模型的平台。扣子就是其中之一。国内已经有蛮多用户了&#xff0c;我试用了这个平台&#xff0c;来给我的网站搭建一个小助手&#xff0c;效果非常好…

Anaconda 下安装OpenCV 4.10.0

大家也可以使用pip安装。 pip install opencv-python4.10.0 这里使用conda安装 conda install opencv4.10.0 import cv2 print(cv2.__version__)