当前位置:网站首页>数据修改修改
数据修改修改
2022-07-24 13:37:00 【华为云】
12.2 数据更新
MySQL支持对数据表中的数据进行更新操作,使用UPDATE语句来更新数据表中的数据记录。可以更新数据表中的所有记录,也可以指定更新条件来更新数据表中的特定记录。
更新数据的语法格式如下:
UPDATE table_nameSET column1=value1, column2=value2, … , column=valuen[WHERE condition]语法格式说明如下:
·table_name:需要更新数据的表名称。
·column1,column2,…,columnn:需要更新的字段名称。
·value1,value2,…,valuen:字段的更新值。
·condition:更新的记录需要满足的条件限制。
其中,WHERE条件语句可以省略,当省略WHERE条件语句时,更新数据表中的全部数据。
12.2.1 更新数据表中的所有记录
更新数据表中的所有记录,只需要将UPDATE语句的WHERE条件省略即可。
例如,将t_goods数据表中的t_upper_time字段统一更新为“2020-12-12 00:00:00”。
mysql> UPDATE t_goods SET t_upper_time = '2020-12-12 00:00:00';Query OK, 12 rows affected (0.11 sec)Rows matched: 12 Changed: 12 Warnings: 0SQL语句执行成功,接下来查看t_goods数据表中的数据。
mysql> SELECT * FROM t_goods;+----+---------------+-----------------+------------+---------+---------+---------------------+| id | t_category_id | t_category | t_name | t_price | t_stock | t_upper_time |+----+---------------+-----------------+------------+---------+---------+---------------------+| 1 | 1 | 女装/女士精品 | T恤 | 39.90 | 1000 | 2020-12-12 00:00:00 || 2 | 1 | 女装/女士精品 | 连衣裙 | 79.90 | 2500 | 2020-12-12 00:00:00 || 3 | 1 | 女装/女士精品 | 卫衣 | 79.90 | 1500 | 2020-12-12 00:00:00 || 4 | 1 | 女装/女士精品 | 牛仔裤 | 0.00 | 0 | 2020-12-12 00:00:00 || 5 | 1 | 女装/女士精品 | 百褶裙 | 29.90 | 500 | 2020-12-12 00:00:00 || 6 | 1 | 女装/女士精品 | 呢绒外套 | 399.90 | 1200 | 2020-12-12 00:00:00 || 7 | 2 | 户外运动 | 自行车 | 399.90 | 1000 | 2020-12-12 00:00:00 || 8 | 2 | 户外运动 | 山地自行车 | 1399.90 | 2500 | 2020-12-12 00:00:00 || 9 | 2 | 户外运动 | 登山杖 | 59.90 | 1500 | 2020-12-12 00:00:00 || 10 | 2 | 户外运动 | 骑行装备 | 399.90 | 3500 | 2020-12-12 00:00:00 || 11 | 2 | 户外运动 | 运动外套 | 799.90 | 500 | 2020-12-12 00:00:00 || 12 | 2 | 户外运动 | 滑板 | 499.90 | 1200 | 2020-12-12 00:00:00 |+----+---------------+-----------------+------------+---------+---------+---------------------+12 rows in set (0.00 sec)t_goods数据表中的t_upper_time字段的数据被统一修改为“2020-12-12 00:00:00”,说明数据更新成功。
12.2.2 更新表中特定的数据行
MySQL支持更新表中特定的数据行,此时,需要添加WHERE条件对更新的数据记录进行限制。
例如,将t_goods数据表中id为2的数据记录的商品名称修改为“牛油果绿连衣裙”。首先,查看t_goods数据表中id为2的数据。
mysql> SELECT * FROM t_goods WHERE id = 2;+----+---------------+---------------------+-----------+---------+---------+-------------------+| id | t_category_id | t_category | t_name | t_price | t_stock | t_upper_time |+----+---------------+---------------------+-----------+---------+---------+-------------------+| 2 | 1 | 女装/女士精品 | 连衣裙 | 79.90 | 2500 |2020-12-12 00:00:00|+----+---------------+---------------------+-----------+---------+---------+-------------------+1 row in set (0.00 sec)可以看到,修改数据之前id为2的记录的商品名称为“连衣裙”。执行更新数据的SQL语句。
mysql> UPDATE t_goods SET t_name = '牛油果绿连衣裙' WHERE id = 2;Query OK, 1 row affected (0.38 sec)Rows matched: 1 Changed: 1 Warnings: 0SQL语句执行成功,再次查看t_goods数据表中id为2的数据记录。
mysql> SELECT * FROM t_goods WHERE id = 2; +----+---------------+---------------+-----------------+---------+---------+-------------------+| id | t_category_id | t_category | t_name | t_price | t_stock | t_upper_time |+----+---------------+---------------+-----------------+---------+---------+-------------------+| 2 | 1 | 女装/女士精品 | 牛油果绿连衣裙 | 79.90 |2500 |2020-12-12 00:00:00|+----+---------------+-------- ------+-----------------+---------+---------+-------------------+1 row in set (0.00 sec)数据已经被修改为“牛油果绿连衣裙”,说明数据修改成功。
12.2.3 更新某个范围内的数据
MySQL支持更新某个范围内的数据,可以通过BETWEEN…AND语句或者“>”“>=”“<”“<=”“<>”“!=”等运算符,或者LIKE、IN、NOT IN等语句实现。
1.使用BETWEEN…AND语句更新数据
例如,将t_goods数据表中id为1~6的数据记录的t_upper_time字段的值更新为“2020-11-11 00:00:00”。
mysql> UPDATE t_goods SET t_upper_time = '2020-11-11 00:00:00' WHERE id BETWEEN 1 AND 6;Query OK, 6 rows affected (0.00 sec)Rows matched: 6 Changed: 6 Warnings: 0SQL语句执行成功,接下来查看t_goods数据表中的记录。
mysql> SELECT * FROM t_goods;+----+---------------+---------------+----------------+---------+---------+--------------------+| id | t_category_id | t_category | t_name | t_price | t_stock | t_upper_time |+----+---------------+---------------+----------------+---------+---------+--------------------+| 1 | 1 | 女装/女士精品 | T恤 | 39.90 | 1000 | 2020-11-11 00:00:00|| 2 | 1 | 女装/女士精品 | 牛油果绿连衣裙 | 79.90 | 2500 | 2020-11-11 00:00:00|| 3 | 1 | 女装/女士精品 | 卫衣 | 79.90 | 1500 | 2020-11-11 00:00:00|| 4 | 1 | 女装/女士精品 | 牛仔裤 | 0.00 | 0 | 2020-11-11 00:00:00|| 5 | 1 | 女装/女士精品 | 百褶裙 | 29.90 | 500 | 2020-11-11 00:00:00|| 6 | 1 | 女装/女士精品 | 呢绒外套 | 399.90 | 1200 | 2020-11-11 00:00:00|| 7 | 2 | 户外运动 | 自行车 | 399.90 | 1000 | 2020-12-12 00:00:00|| 8 | 2 | 户外运动 | 山地自行车 | 1399.90 | 2500 | 2020-12-12 00:00:00|| 9 | 2 | 户外运动 | 登山杖 | 59.90 | 1500 | 2020-12-12 00:00:00|| 10 | 2 | 户外运动 | 骑行装备 | 399.90 | 3500 | 2020-12-12 00:00:00|| 11 | 2 | 户外运动 | 运动外套 | 799.90 | 500 | 2020-12-12 00:00:00|| 12 | 2 | 户外运动 | 滑板 | 499.90 | 1200 | 2020-12-12 00:00:00|+----+---------------+---------------+----------------+---------+---------+--------------------+12 rows in set (0.01 sec)id为1~6的数据记录的t_upper_time字段的数据被成功修改为“2020-11-11 00:00:00”。
2.使用运算符更新数据
例如,将商品价格大于或者等于399.90元,小于或者等于799.90元的商品的上架时间修改为“2020-06-18 00:00:00”。
mysql> UPDATE t_goods SET -> t_upper_time = '2020-06-18 00:00:00' -> WHERE -> t_price >= 399.90 AND t_price <= 799.90;Query OK, 5 rows affected (0.00 sec)Rows matched: 5 Changed: 5 Warnings: 0SQL语句执行成功,查看t_goods数据表中的数据。
mysql> SELECT * FROM t_goods;+----+---------------+---------------+----------------+---------+---------+--------------------+| id | t_category_id | t_category | t_name | t_price | t_stock | t_upper_time |+----+---------------+---------------+----------------+---------+---------+--------------------+| 1 | 1 | 女装/女士精品 | T恤 | 39.90 | 1000 | 2020-11-11 0:00:00 || 2 | 1 | 女装/女士精品 | 牛油果绿连衣裙 | 79.90 | 2500 | 2020-11-11 00:00:00 || 3 | 1 | 女装/女士精品 | 卫衣 | 79.90 | 1500 | 2020-11-11 00:00:00 || 4 | 1 | 女装/女士精品 | 牛仔裤 | 0.00 | 0 | 2020-11-11 00:00:00 || 5 | 1 | 女装/女士精品 | 百褶裙 | 29.90 | 500 | 2020-11-11 00:00:00 || 6 | 1 | 女装/女士精品 | 呢绒外套 | 399.90 | 1200 | 2020-06-18 00:00:00 || 7 | 2 | 户外运动 | 自行车 | 399.90 | 1000 | 2020-06-18 00:00:00 || 8 | 2 | 户外运动 | 山地自行车 | 1399.90 | 2500 | 2020-12-12 00:00:00 || 9 | 2 | 户外运动 | 登山杖 | 59.90 | 1500 | 2020-12-12 00:00:00 || 10 | 2 | 户外运动 | 骑行装备 | 399.90 | 3500 | 2020-06-18 00:00:00 || 11 | 2 | 户外运动 | 运动外套 | 799.90 | 500 | 2020-06-18 00:00:00 || 12 | 2 | 户外运动 | 滑板 | 499.90 | 1200 | 2020-06-18 00:00:00 |+----+---------------+---------------+----------------+---------+---------+--------------------+12 rows in set (0.00 sec)价格在399.90~799.90的商品的上架时间被修改为“2020-06-18 00:00:00”,说明数据修改成功。
注意:在更新数据时,其他运算符的使用方式相同,不再赘述。
3.使用LIKE语句更新数据
例如,将t_goods数据表中商品名称包含“牛”字的商品上架时间修改为“2020-03-08 00:00:00”。
mysql> UPDATE t_goods SET -> t_upper_time = '2020-03-08 00:00:00' -> WHERE t_name LIKE '%牛%';Query OK, 2 rows affected (0.00 sec)Rows matched: 2 Changed: 2 Warnings: 0SQL语句执行成功,查看t_goods数据表中的数据。
mysql> SELECT * FROM t_goods;+----+---------------+---------------+---------------+---------+---------+---------------------+| id | t_category_id | t_category | t_name | t_price | t_stock | t_upper_time |+----+---------------+---------------+---------------+---------+---------+---------------------+| 1 | 1 | 女装/女士精品 | T恤 | 39.90 | 1000 | 2020-11-11 00:00:00 || 2 | 1 | 女装/女士精品 | 牛油果绿连衣裙| 79.90 | 2500 | 2020-03-08 00:00:00 || 3 | 1 | 女装/女士精品 | 卫衣 | 79.90 | 1500 | 2020-11-11 00:00:00 || 4 | 1 | 女装/女士精品 | 牛仔 | 0.00 | 0 | 2020-03-08 00:00:00 || 5 | 1 | 女装/女士精品 | 百褶裙 | 29.90 | 500 | 2020-11-11 00:00:00 || 6 | 1 | 女装/女士精品 | 呢绒外套 | 399.90 | 1200 | 2020-06-18 00:00:00 || 7 | 2 | 户外运动 | 自行车 | 399.90 | 1000 | 2020-06-18 00:00:00 || 8 | 2 | 户外运动 | 山地自行车 | 1399.90 | 2500 | 2020-12-12 00:00:00 || 9 | 2 | 户外运动 | 登山杖 | 59.90 | 1500 | 2020-12-12 00:00:00 || 10 | 2 | 户外运动 | 骑行装备 | 399.90 | 3500 | 2020-06-18 00:00:00 || 11 | 2 | 户外运动 | 运动外套 | 799.90 | 500 | 2020-06-18 00:00:00 || 12 | 2 | 户外运动 | 滑板 | 499.90 | 1200 | 2020-06-18 00:00:00 |+----+---------------+---------------+---------------+---------+---------+---------------------+12 rows in set (0.00 sec)商品名称为“牛油果绿连衣裙”和“牛仔裤”的上架时间被修改为“2020-03-08 00:00:00”,说明数据修改成功。
4.使用IN语句更新数据
例如,将t_goods数据表中id为7~12的商品数据的上架时间更新为“2020-10-01 00:00:00”。
mysql> UPDATE t_goods SET -> t_upper_time = '2020-10-01 00:00:00' -> WHERE id IN (7, 8, 9, 10, 11, 12); Query OK, 6 rows affected (0.00 sec)Rows matched: 6 Changed: 6 Warnings: 0SQL语句执行成功,查看t_goods数据表中的数据。
mysql> SELECT * FROM t_goods;+----+---------------+--------------+---------------+---------+---------+---------------------+| id | t_category_id | t_category | t_name | t_price | t_stock | t_upper_time |+----+---------------+--------------+---------------+---------+---------+---------------------+| 1 | 1 | 女装/女士精品| T恤 | 39.90 | 1000 | 2020-11-11 00:00:00 || 2 | 1 | 女装/女士精品| 牛油果绿连衣裙 | 79.90 | 2500 | 2020-03-08 00:00:00 || 3 | 1 | 女装/女士精品| 卫衣 | 79.90 | 1500 | 2020-11-11 00:00:00 || 4 | 1 | 女装/女士精品| 牛仔裤 | 0.00 | 0 | 2020-03-08 00:00:00 || 5 | 1 | 女装/女士精品| 百褶裙 | 29.90 | 500 | 2020-11-11 00:00:00 || 6 | 1 | 女装/女士精品| 呢绒外套 | 399.90 | 1200 | 2020-06-18 00:00:00 || 7 | 2 | 户外运动 | 自行车 | 399.90 | 1000 | 2020-10-01 00:00:00 || 8 | 2 | 户外运动 | 山地自行车 | 1399.90 | 2500 | 2020-10-01 00:00:00 || 9 | 2 | 户外运动 | 登山杖 | 59.90 | 1500 | 2020-10-01 00:00:00 || 10 | 2 | 户外运动 | 骑行装备 | 399.90 | 3500 | 2020-10-01 00:00:00 || 11 | 2 | 户外运动 | 运动外套 | 799.90 | 500 | 2020-10-01 00:00:00 || 12 | 2 | 户外运动 | 滑板 | 499.90 | 1200 | 2020-10-01 00:00:00 |+----+---------------+--------------+---------------+---------+---------+---------------------+12 rows in set (0.00 sec)t_goods数据表中id为7~12的商品数据的上架时间被修改为“2020-10-01 00:00:00”,说明数据修改成功。
注意:NOT IN语句更新数据的使用方式与IN语句相同,只不过IN语句是更新某个字段的值包含在值列表中的数据,NOT IN语句是更新某个字段的值不包含在值列表中的数据,不再赘述。
12.2.4 更新符合正则表达式的数据
MySQL中匹配正则表达式需要使用关键字REGEXP,在REGEXP关键字后面跟上正则表达式的规则即可。
例如,将t_goods数据表中商品名称以“裙”结尾的商品记录的上架时间,修改为“2020-08-08 00:00:00”。
mysql> UPDATE t_goods SET -> t_upper_time = '2020-08-08 00:00:00' -> WHERE t_name REGEXP '裙$';Query OK, 2 rows affected (0.21 sec)Rows matched: 2 Changed: 2 Warnings: 0SQL语句执行成功,查看t_goods数据表中的数据。
mysql> SELECT * FROM t_goods;+----+---------------+--------------+---------------+---------+---------+---------------------+| id | t_category_id | t_category | t_name | t_price | t_stock | t_upper_time |+----+---------------+--------------+---------------+---------+---------+---------------------+| 1 | 1 | 女装/女士精品| T恤 | 39.90 | 1000 | 2020-11-11 00:00:00 || 2 | 1 | 女装/女士精品| 牛油果绿连衣裙 | 79.90 | 2500 | 2020-08-08 00:00:00 || 3 | 1 | 女装/女士精品| 卫衣 | 79.90 | 1500 | 2020-11-11 00:00:00 || 4 | 1 | 女装/女士精品| 牛仔裤 | 0.00 | 0 | 2020-03-08 00:00:00 || 5 | 1 | 女装/女士精品| 百褶裙 | 29.90 | 500 | 2020-08-08 00:00:00 || 6 | 1 | 女装/女士精品| 呢绒外套 | 399.90 | 1200 | 2020-06-18 00:00:00 || 7 | 2 | 户外运动 | 自行车 | 399.90 | 1000 | 2020-10-01 00:00:00 || 8 | 2 | 户外运动 | 山地自行车 | 1399.90 | 2500 | 2020-10-01 00:00:00 || 9 | 2 | 户外运动 | 登山杖 | 59.90 | 1500 | 2020-10-01 00:00:00 || 10 | 2 | 户外运动 | 骑行装备 | 399.90 | 3500 | 2020-10-01 00:00:00 || 11 | 2 | 户外运动 | 运动外套 | 799.90 | 500 | 2020-10-01 00:00:00 || 12 | 2 | 户外运动 | 滑板 | 499.90 | 1200 | 2020-10-01 00:00:00 |+----+---------------+--------------+---------------+---------+---------+---------------------+12 rows in set (0.00 sec)商品名称为“牛油果绿连衣裙”和“百褶裙”的数据记录的上架时间被修改为“2020-08-08 00:00:00”,说明数据修改成功。
注意:有关正则表达式的知识,读者可以参考相关的学习资料,不再赘述。
边栏推荐
- Two stacks implement one queue
- Simple use and difference of symmetric res, AES and asymmetric RSA (JWT)
- Kunyu(坤舆) 安装 详解
- Detailed explanation of odoo JS DoAction
- 【论文阅读】Mean teachers are better role models
- 2022年全国职业院校技能大赛赛项比赛时间、承办校信息统计表(第二批)
- Interview question 01.02. determine whether it is character rearrangement
- Question 10: find numbers in an array with rows and columns in order
- Introduction of embedded network interface scheme and summary of driver debugging methods
- 网络安全——文件上传渗透测试
猜你喜欢

2022.07.21

Implementation of dynamic columns in EAS BOS doc list

On node embedding

Kunyu(坤舆) 安装 详解

Go deadlock problem

开放环境下的群智决策:概念、挑战及引领性技术

Paper notes: swing UNET: UNET like pure transformer for medicalimage segmentation

Network security - Web penetration testing

爱可可AI前沿推介(7.24)

Unity UGUI中scroll bar在游戏中启动界面时没有从最上面显示
随机推荐
The EAS BOS development environment client cannot be started, but the server does show that it is ready
Question 10: find numbers in an array with rows and columns in order
如何生成预期数据?埃默里大学等最新《深度学习可控数据生成》综述,52页pdf涵盖346篇文献全面阐述可控生成技术体系
Kunyu(坤舆) 安装 详解
Chrome plug-in development tutorial
网络安全——中间人攻击渗透测试
Handler learning
Is it safe for Huatai Securities to open an account through channels? Is it formal
Redis (13) -- on master-slave replication of redis
Mass data excel download - the author of this article only tried to download 510000 data, which took 7 seconds
ESP32ADC
Introduction to single chip microcomputer
Dtcloud uses custom fonts
网络安全——过滤绕过注入
The scroll bar in unity ugui is not displayed from the top when launching the interface in the game
Unity UGUI中scroll bar在游戏中启动界面时没有从最上面显示
How to quickly learn Embedded
LeadTools 22 kit LeadTools super set
Repair the problem of adding device groups and editing exceptions on easycvr platform
The use of two-dimensional array (including the definition of two-dimensional array, the declaration and initialization of two-dimensional array (dynamic initialization, static initialization), common