IT评测·应用市场-qidao123.com技术社区

标题: 【MySQL 保姆级讲授】表数据的操作--下(8) [打印本页]

作者: 羊蹓狼    时间: 2024-11-1 17:19
标题: 【MySQL 保姆级讲授】表数据的操作--下(8)
1. 列值更新 UPDATE

1.1 界说

UPDATE 语句在 SQL 中用于修改表中已有的记载。它允许你更改一个或多个列的值,可以针对表中的所有记载,也可以通过WHERE 子句指定特定的记载。
注意:更新指定列的时候肯定要用条件子句(where)。
语法:
   UPDATE table_name
SET column1 = value1, column2 = value2, …
[WHERE condition];
  注意事项

1.2 示例

使用该表的数据

2. 删除数据 DELETE

2.1 界说

DELETE 语句在 SQL 中用于从表中删除记载。它可以删除表中的单个记载、多个记载,或者在没有 WHERE 子句的情况下删除所有记载。
语法:
   DELETE FROM table_name
[WHERE condition];
  注意事项

2.2 示例

使用该表操作

3. 截断表 TRUNCATE

3.1 界说

TRUNCATE 语句在 SQL 中用于删除表中的所有记载,但它与 DELETE 语句有一些重要的区别。TRUNCATE 通常比 DELETE 更快,而且在某些情况下具有差异的行为。
语法:
   TRUNCATE TABLE table_name;
  注意:这个操作慎用
3.2 示例

3.3 日记

TRUNCATE 通常只记载一个操作,而 DELETE 会为每条删除的记载记载一个操作。
日记:
4.插入查询结果

4.1 界说

插入查询结果(也称为子查询插入或 INSERT … SELECT 语句)是一种在 SQL 中非常有用的技术,它允许你将一个查询的结果插入到另一个表中。这种操作通常用于批量插入数据、从一个表复制数据到另一个表、或者将复杂查询的结果存储到新表中。
语法:
   INSERT INTO target_table (column1, column2, …)
SELECT column1, column2, …
FROM source_table
[WHERE condition];
  4.2 示例

办理问题:删除表t1中的的重复复记载,重复的数据只能有一份

同砚们是不是想到了distinct,但distinct是对查询的结果取重,问题想办理的是原表的数据去重。
办理思路:
(1)用like创建一个新表
(2)用distinct查询到的数据插入到新表中
(3)用renaem更改新表和旧表的名字
5. 聚合函数

5.1 界说

函数说明COUNT([DISTINCT] expr)返回查询到的数据的 数量SUM([DISTINCT] expr)返回查询到的非空数据的 总和,不是数字没有意义AVG([DISTINCT] expr)返回查询到的非空数据的 匀称值,不是数字没有意义MAX([DISTINCT] expr)返回查询到的非空数据的 最大值,不是数字没有意义MIN([DISTINCT] expr)返回查询到非空数据的 最小值,不是数字没有意义 count解释:

5.2 示例

对t1表进行操作

8.max 统计最高分
命令:select max(score) from t1;

6. 分组聚合 GROUP BY

6.1 界说

GROUP BY 子句在 SQL 中用于将数据按照一个或多个列进行分组。它的重要作用是将具有相同值的行组合在一起,以便可以对每个组实行聚合函数(如 SUM、COUNT、AVG 等)或其他操作。GROUP BY 通常与聚合函数一起使用,以生成汇总陈诉。
语法:
   SELECT column1, column2, aggregate_function(column3)
FROM table_name
WHERE condition
GROUP BY column1, column2;
  说明:

注:查询的信息只能是进行分组的字段名和被聚合的字段名。
6.2 示例

对表emp进行操作

7. where VS having

7.1 where VS having

先看两个命令:

这是为什么呢?
答:子句的实行次序差异,从上可以看出,where比having的优先级更高。

7.2 “ MySQL统统为表 ”

扫除女生,只用男生做部分分组和薪资聚合,找出匀称薪资大于1万的部分
命令:
   select department, avg(salary)
from emp
where gender !=‘女’
group by department
having avg(salary) > 10000;
  

实行的步调:

换种角度来看:
不要单纯的以为,只有磁盘上表结构导入到mysql,真实存在的表才叫做表。
实在,在sql语句实行中,中间筛选出来的、最闭幕果,都可以看做为逻辑上的表。“MySQL统统为表”
未来只要我们能处理好单表的CURD,所有的sql场景,我们全部都能用同一的方式进行。
好比:

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。




欢迎光临 IT评测·应用市场-qidao123.com技术社区 (https://dis.qidao123.com/) Powered by Discuz! X3.4