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

Linux下学【MySQL】表中修改和删除的进阶操作(配实操图和SQL语句通俗易懂)

在这里插入图片描述
每日激励:“六年之约正式开始,第一年第一天第一篇博客,也祝大家今年能豪取第一!”

绪论​:
本章是表操作的进阶的修改和删除篇章(没看过入门的这里是传送门),本章将带你进阶的去学习表的修改update和删除delete,本质也就是学他们后面所带的一些附加条件(具体请看目录),通过这些条件去更好管理你的数据。(全文共3000字,图文并茂 通俗易懂 快开始吧~),后续还将持续更新大量MySQL文件,敬请期待吧 ~
————————
早关注不迷路,话不多说安全带系好,发车啦(建议电脑观看)。


1. Update更新修改

基本语法:

UPDATE table_name SET column = expr [, column = expr ...]
[WHERE ...] 
[ORDER BY ...] 
[LIMIT ...]

作用:对查询到的结果进行列值更新
预备工作:
创建表结构,后续将在该表上进行操作
在这里插入图片描述

1. 筛选条件where的使用

实例1:将孙悟空同学的数学成绩变更为 80 分

若直接使用update写那么所有数学成绩都将改成80(下图,一般都不这样写!!):
在这里插入图片描述
需要添加where条件来进行限制(类似select查询):
在这里插入图片描述
实例2:将曹孟德同学的数学成绩变更为 60 分,语文成绩变更为 70 分(大原则不变,具体如下图)
在这里插入图片描述

2. 筛选条件order by、limit

将总成绩倒数前三的 3 位同学的数学成绩(默认是asc升序的)加上 30 分

  1. 查看成绩倒数的三个同学(select):
    在这里插入图片描述
  • 其中select和update的order by、limit使用方法是一致
    在这里插入图片描述

3. 没筛选条件是将所有值更新

更新全表的语句慎用!!
在这里插入图片描述
注意注意:

一定要慎用update,它的危害不亚于delete

2. Delete删除

1. 删除数据基本语法

DELETE FROM table_name 
[WHERE ...] 
[ORDER BY ...] 
[LIMIT ...]

2. where 条件语句

where的方法和之前所学都一致,删除孙悟空同学的考试成绩:

DELETE FROM exam_result WHERE name = '孙悟空';

在这里插入图片描述

3. order by、 limit 条件语句

将总分倒数第一名删除

delete from exam_result order by asc limit 1;

在这里插入图片描述

4. 删除整张表数据

删除整张表同样也一定要慎用!!
我们新建一张表进行测试

CREATE TABLE for_delete (
id INT PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(20)
);

INSERT INTO for_delete (name) VALUES ('A'), ('B'), ('C');

删除表:
delete from for_delete;

细节:

AUTO_INCREMENT(主键的自增记录值)在清空表后仍然不会被置位0 的
在这里插入图片描述
那么如何将一张表中的数据删除后,AUTO_INCREAMENT被重置呢,然我们接着往后看截断表删除操作:

5. 截断表TRUNCATE

作用:它同样是清空表的一种操作
语法:

TRUNCATE [TABLE] table_name

不同直接delete的是:

  1. 只能对整表操作,不能像 DELETE 一样针对部分数据操作;
  2. 实际上 MySQL 不对数据操作,所以比 DELETE 更快,但是TRUNCATE在删除数据的时候,并不经过真正的事务,所以无法回滚。
  3. 会重置 AUTO_INCREMENT 项
  4. 并且不会记录日志 bin log(暂时认识后面会讲到)

学习使用:

-- 准备测试表
CREATE TABLE for_truncate (
id INT PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(20)
);

-- 插入测试数据
INSERT INTO for_truncate (name) VALUES ('A'), ('B'), ('C');

-- 截断整表数据,注意影响行数是 0,所以实际上没有对数据真正操作
TRUNCATE for_truncate;
Query OK, 0 rows affected (0.10 sec)

-- 再查看删除结果
SELECT * FROM for_truncate;

-- 再插入一条数据,自增 id 在重新增长
INSERT INTO for_truncate (name) VALUES ('D');
发现自增长id也没重置了

本章完。预知后事如何,暂听下回分解。

如果有任何问题欢迎讨论哈!

如果觉得这篇文章对你有所帮助的话点点赞吧!

持续更新大量MySQL细致内容,早关注不迷路。


http://www.kler.cn/a/469242.html

相关文章:

  • Scala_【5】函数式编程
  • qml PathView详解
  • 小程序租赁系统开发的优势与应用前景分析
  • 3125: 【入门】求1/1+1/2+2/3+3/5+5/8+8/13+13/21……的前n项的和
  • 基于 Node.js 的 ORM(对象关系映射)工具——Sequelize介绍与使用,并举案例分析
  • 比Qt更适合小公司的C++界面开发框架wxWidgets
  • 开源模型应用落地-Qwen2.5-7B-Instruct与vllm实现推理加速的正确姿势-利用KOR框架实现结构化输出(七)
  • 【汇编语言】外中断(二)—— 键盘的奥秘:编写自己的 int 9 中断例程
  • 【软考网工笔记】操作系统管理与配置——Windows
  • Python中使用PostgreSQL和Apache AGE扩展来绘制和显示图表
  • Go语言的 的变量声明(Variable Declaration)基础知识
  • MySQL叶子节点为啥使用双向链表?不使用单向呢?
  • centos7yum安装mysql5.7
  • 【机器学习:三、常见的代价函数】
  • JS实现SVG的TEXT标签自动换行功能
  • [CTF/网络安全] 攻防世界 view_source 解题详析
  • UE5失真材质
  • 3.6 高级树形数据结构(2-3-4树、B树、B+树、哈夫曼树等)
  • 【HF设计模式】05-单例模式
  • 深入Android架构(从线程到AIDL)_09 认识Android的主线程
  • MATLAB R2015b安装、激活记录少走弯路
  • 【Unity Shader】【图形渲染】Unity Shader操作基础5-Unity Shader调试技巧
  • 面向实习的Golang服务端技能分析
  • MATLAB语言的函数实现
  • [桌面运维]windows自动设置浅深色主题
  • 基于Springboot +Vue 实验课程预约管理系统