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

MySQL之CRUD(下)

承接上文,我们此文对MySQL中的剩余操作进行介绍

1. Update修改

1.1 语法

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

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

1.2 示例

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

在这里插入图片描述

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

在这里插入图片描述

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

在这里插入图片描述

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

2. Deleate删除

2.1 语法

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

2.2 示例

删除曹阿满的考试成绩

2.2 示例

删除整张表的数据

在这里插入图片描述

2.3 注意

执⾏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

在这里插入图片描述

  1. 再次查看表结构,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)返回查询到的数据的最⼩值,不是数字没有意义

5.2 示例

5.2.1 COUTN

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

5.2.2 SUM

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

5.2.3 AVG

在这里插入图片描述

在这里插入图片描述

5.2.4 MAX MIN

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

6. Groupby分组查询

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. 创建一个示例表
 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;

在这里插入图片描述

6.3 having⼦句

由于执行SQL 语句中不同的关键字执行顺序不一样,我们在分组后还想对分组后的表做条件过滤查询就不能使用where语句了,此时我们引进了一个新的语句 having 语句

select role, avg(salary) from emp group by role having avg(salary) < 1200;

在这里插入图片描述

6.4 Having与Where的区别

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

7. 内置函数

MySQL内部实现了一些函数,可以直接拿来使用,但是我们需要注意,一般对于数据处理的问题,在应用程序中完成,不要放在数据库里面处理

日期函数

字符串函数

数学函数


http://www.kler.cn/news/361373.html

相关文章:

  • 力扣 困难 52.N皇后II
  • ubuntu系统库和Anaconda库冲突问题
  • 用Aconvert.com将MOBI文件转换为PDF:一步步指南
  • 政安晨【零基础玩转各类开源AI项目】基于本地Ubuntu (Linux ) 系统应用Gradio-Lite:无服务器 Gradio 完全在浏览器中运行
  • 宠物用品在线交易:SpringBoot开发实战
  • 十、特定领域软件体系结构
  • vue中加载GLB模型,计算模型的长宽高、绘制模型的边框线
  • Vue93 vue3 watch监视ref属性的说明
  • 记录:网鼎杯2024赛前热身WEB01
  • Cocos引擎
  • 十四、MySQL事务日志
  • IIC通信与MAX30102采集血样数据+V4L2框架
  • 【Petri网导论学习笔记】Petri网导论入门学习(七) —— 1.5 并发与冲突
  • 上海市计算机学会竞赛平台2024年10月月赛丙组胜率判断
  • 拍立淘按图搜索API接口系列(json数据格式示例)
  • c++ libtorch tensor 矩阵分块
  • 域4:通信与网络安全 第12章 安全通讯和网络攻击
  • 【数据结构与算法】第3课—数据结构之单链表
  • OBOO鸥柏丨《满天星(MTSTAR)》信息发布系统售后服务点位收费标准
  • Unity性能优化1【基础篇】
  • js的入口函数,及入口函数的作用
  • Spring中的参数统一配置
  • Microsoft Visual Studio Install Projects2022发布安装包
  • Java实现html填充导出pdf
  • Python 从网页中提取文本内容,进行中文分词和词频统计,并生成词云图进行可视化
  • 计算机网络教学设计稿