MySQL插入、更新与删除表中数据实现方式

 更新时间:2026年04月10日 11:05:17   作者:梁辰兴  
本文介绍了MySQL数据插入、更新和删除的操作方法,包括直接添加、没有字段名添加、部分字段添加、多行添加等插入方法,UPDATE语句更新记录,DELETE语句删除记录,以及TRUNCATE语句删除表中所有记录,最后总结了TRUNCATE与DELETE的区别

前言

这篇文章主要介绍了:mysql 数据插入、更新及删除,文章围绕mysql 数据插入和更新及删除的相关资料展开内容。

如发现错误,及时告知,及时纠正,感谢支持。

准备工作

先使用一个数据库,并添加一张数据表,具体操作如下:

1)使用数据库

mysql> USE itcsat;
Database changed

2)创建数据表

mysql> CREATE TABLE student
    -> (
    ->    id INT(5),
    ->    name CHAR(20)NOT NULL,
    ->    sex CHAR(5),
    ->    grade FLOAT(5)
    -> );
Query OK, 0 rows affected

3)查看数据表是否存在

mysql> SHOW TABLES;
+------------------+
| Tables_in_itcsat |
+------------------+
| student          |
+------------------+
1 row in set

4)查看数据表信息 (两种方法)

mysql> SHOW CREATE TABLE student;
+---------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Table   | Create Table                                                                                                                                                               |
+---------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| student | CREATE TABLE `student` (
  `id` int(5) DEFAULT NULL,
  `name` char(20) NOT NULL,
  `sex` char(5) DEFAULT NULL,
  `grade` float DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=gbk |
+---------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1 row in set
mysql> DESC student;//查看的是表格的具体信息
+-------+----------+------+-----+---------+-------+
| Field | Type     | Null | Key | Default | Extra |
+-------+----------+------+-----+---------+-------+
| id    | int(5)   | YES  |     | NULL    |       |
| name  | char(20) | NO   |     | NULL    |       |
| sex   | char(5)  | YES  |     | NULL    |       |
| grade | float    | YES  |     | NULL    |       |
+-------+----------+------+-----+---------+-------+
4 rows in set

插入数据

第一种添加方法

直接一一对应添加数据。

eg1:

INSERT INTO student(id,name,sex,grade)VALUES(1,"张三","男",89);
Query OK, 1 row affected

查看数据是否添加成功:

SELECT *FROM student;
mysql> SELECT *FROM student;
+----+------+-----+-------+
| id | name | sex | grade |
+----+------+-----+-------+
|  1 | 张三 | 男  |    89 |
+----+------+-----+-------+
1 row in set

注意:可以改变字段名的顺序,但值也要相应改变,字段名必须和值相对应。

eg2:

mysql> INSERT INTO student(name,id,grade,sex)VALUES("李四",2,80,"男");
Query OK, 1 row affected
mysql> SELECT *FROM student;
+----+------+-----+-------+
| id | name | sex | grade |
+----+------+-----+-------+
|  1 | 张三 | 男  |    89 |
|  2 | 李四 | 男  |    80 |
+----+------+-----+-------+
2 rows in set

第二种添加方法

可以没有字段名,这样的话就和你建立的数据表的字段名一致。

eg3:

mysql> INSERT INTO student VALUES(3,"王二","男",98);
Query OK, 1 row affected
mysql> SELECT *FROM student;
+----+------+-----+-------+
| id | name | sex | grade |
+----+------+-----+-------+
|  1 | 张三 | 男  |    89 |
|  2 | 李四 | 男  |    80 |
|  3 | 王二 | 男  |    98 |
+----+------+-----+-------+
3 rows in set

第三种添加方法

字段可以不全部添加完,只添加其中几个。

eg4:

mysql> INSERT INTO student(id,name,grade)VALUES(4,"麻子",89);
Query OK, 1 row affected
mysql> SELECT * FROM student;
+----+------+------+-------+
| id | name | sex  | grade |
+----+------+------+-------+
|  1 | 张三 | 男   |    89 |
|  2 | 李四 | 男   |    80 |
|  3 | 王二 | 男   |    98 |
|  4 | 麻子 | NULL |    89 |
+----+------+------+-------+
4 rows in set

eg5:

mysql> INSERT INTO student(id,sex,grade)VALUES(5,"男",78);
Query OK, 1 row affected
mysql> SELECT *FROM student;
+----+------+------+-------+
| id | name | sex  | grade |
+----+------+------+-------+
|  1 | 张三 | 男   |    89 |
|  2 | 李四 | 男   |    80 |
|  3 | 王二 | 男   |    98 |
|  4 | 麻子 | NULL |    89 |
|  5 |      | 男   |    78 |
+----+------+------+-------+
5 rows in set

第四种添加方法

连续多行输入。

INSERT INTO student(id,name,sex,grade)VALUES(6,"巴西","女",67),(7,"万茜","女",88);
Query OK, 3 rows affected
Records: 3  Duplicates: 0  Warnings: 0

eg6:

mysql> SELECT *FROM student;
+----+------+------+-------+
| id | name | sex  | grade |
+----+------+------+-------+
|  1 | 张三 | 男   |    89 |
|  2 | 李四 | 男   |    80 |
|  3 | 王二 | 男   |    98 |
|  4 | 麻子 | NULL |    89 |
|  5 |      | 男   |    78 |
|  6 | 巴西 | 女   |    67 |
|  7 | 万茜 | 女   |    88 |
+----+------+------+-------+
7 rows in set

更新数据

MySQL中使用UPDATE语句来更新表中的记录,其中的基本语法格式如下:

➀ . 更新一条记录中的一个字段

eg1:

mysql> UPDATE student SET name="图雪芳" WHERE id=1;
Query OK, 1 row affected
Rows matched: 1  Changed: 1  Warnings: 0
mysql> SELECT *FROM student;
+----+--------+------+-------+
| id | name   | sex  | grade |
+----+--------+------+-------+
|  1 | 图雪芳 | 男   |    89 |
|  2 | 李四   | 男   |    80 |
|  3 | 王二   | 男   |    98 |
|  4 | 麻子   | NULL |    89 |
|  5 |        | 男   |    78 |
|  6 | 巴西   | 女   |    67 |
|  7 | 万茜   | 女   |    88 |
+----+--------+------+-------+
7 rows in set

➁ . 更新几条记录中的相同字段

eg2:

mysql> UPDATE student SET sex="女" WHERE id<4;
Query OK, 3 rows affected
Rows matched: 3  Changed: 3  Warnings: 0
mysql> SELECT *FROM student;
+----+--------+------+-------+
| id | name   | sex  | grade |
+----+--------+------+-------+
|  1 | 图雪芳 | 女   |    89 |
|  2 | 李四   | 女   |    80 |
|  3 | 王二   | 女   |    98 |
|  4 | 麻子   | NULL |    89 |
|  5 |        | 男   |    78 |
|  6 | 巴西   | 女   |    67 |
|  7 | 万茜   | 女   |    88 |
+----+--------+------+-------+
7 rows in set

➂ . 更新整个数据表数据的某个信息

eg3:

mysql> UPDATE student SET sex="女";
Query OK, 2 rows affected
Rows matched: 8  Changed: 2  Warnings: 0
mysql> SELECT *FROM student;
+----+--------+-----+-------+
| id | name   | sex | grade |
+----+--------+-----+-------+
|  1 | 图雪芳 | 女  |    89 |
|  2 | 李四   | 女  |    80 |
|  3 | 王二   | 女  |    98 |
|  4 | 麻子   | 女  |    89 |
|  5 |        | 女  |    78 |
|  6 | 巴西   | 女  |    67 |
|  7 | 万茜   | 女  |    88 |
+----+--------+-----+-------+
7 rows in set

删除数据

MySQL中使用DELETE语句来删除表中的记录,其中语法格式如下:

Ⅰ. 删除其中一条数据

eg1:

mysql> DELETE FROM student WHERE id=5;
Query OK, 1 row affected
mysql> SELECT *FROM student;
+----+--------+-----+-------+
| id | name   | sex | grade |
+----+--------+-----+-------+
|  1 | 图雪芳 | 女  |    89 |
|  2 | 李四   | 女  |    80 |
|  3 | 王二   | 女  |    98 |
|  4 | 麻子   | 女  |    89 |
|  6 | 巴西   | 女  |    67 |
|  7 | 万茜   | 女  |    88 |
+----+--------+-----+-------+
6 rows in set

Ⅱ . 删除其中的几条数据

eg3:

mysql> DELETE FROM student WHERE id>4;
Query OK, 3 rows affected
mysql> SELECT *FROM student;
+----+--------+-----+-------+
| id | name   | sex | grade |
+----+--------+-----+-------+
|  1 | 图雪芳 | 女  |    89 |
|  2 | 李四   | 女  |    80 |
|  3 | 王二   | 女  |    98 |
|  4 | 麻子   | 女  |    89 |
+----+--------+-----+-------+
4 rows in set

Ⅲ . 表中的记录全部删除

eg4:

mysql> DELETE FROM student;
Query OK, 4 rows affected
mysql> SELECT *FROM student;
Empty set

从查询结果中科院看到记录为空,说明表中所有的记录成功删除。

知识拓展:使用关键字TRUNCATE删除表中数据

准备工作

删除原来的student数据表,新建一个数据表,添加数据,查看一下,准备工作就准备完毕了。

mysql> DROP TABLE student;
Query OK, 0 rows affected
mysql> SHOW TABLES;
Empty set
mysql> CREATE TABLE student
    -> (
    ->   id INT(10),
    ->   name CHAR(20)
    -> );
Query OK, 0 rows affected
mysql> DESC student;
+-------+----------+------+-----+---------+-------+
| Field | Type     | Null | Key | Default | Extra |
+-------+----------+------+-----+---------+-------+
| id    | int(10)  | YES  |     | NULL    |       |
| name  | char(20) | YES  |     | NULL    |       |
+-------+----------+------+-----+---------+-------+
2 rows in set
mysql> INSERT INTO student(name)VALUES("黄珊"),("黄蓉"),("郭襄"),("杨过"),("张无忌");
Query OK, 5 rows affected
Records: 5  Duplicates: 0  Warnings: 0
mysql> SELECT *FROM student;
+------+--------+
| id   | name   |
+------+--------+
| NULL | 黄珊   |
| NULL | 黄蓉   |
| NULL | 郭襄   |
| NULL | 杨过   |
| NULL | 张无忌 |
+------+--------+
5 rows in set

使用TRUNCATE执行结果如下:

mysql> TRUNCATE TABLE student;
Query OK, 0 rows affected
mysql> SELECT *FROM student;
Empty set

从查询结果中科院看到记录为空,说明表中所有的记录成功删除。

TRUNCATE与DELETE的区别

1,DELETE语句是DML语句,TRUNCATE语句通常被认为是DDL语句。

2,DELETE语句后面可以跟WHERE字句,通过指定WHERE子句中的条件表达式是删除满足条件的部分记录,而TRUNCATE语句只能用于删除表中所有记录。

3,使用TRUNCATE语句删除表中的数据后,再次向表中添加记录时,自动增加字段的默认初始值重新由1开始,而使用DELETE删除表中所有记录后,再次向表中添加记录时,自动增加字段的值为删除时该字段的最大值加1。

4,使用DELETE语句是,没删除一条记录都会在日志中记录,而使用TRUNCATE语句时,不会在日志中记录删除的内容,因此TRUNCATE语句的执行效率比DELETE语句高。

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • MySQL主从同步机制与同步延时问题追查过程

    MySQL主从同步机制与同步延时问题追查过程

    这篇文章主要给大家介绍了关于MySQL主从同步机制与同步延时问题追查的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-02-02
  • MySQL中REPLACE函数与语句举例详解

    MySQL中REPLACE函数与语句举例详解

    在MySQL中REPLACE函数是一个用于处理字符串的强大工具,它的主要功能是替换字符串中的某些子字符串,这篇文章主要介绍了MySQL中REPLACE函数与语句的相关资料,需要的朋友可以参考下
    2025-08-08
  • Mysql查询时如何使用for update行锁还是表锁

    Mysql查询时如何使用for update行锁还是表锁

    这篇文章主要介绍了Mysql查询时如何使用for update行锁还是表锁问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-08-08
  • mysql 悲观锁与乐观锁的理解及应用分析

    mysql 悲观锁与乐观锁的理解及应用分析

    这篇文章主要介绍了mysql 悲观锁与乐观锁的理解及应用,结合实例形式分析了MySQL数据库悲观锁与乐观锁相关概念、原理、使用方法及相关操作注意事项,需要的朋友可以参考下
    2020-02-02
  • Mysql百万级分页优化技巧

    Mysql百万级分页优化技巧

    这篇文章主要介绍了Mysql百万级分页优化技巧,包括普通分页和优化分页两种,在数据量比较大的时候,我们尽量去利用索引来优化语句。下面通过本文给大家详细讲解,一起看看吧
    2016-12-12
  • MySQL按小时查询数据,没有的补0

    MySQL按小时查询数据,没有的补0

    这篇文章主要介绍了MySQL按小时查询数据,没有的补0,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-12-12
  • mysql 5.7以上版本安装配置方法图文教程(mysql 5.7.12\mysql 5.7.13\mysql 5.7.14)

    mysql 5.7以上版本安装配置方法图文教程(mysql 5.7.12\mysql 5.7.13\mysql 5.7.

    这篇文章主要为大家分享了MySQL 5.7以上缩版本安装配置方法图文教程,包括mysql5.7.12、mysql5.7.13、mysql5.7.14安装教程,包括感兴趣的朋友可以参考一下
    2016-08-08
  • Linux/Mac MySQL忘记密码命令行修改密码的方法

    Linux/Mac MySQL忘记密码命令行修改密码的方法

    这篇文章主要介绍了Linux/Mac MySQL忘记密码命令行修改密码的方法,需要的朋友可以参考下
    2017-05-05
  • 关于mysql init_connect的几个要点总结

    关于mysql init_connect的几个要点总结

    下面小编就为大家带来一篇关于mysql init_connect的几个要点总结。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-03-03
  • Mysql带And关键字的多条件查询语句

    Mysql带And关键字的多条件查询语句

    MySQL带AND关键字的多条件查询,MySQL中,使用AND关键字,可以连接两个或者多个查询条件,只有满足所有条件的记录,才会被返回
    2017-07-07

最新评论