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

MySQL | MySQL表的增删改查(CRUD)

目录

  • 前言:什么是 CRUD ?
  • 一、Creat 新增
    • 1.1 语法
    • 1.2 示例
      • 1.2.1 单行数据全列插入
      • 1.2.2 单行数据指定列插入
      • 1.2.3 多行数据指定列插入
  • 二、Retrieve 检索
    • 2.1 语法
    • 2.2 示例
      • 2.2.1 全列查询
      • 2.2.2 指定列查询
      • 2.2.3 查询字段为表达式
      • 2.2.4 结果去重查询
      • 2.2.5 where条件查询
      • 2.2.6 order by排序
      • 2.2.7 分页查询
  • 三、Update 修改
  • 四、Delete 删除

复习: MySQL | MySQL库、表的基本操作

前言:什么是 CRUD ?

CRUD 其实就是对数据库中的记录进行增删改查的操作,每个字母都是 “增删改查” 的首字母:

  • C : Creat(创建)
  • R : Retrieve (读取)
  • U : Update (更新)
  • D : Delete (删除)

注: 增删改查操作的是表中的数据行!

一、Creat 新增

1.1 语法

INSERT  [INTO] 表名
	[(列名 [,列名]...)]
VALUES
	(value_list)[, (value_list)]...

//值列表	
value_list: value, [, value]...

简单来说就是:

insert into 表名 [列名...] values (...);

1.2 示例

首先创建一张表,见下图:

在这里插入图片描述

1.2.1 单行数据全列插入

在这里插入图片描述

插入成功!
所插入的值的数量必须和定义表的列的数量和顺序一致!

1.2.2 单行数据指定列插入

这里指定在 id 列和 name 列插入 “2 ,李四”
在这里插入图片描述

1.2.3 多行数据指定列插入

这里指定在 id 列和 name 列插入 “3 ,王五” ,“4 ,赵六”
在这里插入图片描述

二、Retrieve 检索

2.1 语法

SELECT
[DISTINCT]    -- 去重
select_expr [, select_expr] ...
[FROM table_references]    -- 从哪个表
[WHERE where_condition]    -- 查询条件
[GROUP BY {col_name | expr}, ...]    -- 根据什么分组
[HAVING where_condition]   -- 对分组的结果进⾏过滤
[ORDER BY {col_name | expr } [ASC | DESC], ... ]   -- 排序
[LIMIT {[offset,] row_count | row_count OFFSET offset}]  -- 限制

在exam表中插入以下数据:

-- 插入测试数据
INSERT INTO exam (id, name, chinese, math, english) VALUES
(1, '唐三藏', 67, 98, 56),
(2, '孙悟空', 87, 78, 77),
(3, '猪悟能', 88, 98, 90),
(4, '曹孟德', 82, 84, 67),
(5, '刘⽞德', 55, 85, 45),
(6, '孙权', 70, 73, 78),
(7, '宋公明', 75, 65, 30);

2.2 示例

2.2.1 全列查询

select * from 表名;
// *表示所有列   返回表中所有信息

注意: 在工作中,select * from 表名; 是个非常危险的操作,为在生产环境中,一个表中的数据量非常大,有可能是TB级,每一个查询执行的时候会有磁盘开销和网络开销,如果不加限制会把服务器的资源吃完!!!

在这里插入图片描述

2.2.2 指定列查询

select 列名、列名... from 表名;

在这里插入图片描述

要查询的列只要在表中即可,与顺序无关。

2.2.3 查询字段为表达式

例子:

select id, name, chinese, 10 from exam; -- 可以是一个常量
select id, name, chinese, 10 + 1 from exam; -- 可以是一个表达式
select id, name, chinese + math + english from exam; -- 可以是一个表达式 
select id, name, chinese + math + english (as) total from exam;-- 可以为列重命名,直接在列明后边写,可以加as也可以不加

以上四个代码示例的执行结果如下:

在这里插入图片描述

2.2.4 结果去重查询

select math from exam;
select distinct math from exam;  -- 加distinct关键字对查询结果去重

结果1中的两个98变成了一个98

在这里插入图片描述

2.2.5 where条件查询

用法:直接在 where 后边加查询条件
示例:

select id, name, math from exam;
select id, name, math from exam where math > 90;  -- 查询数学成绩大于90分的同学

查询结果:

在这里插入图片描述

2.2.6 order by排序

示例:
将数学成绩大于80分的同学按 升序(asc) / 降序(desc) 排序;

select id, name, math from exam where math > 80 order by math asc;-- 升序
select id, name, math from exam where math > 80 order by math desc;-- 降序

查询结果:

在这里插入图片描述

注意:
• 查询中没有ORDER BY 子句,返回的顺序是未定义的,永远不要依赖这个顺序
• ORDER BY 子句中可以使用列的别名进行排序
• NULL 进行排序时,视为比任何值都小,升序出现在最上面,降序出现在最下面

2.2.7 分页查询

-- 起始下标为 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;

示例:

select id, name, chinese + english + math total from exam;
select id, name, chinese + english + math total from exam limit 2;-- 从0开始往后查询两条
select id, name, chinese + english + math total from exam limit 1,2;-- 从1开始向后查询两条,不包括1
select id, name, chinese + english + math total from exam limit 2 offset 1;
-- 从记录为1的位置开始向后读取两条记录,不包括1

查询结果:

在这里插入图片描述

三、Update 修改

语法:

UPDATE table_reference -- 表名
SET assignment [, assignment] ...  --哪个列,什么值
[WHERE where_condition]
[ORDER BY ...]
[LIMIT row_count]

简单来说就是:

update 表名 set 列名 =...;

示例:将孙悟空的数学成绩修改为80分
代码:

update exam set math = 80 where name = '孙悟空';

执行结果:

在这里插入图片描述

update 注意事项:

  1. 在原值的基础上做变更时,不能使用math+=30这样的语法,要使用math = math + 30
  2. 不加where条件时,会导致全表数据被更新,必须谨慎操作!!!

四、Delete 删除

语法:

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

示例1:删除孙悟空同学的考试成绩

delete from exam where name = '孙悟空';

在这里插入图片描述
示例2:删除整张表的数据
语法:

delete from exam;

在这里插入图片描述

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

相关文章:

  • conda、pip、npm、yarn换国内源
  • 我测试了AI搜索:试图替代谷歌搜索
  • Manus “Less structure,More intelligence ”独行云端处理器
  • 中山六院团队发表可解释多模态融合模型Brim,可以在缺少分子数据时借助病理图像模拟生成伪基因组特征|顶刊解读·25-02-14
  • 30天学习Java第六天——Object类
  • LuaJIT 学习(3)—— ffi.* API 函数
  • VIC模型率定验证
  • 【EI检索】第二届计算机、视觉与智能技术国际会议完成EI检索
  • jenkins 配置邮件问题整理
  • 02-Canvas-fabric.BaseBrush绘图工具
  • /proc/<pid>/下的节点的读取及相关内核逻辑分析及getrusage
  • 下载安装启动 VMware 个人免费版本
  • 程序化广告行业(14/89):DSP供应商评估、服务模式与常见平台
  • 京鲁医疗健康专家委员会聊城专家团成立
  • 使用位运算实现加法、减法、乘法和除法
  • 3.14学习总结 排序算法
  • 使用 VLOOKUP 和条件格式在 Excel 中查找并标红匹配的串号
  • 编程自学指南:java程序设计开发,网络编程基础,TCP编程,UDP编程,HTTP客户端开发
  • 扫描电子显微镜有何特点和用途?
  • Hello Mr. My Yesterday日文歌词附假名注音,祭奠逝去的青春
  • 网络直播间销售玩具盲盒被指侵权,法院以侵犯著作权罪追责
  • 三件珍贵标本开箱!中国恐龙大展5月26日在沪开幕,明星标本汇聚一堂
  • 中科院合肥物质院迎来新一届领导班子:刘建国继续担任院长
  • 因救心梗同学缺席职教高考的姜昭鹏顺利完成补考
  • 盐城经济技术开发区党工委书记王旭东接受纪律审查和监察调查
  • 俄媒:俄乌代表团抵达谈判会场