首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >数据库造神计划第七天---增删改查(CRUD)(3)

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

作者头像
寻星探路
发布2025-12-17 19:10:55
发布2025-12-17 19:10:55
1470
举报
文章被收录于专栏:CSDN博客CSDN博客

一、Retrieve 检索

1、分页查询

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

1.1语法
代码语言:javascript
复制
-- 起始下标为 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示例
代码语言:javascript
复制
# 查询第⼀⻚数据
select * from exam order by id asc limit 0, 3;
代码语言:javascript
复制
# 查询第⼆⻚数据
select * from exam order by id asc limit 3, 3;
代码语言:javascript
复制
 # 查询第三⻚数据,没有达到limit的条数限制,也不会有任何影响,有多少条就显⽰多少条
select * from exam order by id asc limit 6, 3;

二、Update修改

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

1、语法

代码语言:javascript
复制
UPDATE [LOW_PRIORITY] [IGNORE] table_reference
  SET assignment [, assignment] ...
  [WHERE where_condition]
  [ORDER BY ...]
  [LIMIT row_count]

#注:

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

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

2、示例

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

代码语言:javascript
复制
# 查看原始数据
select * from exam where name = '孙悟空';
代码语言:javascript
复制
# 更新操作
update exam set math = 80 where name = '孙悟空';
# 查看结果,数学成绩更新成功
select * from exam where name = '孙悟空';

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

代码语言:javascript
复制
 # 查看原始数据
select name, math, chinese from exam where name = '曹孟德';
代码语言:javascript
复制
# 更新操作
update exam set math = 60, chinese = 70 where name = '曹孟德';
# 查看结果
select name, math, chinese from exam where name = '曹孟德';

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

代码语言:javascript
复制
# 查看原始数据
select name, math,chinese + math + english as 总分 from exam where chinese + math + english is not null order by 总分 asc limit 3;
代码语言:javascript
复制
# 更新操作
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 ('宋公明','刘⽞德','曹孟德');
代码语言:javascript
复制
# 修改后总成绩倒数前三的 3 位同学和数据成绩
select name, math,chinese + math + english as 总分 from exam where chinese + math + english is not null order by 总分 asc limit 3;

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

代码语言:javascript
复制
# 查看原始数据
select * from exam;
代码语言:javascript
复制
# 更新操作
update exam set chinese = chinese * 2;
# 查看结果
select * from exam;

#注:

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

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

三、Delete 删除

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

1、语法

代码语言:javascript
复制
DELETE FROM tbl_name [WHERE where_condition] [ORDER BY ...] [LIMIT row_count]

2、示例

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

代码语言:javascript
复制
# 查看原始数据
select * from exam where name = '孙悟空';
代码语言:javascript
复制
# 删除操作
delete from exam where name = '孙悟空';
# 查看结果
select * from exam where name = '孙悟空';

删除整张表数据

代码语言:javascript
复制
# 准备测试表
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;
代码语言:javascript
复制
# 删除整张表中的数据
delete from t_delete;
# 查看结果
select * from t_delete;

3、Delete注意事项

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

四、截断表

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

1、语法

代码语言:javascript
复制
TRUNCATE [TABLE] tbl_name

2、示例

代码语言:javascript
复制
# 准备测试表
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;
代码语言:javascript
复制
# 查看建表结构,AUTO_INCREMENT= 4
show create table t_truncate;
代码语言:javascript
复制
# 截断表,注意受影响的⾏数是0
truncate table t_truncate;
# 查看表中的数据
select * from t_truncate;
代码语言:javascript
复制
# 查看表结构,AUTO_INCREMENT已被重置为0
show create table t_truncate\G
代码语言:javascript
复制
# 继续写⼊数据
INSERT INTO t_truncate (name) VALUES ('D');
# ⾃增主键从1开如计数
select * from t_truncate;
代码语言:javascript
复制
# 再次查看表结构,AUTO_INCREMENT=2
show create table t_truncate;

3、Truncate注意事项

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

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

(3)会重置AUTO_INCREMENT项

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

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2025-09-14,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、Retrieve 检索
    • 1、分页查询
      • 1.1语法
      • 1.2示例
  • 二、Update修改
    • 1、语法
    • 2、示例
  • 三、Delete 删除
    • 1、语法
    • 2、示例
  • 四、截断表
    • 1、语法
    • 2、示例
    • 3、Truncate注意事项
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档