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

数据库造神计划第七天---增删改查(CRUD)(3)

      🔥个人主页:寻星探路

🎬作者简介:Java研发方向学习者

📖个人专栏:《从青铜到王者,就差这讲数据结构!!!》、 《JAVA(SE)----如此简单!!!》、《数据库那些事!!!》

⭐️人生格言:没有人生来就会编程,但我生来倔强!!!


目录

一、Retrieve 检索

 1、分页查询

1.1语法

1.2示例

 二、Update修改

1、语法

2、示例

三、Delete 删除

1、语法

2、示例

四、截断表

1、语法

2、示例

3、Truncate注意事项


续接上一话:

一、Retrieve 检索

 1、分页查询

        当我们在浏览器上搜索某个内容时,会有很多的搜索结果,这些结果都给用户也看不完,就不如用分页的模式一部分一部分的进行展示!!!

1.1语法

-- 起始下标为 0 
-- 从 0 开始,筛选 num 条结果 
SELECT ... FROM table_name [WHERE ...] [ORDER BY ...] LIMIT num;
-- 从 start 开始,筛选 num 条结果 
SELECT ... FROM table_name [WHERE ...] [ORDER BY ...] LIMIT start , num;
-- 从 start 开始,筛选 num 条结果,⽐第⼆种⽤法更明确,建议使⽤ 
SELECT ... FROM table_name [WHERE ...] [ORDER BY ...] LIMIT num OFFSET start;

1.2示例

# 查询第⼀⻚数据
select * from exam order by id asc limit 0, 3;

# 查询第⼆⻚数据
select * from exam order by id asc limit 3, 3;

 # 查询第三⻚数据,没有达到limit的条数限制,也不会有任何影响,有多少条就显⽰多少条
select * from exam order by id asc limit 6, 3;

 二、Update修改

        这是真正在修改数据库的原始数据!!!

1、语法

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

#注:

(1)对符合条件的结果进行列值更新

(2)要先查找,找到之后再进行修改

2、示例

        将孙悟空同学的数学成绩变更为80分

# 查看原始数据
select * from exam where name = '孙悟空';

# 更新操作
update exam set math = 80 where name = '孙悟空';
# 查看结果,数学成绩更新成功
select * from exam where name = '孙悟空';

        将曹孟德同学的数学成绩变更为60分,语文成绩变更为70分

 # 查看原始数据
select name, math, chinese from exam where name = '曹孟德';

# 更新操作
update exam set math = 60, chinese = 70 where name = '曹孟德';
# 查看结果
select name, math, chinese from exam where name = '曹孟德';

        将总成绩倒数前三的3位同学的数学成绩加上30分

# 查看原始数据
select name, math,chinese + math + english as 总分 from exam where chinese + math + english is not null order by 总分 asc limit 3;

# 更新操作
update exam set math = math +30 where chinese + math + english is not null order by chinese + math + english asc limit 3;
# 查看结果
select name, math, chinese + math + english as 总分 from exam where name in ('宋公明','刘⽞德','曹孟德');

# 修改后总成绩倒数前三的 3 位同学和数据成绩
select name, math,chinese + math + english as 总分 from exam where chinese + math + english is not null order by 总分 asc limit 3;

        将所有同学的语文成绩更新为原来的2倍

# 查看原始数据
select * from exam;

# 更新操作
update exam set chinese = chinese * 2;
# 查看结果
select * from exam;

#注:

(1)以原值的基础上做变更时,不能使用math+=30这样的语法

(2)不加where条件时,会导致全表数据被更新,谨慎操作

三、Delete 删除

        drop 删库,删表.
        delete 删记录/删行

1、语法

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

2、示例

        删除孙悟空同学的考试成绩

# 查看原始数据
select * from exam where name = '孙悟空';

# 删除操作
delete from exam where name = '孙悟空';
# 查看结果
select * from exam where name = '孙悟空';

        删除整张表数据

# 准备测试表
CREATE TABLE t_delete (id INT,name VARCHAR(20)
);
# 插⼊测试数据
INSERT INTO t_delete (id, name) VALUES (1, 'A'), (2, 'B'), (3, 'C');
# 查看测试表
select * from t_delete;

# 删除整张表中的数据
delete from t_delete;
# 查看结果
select * from t_delete;

3、Delete注意事项

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

四、截断表

        截断表,更快速更高效的删除表操作,直接站在文件的角度,把表对应的文件内容清空了,只能删全表(不能指定条件,删除某个部分)

1、语法

TRUNCATE [TABLE] tbl_name

2、示例

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

# 查看建表结构,AUTO_INCREMENT= 4
show create table t_truncate;

# 截断表,注意受影响的⾏数是0
truncate table t_truncate;
# 查看表中的数据
select * from t_truncate;

# 查看表结构,AUTO_INCREMENT已被重置为0
show create table t_truncate\G

# 继续写⼊数据
INSERT INTO t_truncate (name) VALUES ('D');
# ⾃增主键从1开如计数
select * from t_truncate;

# 再次查看表结构,AUTO_INCREMENT=2
show create table t_truncate;

3、Truncate注意事项

(1)只能对整表操作,不能像DELETE⼀样针对部分数据

(2)不对数据操作所以比DELETE更快,TRUNCATE在删除数据的时候,不经过真正的事物,所以无法回滚

(3)会重置AUTO_INCREMENT项

        由于内容较多,会分为多篇讲解,预知后续内容,请看后续博客!!!


文章转载自:

http://54xDDq0A.mrttc.cn
http://kh8MzJhn.mrttc.cn
http://zy82UAfm.mrttc.cn
http://Yrz1kPBv.mrttc.cn
http://UaHuD10k.mrttc.cn
http://QBZ6IjZj.mrttc.cn
http://1Xt8VP5h.mrttc.cn
http://6Pfpnazv.mrttc.cn
http://aUuZuQUA.mrttc.cn
http://NmOzNQwb.mrttc.cn
http://tfwKojIp.mrttc.cn
http://eknscpFK.mrttc.cn
http://q5KOZ3so.mrttc.cn
http://6GSsbdsE.mrttc.cn
http://viEYvwal.mrttc.cn
http://MP0NPAkN.mrttc.cn
http://Mg7J7szJ.mrttc.cn
http://JEJcfIIv.mrttc.cn
http://DGqPZTjd.mrttc.cn
http://wvnMNdnE.mrttc.cn
http://WUYIHDoz.mrttc.cn
http://2v3MBHRj.mrttc.cn
http://ggMztzRs.mrttc.cn
http://lUOwQ8AP.mrttc.cn
http://uvREXuGC.mrttc.cn
http://IDlxOIAh.mrttc.cn
http://GoxphZa0.mrttc.cn
http://qBWJ03xl.mrttc.cn
http://oaHv6dGs.mrttc.cn
http://IeOJaWzN.mrttc.cn
http://www.dtcms.com/a/383470.html

相关文章:

  • 【WitSystem】FastAPI目录架构最佳实践
  • Python的re模块
  • 条件扩散过程(附录H)
  • selenium web自动化测试
  • docker compose 部署dify
  • 接口协议全解析:从HTTP到gRPC,如何选择适合你的通信方案?
  • 单例模式重新学习
  • 【系列文章】Linux中的并发与竞争[04]-信号量
  • Linux入门(二)
  • Transformer 面试题及详细答案120道(41-50)-- 训练与优化
  • UDP-Server(3)chat聊天室
  • 【不背八股】12.十大排序算法
  • 华清远见25072班网络编程学习day5
  • 【CMake】List
  • Linux系统中查找某个动态库例如.so文件是哪个软件安装的
  • c++ unqiue指针
  • ​Go语言实战案例 — 工具开发篇:编写一个进程监控工具​
  • Roo Code 的检查点功能
  • 【go/gopls/mcp】官方gopls内置mcp server使用
  • 【无标题】神经网络算法初探
  • Genspark AI 浏览器
  • Linux内核IPsec接收机制剖析:XFRM框架与xfrm4_input.c的深度解读
  • Linux 系统下的流量控制工具之tc命令案例解析
  • 数据库造神计划第五天---增删改查(CRUD)(1)
  • 深入理解Java虚拟机:JVM高级特性与最佳实践(第3版)第九章知识点问答(10题)
  • AI表征了西方的有界,AI+体现了东方的无界
  • 前端基础 —— B / CSS基础
  • Qwen2.5-VL 实战:用 VLM 实现 “看图对话”,从目标检测到空间推理!【附源码】
  • vLLM - EngineCoreClient
  • MySQL专题Day(2)————存储引擎