广告
返回顶部
首页 > 资讯 > 数据库 >SQL 数据的更新(UPDATE 语句的使用方法)
  • 539
分享到

SQL 数据的更新(UPDATE 语句的使用方法)

SQL数据的更新(UPDATE语句的使用方法) 2017-08-23 06:08:21 539人浏览 无得
摘要

目录一、UPDATE 语句的基本语法二、指定条件的 UPDATE 语句(搜索型 UPDATE)三、使用 NULL 进行更新四、多列更新请参阅 学习重点 使用 UPDATE 语句可以更改(更新)表中的数据。 更新部分数据行时可以使

SQL 数据的更新(UPDATE 语句的使用方法)

目录
  • 一、UPDATE 语句的基本语法
  • 二、指定条件的 UPDATE 语句(搜索型 UPDATE)
  • 三、使用 NULL 进行更新
  • 四、多列更新
  • 请参阅

学习重点

  • 使用 UPDATE 语句可以更改(更新)表中的数据。

  • 更新部分数据行时可以使用 WHERE 来指定更新对象的条件。通过 WHERE 子句指定更新对象的 UPDATE 语句称为搜索型 UPDATE 语句。

  • UPDATE 语句可以将列的值更新为 NULL

  • 同时更新多列时,可以在 UPDATE 语句的 SET 子句中,使用逗号分隔更新对象的多个列。

一、UPDATE 语句的基本语法

使用 INSERT 语句向表中插入数据之后,有时却想要再更改数据,例如“将商品销售单价登记错了”等的时候。这时并不需要把数据删除之后再重新插入,使用 UPDATE 语句就可以改变表中的数据了。

KEYWORD

  • UPDATE 语句

INSERT 语句、DELETE 语句一样,UPDATE 语句也属于 DML 语句。通过执行该语句,可以改变表中的数据。其基本语法如下所示。

语法 4 改变表中数据的 UPDATE 语句

UPDATE <表名>
   SET <列名> = <表达式>;

将更新对象的列和更新后的值都记述在 SET 子句中。我们还是以 Product(商品)表为例,由于之前我们删除了“销售单价大于等于 4000 日元”的 2 行数据,现在该表中只剩下了 6 行数据了(表 2)。

KEYWORD

  • SET 子句

表 2 Product

product_id
(商品编号)
product_name
(商品名称)
product_type
(商品种类)
sale_price
(销售单价)
purchase_price
(进货单价)
reGISt_date
(登记日期)
0001 T 恤衫 衣服 1000 500 2009-09-20
0002 打孔器 办公用品 500 320 2009-09-11
0004 菜刀 厨房用具 3000 2800 2009-09-20
0006 叉子 厨房用具 500 2009-09-20
0007 擦菜板 厨房用具 880 790 2008-04-28
0008 圆珠笔 办公用品 100 2009-11-11

接下来,让我们尝试把 regist_date 列(登记日期)的所有数据统一更新为“2009-10-10”。具体的 sql 语句请参见代码清单 15。

代码清单 15 将登记日期全部更新为“2009-10-10”

UPDATE Product
   SET regist_date = "2009-10-10";

表中的数据有何变化呢?我们通过 SELECT 语句来确认一下吧。

-- 确认更新内容
SELECT * FROM Product ORDER BY product_id;

执行结果

将登记日期全部更新为“2009-10-10”

此时,连登记日期原本为 NULL 的数据行(运动 T 恤)的值也更新为 2009-10-10 了。

将登记日期全部更新为“2009-10-10”

二、指定条件的 UPDATE 语句(搜索型 UPDATE

接下来,让我们看一看指定更新对象的情况。更新数据时也可以像 DELETE 语句那样使用 WHERE 子句,这种指定更新对象的 UPDATE 语句称为搜索型 UPDATE 语句。该语句的语法如下所示(与 DELETE 语句十分相似)。

KEYWORD

  • 搜索型 UPDATE

语法 5 更新部分数据行的搜索型 UPDATE

UPDATE <表名>
   SET <列名> = <表达式>
 WHERE <条件>;

例如,将商品种类(product_type)为厨房用具的记录的销售单价(sale_price)更新为原来的 10 倍,请参见代码清单 16。

代码清单 16 将商品种类为厨房用具的记录的销售单价更新为原来的 10 倍

UPDATE Product
   SET sale_price = sale_price * 10
 WHERE product_type = "厨房用具";

我们可以使用如下 SELECT 语句来确认更新后的内容。

-- 确认更新内容
SELECT * FROM Product ORDER BY product_id;

执行结果

执行结果

该语句通过 WHERE 子句中的“product_type = "厨房用具"”条件,将更新对象限定为 3 行。然后通过 SET 子句中的表达式 sale_price * 10,将原来的单价扩大了 10 倍。SET 子句中赋值表达式的右边不仅可以是单纯的值,还可以是包含列的表达式。

三、使用 NULL 进行更新

使用 UPDATE 也可以将列更新为 NULL(该更新俗称为 NULL 清空)。此时只需要将赋值表达式右边的值直接写为 NULL 即可。例如,我们可以将商品编号(product_id)为 0008 的数据(圆珠笔)的登记日期(regist_date)更新为 NULL(代码清单 17)。

KEYWORD

NULL 清空

代码清单 17 将商品编号为 0008 的数据(圆珠笔)的登记日期更新为 NULL

UPDATE Product
   SET regist_date = NULL
 WHERE product_id = "0008";
-- 确认更新内容
SELECT * FROM Product ORDER BY product_id;

执行结果

执行结果

INSERT 语句一样,UPDATE 语句也可以将 NULL 作为一个值来使用。

但是,只有未设置 NOT NULL 约束和主键约束的列才可以清空为 NULL。如果将设置了上述约束的列更新为 NULL,就会出错,这点与 INSERT 语句相同。

法则 6

使用 UPDATE 语句可以将值清空为 NULL(但只限于未设置 NOT NULL 约束的列)。

四、多列更新

UPDATE 语句的 SET 子句支持同时将多个列作为更新对象。例如我们刚刚将销售单价(sale_price)更新为原来的 10 倍,如果想同时将进货单价(purchase_price)更新为原来的一半,该怎么做呢?最容易想到的解决办法可能就是像代码清单 18 那样,执行两条 UPDATE 语句。

代码清单 18 能够正确执行的繁琐的 UPDATE 语句

-- 一条UPDATE语句只更新一列
UPDATE Product
   SET sale_price = sale_price * 10
 WHERE product_type = "厨房用具";

UPDATE Product
   SET purchase_price = purchase_price / 2
 WHERE product_type = "厨房用具";

虽然这样也能够正确地更新数据,但执行两次 UPDATE 语句不但有些浪费,而且增加了 SQL 语句的书写量。其实,我们可以将其合并为一条 UPDATE 语句来处理。合并的方法有两种,请参见代码清单 19 和代码清单 20。

方法①:代码清单 19 将代码清单 18 的处理合并为一条 UPDATE 语句

-- 使用逗号对列进行分隔排列
UPDATE Product
   SET sale_price = sale_price * 10,
       purchase_price = purchase_price / 2
 WHERE product_type = "厨房用具";

方法②:代码清单 20 将代码清单 18 的处理合并为一条 UPDATE 语句

-- 将列用()括起来的清单形式
UPDATE Product
   SET (sale_price, purchase_price) = (sale_price * 10, purchase_price / 2)
 WHERE product_type = "厨房用具";

执行上述两种 UPDATE 语句,都可以得到相同的结果:只有厨房用具的销售单价(sale_price)和进货单价(purchase_price)被更新了。

-- 确认更新内容
SELECT * FROM Product ORDER BY product_id;

执行结果

执行结果

当然,SET 子句中的列不仅可以是两列,还可以是三列或者更多。

需要注意的是第一种方法——使用逗号将列进行分隔排列(代码清单 19),这一方法在所有的 DBMS 中都可以使用。但是第二种方法——将列清单化(代码清单 20),这一方法在某些 DBMS 中是无法使用的 [1]。因此,实际应用中通常都会使用第一种方法。

请参阅

  • 数据的插入
  • 数据的删除
  • 数据的更新
  • 事务

(完)


  1. 可以在 postgresql 和 DB2 中使用。 ↩︎

您可能感兴趣的文档:

--结束END--

本文标题: SQL 数据的更新(UPDATE 语句的使用方法)

本文链接: https://www.lsjlt.com/news/8923.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • SQL 数据的更新(UPDATE 语句的使用方法)
    目录一、UPDATE 语句的基本语法二、指定条件的 UPDATE 语句(搜索型 UPDATE)三、使用 NULL 进行更新四、多列更新请参阅 学习重点 使用 UPDATE 语句可以更改(更新)表中的数据。 更新部分数据行时可以使...
    99+
    2017-08-23
    SQL 数据的更新(UPDATE 语句的使用方法)
  • mysql数据库中Update更新语句的用法
    Update更新语句,一般与WHERE搭配使用,指定要更改的那一条数据的条件,使用UPDATE的SET来修改指定的字段为指定的值。语法如下:例如:要修改Person数据表中LastName等于Wil...
    99+
    2022-10-18
  • SQL中如何使用UPDATE更新语句
    SQL中如何使用UPDATE更新语句,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。Update 语句Update 语句用于修改表中的数据。语法...
    99+
    2022-10-18
  • SQL的UPDATE语句怎么使用
    UPDATE语句用于修改数据库表中的数据记录。它的基本语法如下:```UPDATE 表名SET 列名1 = 值1, 列名2 = 值2...
    99+
    2023-08-09
    SQL UPDATE
  • 使用T-SQL语句操作数据表-更新数据
    使用update语句更新表中的数据。也就是修改表中的数据。update语法格式:update <表名> set <列名=更新值> [where <更新条件&g...
    99+
    2022-10-18
  • 使用T-SQL语句插入、更新、删除数据表
        在对数据进行管理时,使用SSMS进行数据维护有可视化、方便的优点,但是在批量维护或重复维护时,使用SSMS就不方便了,还容易出错,这就需要编写SQL语句对数据库进行维护SQL和T...
    99+
    2022-10-18
  • SQL 数据的插入(INSERT 语句的使用方法)
    目录一、什么是 INSERT二、INSERT 语句的基本语法三、列清单的省略四、插入 NULL五、插入默认值六、从其他表中复制数据请参阅 学习重点 使用 INSERT 语句可以向表中插入数据(行)。原则上,INSERT 语句每次执行...
    99+
    2020-12-13
    SQL 数据的插入(INSERT 语句的使用方法)
  • SQL 数据的删除(DELETE 语句的使用方法)
    目录一、DROP TABLE 语句和 DELETE 语句二、DELETE 语句的基本语法三、指定删除对象的 DELETE 语句(搜索型 DELETE)请参阅 学习重点 如果想将整个表全部删除,可以使用 DROP TABLE 语句,如...
    99+
    2019-03-30
    SQL 数据的删除(DELETE 语句的使用方法)
  • SQL语句中的ON DUPLICATE KEY UPDATE使用
    目录一:主键索引,唯一索引和普通索引的关系主键索引唯一索引:普通索引:二:ON DUPLICATE KEY UPDATE使用测试(mysql下的Innodb引擎)1:ON DUPLICATE KEY UPDATE...
    99+
    2022-08-11
    SQLONDUPLICATEKEYUPDATE
  • sql语句修改数据的方法
    这篇文章主要介绍了sql语句修改数据的方法,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。sql语句修改数据SQL 中,可以使用 UPDAT&...
    99+
    2022-10-18
  • 用sql语句数据库更新创建时间和更新时间
    文章目录 前言一、sql更新时间方法总结 前言 用@TableField注解注入,从而更新时间,这种是常用的。还有一种方法,直接用sql语句更新。 下面介绍第二种方法。 一、sql更新...
    99+
    2023-09-01
    数据库 sql mysql
  • MySQL数据库的更新语句
    本篇内容主要讲解“MySQL数据库的更新语句”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“MySQL数据库的更新语句”吧!  一、INSERT和REPLACE ...
    99+
    2022-10-18
  • SQL语句中的数据删除和更新是怎样的
    SQL语句中的数据删除和更新是怎样的,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。1.删除1)删除记录 Delete from ...
    99+
    2022-10-19
  • mysql多表join时候update更新数据的方法
    sql语句:复制代码 代码如下:update item i,resource_library r,resource_review_link l set i.name=CON...
    99+
    2022-11-21
    join update
  • mySQL 用一个表的数据更新另一个表 的SQL语句
    概述:用一个表中的字段去更新另外一个表中的字段, MySQL 中有相应的 update 语句来支持,不过这个 update 语法有些特殊。看一个例子就明白了。 方法一: update people s set city_name...
    99+
    2023-08-17
    sql mysql 数据库
  • 如何使用SQL语句在MySQL中更新和删除数据?
    如何使用SQL语句在MySQL中更新和删除数据?在MySQL数据库中,更新和删除数据是非常常见的操作。通过使用SQL语句,我们可以方便地更新和删除表中的数据。本文将介绍如何使用SQL语句在MySQL中更新和删除数据,并提供具体的代码示例。更...
    99+
    2023-12-17
    MySQL SQL语句 更新删除数据
  • update语句的基本使用方法有哪些
    1. 修改单个列的值:```sqlUPDATE 表名 SET 列名=新值 WHERE 条件;```示例:```sql...
    99+
    2023-06-13
    update语句
  • 通过SQL语句用一张表更新另一张表的方法
    这篇文章将为大家详细讲解有关通过SQL语句用一张表更新另一张表的方法,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。通过SQL语句用一张表更新另一张表的方法:可以使用SEL...
    99+
    2022-10-18
  • 数据库SQL语句的使用
    这篇文章主要讲解了“数据库SQL语句的使用”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“数据库SQL语句的使用”吧!1、创建数据库 create ...
    99+
    2022-10-18
  • MySQL数据库的SQL语句优化方法
    1、使用 show status 了解各种 SQL 的执行频率 mysql> show status like "Com%"; 该命令可以查询 sql 命令的执行次数。 2、定位执行效率较低的 SQL 语句 定位执行效率较低的 S...
    99+
    2021-06-02
    MySQL数据库的SQL语句优化方法
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作