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如何查询某条记录在分页的第几页详析

    查询是我们日常工作中经常会遇到的一个功能,下面这篇文章主要给大家介绍了关于Mysql如何查询某条记录在分页的第几页的相关资料,文中通过示例代码介绍的非常详细,需要的朋友可以参考下
    2018-11-11
  • MySQL中的日期时间类型与格式化方式

    MySQL中的日期时间类型与格式化方式

    这篇文章主要介绍了MySQL中的日期时间类型与格式化方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-07-07
  • 优化Mysql数据库的8个方法

    优化Mysql数据库的8个方法

    本文通过8个方法优化Mysql数据库:创建索引、复合索引、索引不会包含有NULL值的列、使用短索引、排序的索引问题、like语句操作、不要在列上进行运算、不使用NOT IN和<>操作
    2013-11-11
  • SELinux导致PHP连接MySQL异常Can''t connect to MySQL server的解决方法

    SELinux导致PHP连接MySQL异常Can''t connect to MySQL server的解决方法

    这篇文章主要介绍了SELinux导致PHP连接MySQL异常Can't connect to MySQL server的解决方法,有2种,一是设置允许,二是关闭SELinux,需要的朋友可以参考下
    2014-07-07
  • MySQL中like模糊查询的优化方案

    MySQL中like模糊查询的优化方案

    在 MySQL 中,like 模糊查询是一种常用的查询方式,但在某些情况下可能会导致性能问题,本文将介绍八种优化 MySQL 中 like 模糊查询的方法,需要的朋友可以参考下
    2025-05-05
  • mysql创建的外键无法保存的原因以及处理办法

    mysql创建的外键无法保存的原因以及处理办法

    这篇文章主要介绍了mysql创建的外键无法保存的原因以及处理办法,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-09-09
  • Linux环境下安装MySQL数据库

    Linux环境下安装MySQL数据库

    这篇文章介绍了Linux环境下安装MySQL数据库的方法,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-04-04
  • linux mysql 安装与操作

    linux mysql 安装与操作

    mysql是linux平台下最流行的数据库系统,今天介绍的是mysql的安装及简单的操作方法!
    2009-06-06
  • MySQL数据库终端—常用操作指令代码

    MySQL数据库终端—常用操作指令代码

    这篇文章主要介绍了MySQL数据库终端—常用操作指令代码,添加用户、更改用户名和host主机、更改密码、删除用户等等,具有一定的参考价值,需要的小伙伴可以参考一下
    2022-01-01
  • MySQL触发器的应用示例详解

    MySQL触发器的应用示例详解

    这篇文章主要介绍了MySQL触发器的应用,触发器是与MySQL数据表有关的数据库对象,在满足定义条件时触发,并执行触发器中定义的语句集合,触发器的这种特性可以协助应用在数据库端确保数据的完整性,需要的朋友可以参考下
    2022-08-08

最新评论