MySQL数据库增删改查超完整示例图(新手入门必看)

 更新时间:2026年04月27日 09:38:00   作者:念越  
MySQL中的增删改查操作是实现数据库数据管理的重要手段,通过对数据库中数据的增加、删除、修改和查询,我们可以对数据进行有效的管理和利用,这篇文章主要介绍了MySQL数据库增删改查的相关资料,需要的朋友可以参考下

在操作之前,我们需要明确自己操作的是哪部分的数据。

一、新增(create)

1.单行数据

insert into [(字段1,字段2)] values (值,值);
insert into student(id,name) values (1,'张三');

执行成功,有一条数据被写入数据表。

  • 1.如果列与值的个数不匹配就会报一个错误,这条记录无法写入数据表

  • 2.简写方式:不用在表名后面指定列名,在values列表中按定义字段的顺序设置相应的值。
insert into 表名 values (值,值...);

2.指定列插入

insert into 表名(列名) values (值);

3.多行插入

insert into 表名[(列名...)] values (值),(值)...

二、查询(Retrieve)

1.全列查询

 select *from 表名;

⚠️ 注意:这个一个非常危险的操作,因为在生产环境中,一个表中的数据量可能会很多很多,当一个查询开始的时候,磁盘会开销,网络会开销,这些都是非常紧缺的资源。这一条语句开始执行的时候,可能会吃光服务器所有资源,其他程序或数据库操作就要等待当前SQL语句执行完以后才能继续执行。

2.指定列查询

select 列名[,列名]...from 表名;

指定查询id,姓名,和语文成绩。

  • 查询的结果是一个表达式

  • 把所有学生的语文成绩在原来的基础上加上十分

  • 列与列之间也可以参与运算,计算总分


    还可以利用as关键字给表达式取别名

3.去重:DISTINCT

select distinct 列名 from 表名;

这里没有加distinct关键字查询出来的成绩有两个98分

加上distinct关键字查询出来的记录如下

重复的记录只保留了一条。

⚠️ 注意:在查询结果中,每一列都相同MYSQL才认为他们是重复的数据,也就是数据行与数据行之间,两条记录完全一致才是重复的数据。
例如:

在查询数学成绩时,加上id这一列,第一列和第三列记录,虽然数学成绩一致,但是他们的id不一致,所以distinct关键字也就不把他们当做重复的数据行。

4.排序:ORDER BY

排序规则

1.升序 ASC(不指定时,默认是升序)
2.降序 DESC

select 列名 from 表名 order by 列名[ASC | DESC];
  • 1.按语文成绩从高到低排序(DESC)

  • 2.对数学成绩进行升序排序

  • 3.NULL数据排序,视为比任何值都笑,升序出现在最上面,降序出现在最下面。

  • 4.使用表达式及别名排序

    ⚠️ 注意:MYSQL中NULL的特殊性

不论什么值和NULL进行运算,返回值都是NULL
NULL始终被判定为FALSE
NULL的值不是我们以前学过的其他编程语言中的0,在MYSQL中它就是NULL

  • 5.可以对多个字段进行排序,排序的优先级与书写有关
    例如:先按数学降序排序,再按语文升序排序,再按英语进行升序排序

5.条件查询:WHERE

语法:

select *from 表名 where 列名/表达式 运算符 条件;

5.1 运算符说明表

运算符说明
>大于
>=大于等于
<小于
<=小于等于
=等于,NULL 不安全,例如 NULL = NULL 的结果是 NULL
<=>等于,NULL 安全,例如 NULL <=> NULL 的结果是 TRUE(1)
!=, <>不等于
BETWEEN a0 AND a1范围匹配,[a0, a1],如果 a0 <= value <= a1,返回 TRUE(1)
IN (option, ...)如果是 option 中的任意一个,返回 TRUE(1)
IS NULL是 NULL
IS NOT NULL不是 NULL
LIKE模糊匹配,% 表示任意多个(包括 0 个)任意字符,_ 表示任意一个字符

5.5逻辑运算符说明表

运算符说明
AND多个条件必须都为 TRUE(1),结果才是 TRUE(1)
OR任意一个条件为 TRUE(1),结果为 TRUE(1)
NOT条件为 TRUE(1),结果为 FALSE(0)

⚠️ 注意:

  1. WHERE条件可以使用表达式,但不能使用别名。
  2. AND的优先级高于OR,在同时使用时,需要使用小括号()包裹优先执行的部分

例如

  • 1.like模糊匹配
    %表示多个任意字符,_表示任意一个字符

     

     

  • 2.查询英语成绩不及格的同学(<60)

  • 3.查询语文成绩好于英语成绩的同学


    .⚠️ 注意:在一行数据中的两个列是可以进行比较的,但不能跨行比较
  • 4.查询总分在200分一下的同学


    .⚠️ 注意:在where子句中不能用别名作为过滤条件,在where条件中使用了表达式,那么就要把表达式完整的写在where子句中,不能使用别名。
    出现这种现象和MYSQL执行SQL语句的顺序有关
    1.如果要在数据中查某些数据,首先要确定表,先执行from;
    2.在查询过程中要根据指定的查询条件把符合条件的数据过滤出来,这时执行的就是where子句
    3.执行select后面的指定的列,这些列最终需要加入到结果集
    4.排序操作,根据order by子句中指定的列名和排序规则进行排序。

     

  • 5.查询语文成绩大于80且英语成绩大于80的同学

  • 6.查询语文成绩大于80或英语成绩大于80的同学

  • 7.观察and和or的优先级
    and的优先级高于or

  • 8.查询语文成绩在[80,90]分的同学的语文成绩

  • 9.查询数学成绩是58 或者 59 或者 98 或者 99 分的同学

查询方法 1.用OR把所有的条件关联起来
用IN(集合)

  • 10.NULL的查询:IS[NOT] NULL

  • 11.分页查询:LIMIT
    作用:限制查询结果集中的条数
    分页查询在项目开发中运用的非常多,只要查询的是一个记录的集合(多条记录)都在使用分页查询。
--起始下标为0
--从0开始,筛选n条结果
select....from 表名 [where...] [order by...] limit n;

--从s开始,筛选n条结果
select....from 表名 [where...] [order by...] limit s, n;

⚠️ 注意:如果起始位置超过了整个结果集的范围,也是可以执行的,只不过是一个空集

--从s开始,筛选n条结果,比第二种用法更明确,推荐使用
--offset偏移量,也就是从哪开始的意思
select....from 表名 [where...] [order by...] limit n offset s;

⚠️ 注意:s = (当前页号-1)*每页显示的记录数

三、修改(Update)

update  表名
set 列名1 = 值1, 列名2 = 值2
where  条件;
  • 1.将孙悟空的数学成绩变更为80分

  • 2.将孙权的数学成绩变更为60分,语文成绩变更为73分

  • 3.将总成绩倒数前三的同学的数学成绩加上5分

四、删除(Delete)

delete from 表名 [where ...] [order by ...] [limit...]
  • 1.删除孙悟空的考试成绩

  • 2.删除英语成绩倒数前三的同学的考试成绩

    先对英语成绩进行升序排序,再限制删除的条数。
    ⚠️ 注意:delete不加where条件是个非常危险的操作,会把表中的所有记录都删除。

五、文章知识总结

一、Create(新增)

  • 使用 INSERT INTO 向数据表中插入数据
  • 支持:
    • 单行插入
    • 指定列插入
    • 多行插入(推荐,效率更高)
  • ⚠️ 插入时必须保证 列数与值的个数一致

二、Retrieve(查询)

查询是数据库中最常用的操作,重点掌握以下内容:

基础查询

  • SELECT *(生产环境慎用)
  • 指定列查询(推荐)

表达式查询

  • 列可以参与运算
  • 可以使用 AS 起别名

DISTINCT 去重

  • 只有整行数据完全一致才会被认为重复

ORDER BY 排序

  • 默认升序 ASC
  • 降序 DESC
  • 支持多字段排序(前面的优先级更高)
  • NULL 在升序中最小,在降序中最大

WHERE 条件过滤(重点)

  • 支持比较运算符:> >= < <= = !=
  • 支持逻辑运算符:ANDORNOT
  • 支持 BETWEENINLIKEIS NULL
  • ⚠️ AND 优先级高于 OR
  • ⚠️ WHERE 不能使用别名

MySQL 执行顺序(高频考点)

FROM → WHERE → SELECT → ORDER BY → LIMIT

理解执行顺序可以帮助我们:

  • 明白为什么 WHERE 不能使用别名
  • 理解排序为什么最后执行
  • 理解分页为什么写在最后

三、Update(修改)

  • 使用 UPDATE ... SET ... WHERE ...
  • ⚠️ 不加 WHERE 会更新整张表(极度危险)

四、Delete(删除)

  • 使用 DELETE FROM ... WHERE ...
  • 可以结合 ORDER BY + LIMIT 精准删除
  • ⚠️ 不加 WHERE 会删除整张表数据

高频易错点总结

  1. NULL 不能使用 = 判断,要使用 IS NULL
  2. WHERE 中不能使用 SELECT 定义的别名
  3. AND 优先级高于 OR
  4. 分页公式:

s = (当前页号 - 1) * 每页条数

  1. 生产环境慎用:
    • SELECT *
    • 不带 WHEREUPDATE
    • 不带 WHEREDELETE

一句话总结

先确定数据来源(FROM)
再过滤数据(WHERE)
再选择字段(SELECT)
再排序(ORDER BY)
最后限制条数(LIMIT)

掌握这条主线,MySQL 的 CRUD 操作基本就能熟练掌握。

到此这篇关于MySQL数据库增删改查的文章就介绍到这了,更多相关MySQL增删改查内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • MySQL关键字问题分析与解决方案

    MySQL关键字问题分析与解决方案

    在实际开发中,我们常常会遇到由于SQL语法错误导致的数据库操作应用不能正常运行的情况,其中,使用了MySQL关键字作为表名或字段名,而没有逻辑地处理,带来的问题最为常见,本文将从一个实际案例出发,深入分析关键字问题及其解决方案,并提供进一步优化与避免方案
    2024-12-12
  • SQL查询语句执行的过程

    SQL查询语句执行的过程

    这篇文章主要介绍了SQL查询语句执行的过程,文章围绕主题展开SQL查询语句的相关资料,具有一定的参考价值,需要的小伙伴可以参考一下
    2022-05-05
  • C#实现MySQL命令行备份和恢复

    C#实现MySQL命令行备份和恢复

    MySQL数据库的备份有很多工具可以使用,今天介绍一下使用C#调用MYSQL的mysqldump命令完成MySQL数据库的备份与恢复
    2018-03-03
  • MySQL与存储过程的相关资料

    MySQL与存储过程的相关资料

    这篇文章主要介绍了MySQL与存储过程的相关资料,需要的朋友可以参考下
    2007-03-03
  • MySQL事件与触发器专题精炼

    MySQL事件与触发器专题精炼

    触发器是SQLserver提供给程序员和数据分析员来保证数据完整性的一种方法,它是与表事件相关的特殊的存储过程,事件是在 MySQL 5.1后引入的,有点类似操作系统的计划任务,但是周期性任务是内置在MySQL服务端执行的
    2022-03-03
  • MySQL中查询字段为空或者为null的方法

    MySQL中查询字段为空或者为null的方法

    这篇文章主要介绍了MySQL中查询字段为空或者为null的方法,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-12-12
  • SQL常见语句图文详解(附详细代码)

    SQL常见语句图文详解(附详细代码)

    作为数据库操作的核心工具,SQL在数据管理和查询中扮演着至关重要的角色,这篇文章主要介绍了SQL常见语句的相关资料,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2026-02-02
  • 解决MySQL错误码:1054 Unknown column ‘**‘ in ‘field list‘的问题

    解决MySQL错误码:1054 Unknown column ‘**‘ in&n

    这篇文章主要介绍了解决MySQL错误码:1054 Unknown column ‘**‘ in ‘field list‘的问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-05-05
  • MySQL max_allowed_packet的坑

    MySQL max_allowed_packet的坑

    max_allowed_packet是 MySQL 中的一个设定参数,用于设定所接受的包的大小,根据情形不同,其缺省值可能是 1M 或者 4M,本文主要介绍了MySQL max_allowed_packet的坑,感兴趣的可以了解一下
    2024-01-01
  • MySQL数据库迁移后无法启动的问题解决

    MySQL数据库迁移后无法启动的问题解决

    本文主要介绍了MySQL数据库迁移后无法启动的问题解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧<BR>
    2025-06-06

最新评论