MySQL——更新数据

        更新数据是指对表中存在的记录进行修改,这是数据库常见的操作,比如某个学生改了名字,就需要对其记录信息中的 name 字段值进行修改。

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

UPDATE 表名
    SET 字段名 1=值 1[,字段名 2=值2,…」
    [WHERE 条件表达式]

        在上述语法格式中,“字段名 1”,“字段名 2”用于指定要更新的字段名称,“值 1”““值2”用于表示字段更新的新数据。“WHERE条件表达式”是可选的,用于指定更新数据需要满足的条件。UPDATE语句可以更新表中的部分数据和全部数据,下面就对这两种情况进行讲解。

1、UPDATE 更新部分数据

        更新部分数据是指根据指定条件更新表中的某一条或者某几条记录,需要使用 WHERE 子句来指定更新记录的条件。

        例如,更新 student 表中 id 字段值为 1 的记录,将记录中的 name 字段的值更改为'caocao',grade 字段的值更改为 50。在更新数据之前,首先使用查询语句查看 id 字段值为1的记录,执行结果如下所示:

mysql> select * from student
    -> where id=1;
+------+----------+-------+
| id   | name     | grade |
+------+----------+-------+
|    1 | zhangsan |  98.5 |
+------+----------+-------+
1 row in set (0.00 sec)

        从查询结果可以看到,id 字段值为1的记录只有一条,记录中 name 字段的值为 'zhangsan' ,grade 字段的值为 98.5。下面使用 UPDATE 语句更新这条记录,SQL 语句如下所示:

mysql> UPDATE student set
    -> name='caocao',grade=50
    -> where id=1;
Query OK, 1 row affected (0.02 sec)
Rows matched: 1  Changed: 1  Warnings: 0

        上述 SQL 语句执行成功后,会将 id 为 1 的数据进行更新。为了验证数据是否更新成功,使用 SELECT 语句查看数据库 student 中 id 为1的记录,查询结果如下所示:

mysql> select * from student
    -> where id=1;
+------+--------+-------+
| id   | name   | grade |
+------+--------+-------+
|    1 | caocao |    50 |
+------+--------+-------+
1 row in set (0.00 sec)

        从查询结果可以看到,id 字段值为1的记录发生了更新,记录中 name字段的值变为 'caocao',grade 字段的值变为 50。如果表中有多条记录满足 WHERE 子句中的条件表达式,则满足条件的记录都会发生更新。
        例如,更新 student 表中 id 字段值小于 4 的记录,将这些记录的 grade 字段值都更新为 100。在更新数据前,首先使用查询语句查看 id 字段值小 4 的记录,执行结果如下所示:

mysql> select * from student
    -> where id<4;
+------+--------+-------+
| id   | name   | grade |
+------+--------+-------+
|    1 | caocao |    50 |
|    2 | lisi   |    95 |
|    3 | wangwu |  61.5 |
+------+--------+-------+
3 rows in set (0.00 sec)

        从查看结果可以看到,id 字段值小于4的记录一共有三条,它们的 grade 字段值各不相同。下面使用 UPDATE 语句更新这三条记录,UPDATE 语句如下所示:

mysql> UPDATE student
    -> SET grade=100
    -> WHERE id<4;
Query OK, 3 rows affected (0.00 sec)
Rows matched: 3  Changed: 3  Warnings: 0

        执行 UPDATE 语句更新 student 表中的数据,然后通过查询语句查看更新后的数据,执行结果如下所示:

mysql> select * from student
    -> WHERE id<4;
+------+--------+-------+
| id   | name   | grade |
+------+--------+-------+
|    1 | caocao |   100 |
|    2 | lisi   |   100 |
|    3 | wangwu |   100 |
+------+--------+-------+
3 rows in set (0.00 sec)

        从查询结果可以看出,id 字段值为1、2、3 的记录其 grade 字段值都变为 100,这说明满足 WHERE 子句中条件表达式的记录都更新成功。

2、PDATE 更新全部数据

        在 UPDATE语句中如果没有使用 WHERE子句,则会将表中所有记录的指定字段都进行更新。
        例如,更新 student 表中全部记录,将 grade 字段值都更新为 80,UPDATE语句如下所示:

mysql> UPDATE student
    -> SET grade=80;
Query OK, 6 rows affected (0.00 sec)
Rows matched: 6  Changed: 6  Warnings: 0

        执行 UPDATE 语句更新 student 表中的数据,接下来通过查询语句查看更新后的记录,SQL 语句如下所示:

mysql> select * from student;
+------+-----------+-------+
| id   | name      | grade |
+------+-----------+-------+
|    1 | caocao    |    80 |
|    2 | lisi      |    80 |
|    3 | wangwu    |    80 |
|    4 | zhaoliu   |    80 |
| NULL | sunbin    |    80 |
|    5 | boya      |    80 |
|    6 | lilei     |    80 |
|    7 | hanmeimei |    80 |
|    8 | poly      |    80 |
|    9 | liubei    |    80 |
|   10 | guanyu    |    80 |
|   11 | zhangfei  |    80 |
+------+-----------+-------+
12 rows in set (0.00 sec)

        从查询结果可以看出,student 表中所有记录的 grade 字段都变为 80,数据更新成功。

  • 14
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Code repairman

你的鼓励将是我创作的最大的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值