`
talentvictor
  • 浏览: 32152 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

【转】各种update语法

    博客分类:
  • DB2
阅读更多
QL update select语句

最常用的update语法是:

UPDATE TABLE_NAME
SET column_name1 = VALUE WHRER column_name2 = VALUE
如果我的更新值Value是从一条select语句拿出来,而且有很多列的话,用这种语法就很麻烦

第一,要select出来放在临时变量上,有很多个很难保存。
第二,再将变量进行赋值。

列多起来非常麻烦,能不能像Insert那样,把整个Select语句的结果进行插入呢?
就好象下面::


INSERT INTO table1
(c1, c2, c3)
(SELECT v1, v2, v3 FROM table2)
答案是可以的,具体的语法如下:

UPDATE table1 alias
SET (column_name,column_name ) = (
SELECT (column_name, column_name)
FROM table2
WHERE column_name = alias.column_name)
WHERE column_name = VALUE
下面是这样一个例子:
两个表a、b,想使b中的memo字段值等于a表中对应id的name值
表a:


id    name
1     王
2     李
3     张
表b:


id    ClientName  
1
2
3
(MS SQL Server)语句:

UPDATE b   SET   ClientName    = a.name    FROM a,b    WHERE a.id = b.id
(Oralce)语句:

UPDATE b   SET   (ClientName)    =   (SELECT name FROM a WHERE b.id = a.id)
update set from 语句格式
当where和set都需要关联一个表进行查询时,整个update执行时,就需要对被关联的表进行两次扫描,显然效率比较低。

对于这种情况,Sybase和SQL SERVER的解决办法是使用UPDATE…SET…FROM…WHERE…的语法,实际上就是从源表获取更新数据。

在 SQL 中,表连接(left join、right join、inner join 等)常常用于 select 语句。
其实在 SQL 语法中,这些连接也是可以用于 update 和 delete 语句的,在这些语句中使用 join 还常常得到事半功倍的效果。


UPDATE T_OrderForm SET T_OrderForm.SellerID =B.L_TUserID
FROM T_OrderForm A LEFT JOIN T_ProductInfo   B ON B.L_ID=A.ProductID
用来同步两个表的数据!

Oralce和DB2都支持的语法:

UPDATE A SET (A1, A2, A3) = (SELECT B1, B2, B3 FROM B WHERE A.ID = B.ID)
MS SQL Server不支持这样的语法,相对应的写法为:

UPDATE A  SET A1 = B1, A2 = B2, A3 = B3  FROM A LEFT JOIN B ON A.ID = B.ID
个人感觉MS SQL Server的Update语法功能更为强大。MS SQL SERVER的写法:

UPDATE A SET A1 = B1, A2 = B2, A3 = B3 FROM A, B WHERE A.ID = B.ID
在Oracle和DB2中的写法就比较麻烦了,如下:

UPDATE A SET (A1, A2, A3) = (SELECT B1, B2, B3 FROM B WHERE A.ID = B.ID)
WHERE ID IN (SELECT B.ID FROM B WHERE A.ID = B.ID)
分享到:
评论
1 楼 zys08 2014-05-21  

相关推荐

    VFP语法Selet,delete,Update等语法,方便学习

    根据提供的文件信息,本文将详细解释Visual FoxPro (VFP) 中的核心数据库操作命令,包括SELECT、DELETE、UPDATE等,并对部分其他重要的SQL语句进行介绍。这些知识点对于理解和掌握VFP数据库管理至关重要。 ### ...

    ORACLE UPDATE 语句语法与性能分析看法

    ### ORACLE UPDATE 语句语法与性能分析 #### 引言 在数据库管理与操作中,`UPDATE`语句是SQL语言中极为重要的组成部分,它允许我们修改已存在的记录,从而保持数据的时效性和准确性。Oracle数据库作为企业级应用中...

    update语句

    下面将详细介绍`UPDATE`语句的工作原理、语法结构以及在实际应用中的常见用法。 `UPDATE`语句的基本语法如下: ```sql UPDATE 表名 SET 列名 = 新值, 列名2 = 新值2, ... WHERE 条件; ``` 1. **表名**:你需要...

    根据update语句自动生成select语句

    在数据库管理中,UPDATE语句用于修改已存在的数据记录,而SELECT语句则用于查询数据。在某些场景下,我们可能需要从UPDATE语句转换为SELECT语句,以验证更新操作将影响哪些行或者理解更新逻辑。这在调试、数据分析或...

    sybase基本的 语法大全

    在Sybase IQ中,SQL语法支持各种操作,如数据查询、插入、更新和删除,以及数据库对象的创建和管理。 1. **创建表**:在Sybase IQ中,你可以使用`CREATE TABLE`语句来定义一个新的表结构,指定字段名、数据类型、...

    ORACLE_UPDATE_语句语法与性能分析

    ID=a.customer_id) 是等价的,因为它们的子查询都只...总之,Oracle UPDATE语句的语法和性能取决于许多因素,包括数据量、索引策略、查询复杂性和并发性。理解这些因素并适当优化可以帮助提高数据库的性能和响应时间。

    深入mysql ON DUPLICATE KEY UPDATE 语法的分析

    mysql “ON DUPLICATE KEY UPDATE” 语法如果在INSERT语句末尾指定了ON DUPLICATE KEY UPDATE,并且插入行后会导致在一个UNIQUE索引或PRIMARY KEY中出现重复值,则在出现重复值的行执行UPDATE;如果不会导致唯一值列...

    oracle的update的五种方式

    标准 Update 语句是 Oracle 中最基本的更新语句,语法为:`UPDATE 表名称 SET 列名称 = 新值 WHERE 列名称 = 某值`。例如:`UPDATE t_join_situation SET join_state='1' WHERE year='2011'`。这种方式适用于更新...

    update语句的优化-oracle .pdf

    当面对单表更新或较简单的SQL语句时,可以直接使用标准的update语法进行优化。这种方法的优化标准是尽可能简化SQL语句,减少不必要的计算和条件判断,从而提升执行效率。例如,若要更新某个字段的值,直接使用如下...

    Insert,Select,Update和Delete。

    ### SQL核心功能详解:Insert,Select,Update和Delete 在当今数据驱动的世界中,SQL(Structured Query Language)作为处理和管理关系型数据库的标准语言,其重要性不言而喻。熟练掌握SQL对于任何数据库用户来说都...

    Update和Select结合使用

    结合使用`UPDATE`与`SELECT`的基本语法如下: ```sql UPDATE 表1 SET 列名 = (SELECT 列名 FROM 表2 WHERE 条件) WHERE 条件; ``` 其中,“表1”是需要被更新的表,“表2”是用来提供更新值的表。“列名”表示需要...

    Databricks-Update-and-Announcing-Databricks-Cloud-Ion-Stoica000

    2014年Spark Summit于6月30日至7月2日在美国旧金山举行。Spark、Shark、Spark流媒体和相关项目及产品的主要用户聚集一地,共同探讨Spark项目开发的方向,以及Spark在各种各样应用程序中的实践情况。

    mysql语法手册-mysql语法手册-mysql语法手册-mysql语法手册

    它支持各种选择条件(WHERE子句)、排序(ORDER BY子句)、分组(GROUP BY子句)和聚合函数(如COUNT(), SUM(), AVG(), MAX(), MIN())。 3. 更新数据:UPDATE语句用于修改已存在的记录。 4. 删除数据:DELETE FROM...

    mysql语句转postgres的工具

    MySQL和PostgreSQL虽然都是关系型数据库管理系统,但它们的SQL语法在某些方面有所不同。例如,MySQL支持`ON UPDATE CURRENT_TIMESTAMP`特性,当表中的某个字段被更新时,该字段会自动设置为当前时间。而在PostgreSQL...

    SQL语法大全,标准语法,各种sql概念的解释,常用语句的使用

    在本资源"SQL语法大全"中,我们将会深入探讨SQL的标准语法,理解各种SQL概念,并学习如何运用常用的SQL语句。 1. **SQL基础** SQL的基础包括数据类型(如整数、字符串、日期/时间)、数据表的创建与管理,以及基本...

    MySQL语法语句大全

    MySQL 语法语句大全 MySQL 语法语句大全是一本很好的教材,为 MySQL 初级学者提供了详细的指南。本教材涵盖了 MySQL 的基本概念、SQL 语句、数据库设计、查询技术、索引优化、存储过程等方面的知识。 一、创建表 ...

    Access语法大全.pdf

    Access语法大全.pdf是一份关于Access数据库语法的详细手册,涵盖了Access语法的各种方面,包括SELECT语句、DELETE语句、UPDATE语句、JOIN语句等。 SELECT语句 SELECT语句是Access数据库中最基本的语句之一,用于从...

    sql语法 sql语法大全

    sql语法 sql 语法 大全 select update from

    Nexus 5 OTA update-binary 和 update-script

    `update-script`通常使用AOSP(Android Open Source Project)提供的格式和语法,包括一系列的命令,如`applypatch`用于应用补丁,`format`用于格式化分区,`push`用于复制文件到设备,以及`install-recovery`等。...

    trigger语法经典语法全

    ### Trigger语法详解 #### 一、引言 在数据库领域,触发器(Trigger)是一种特殊类型的存储过程,它被设计用于响应对特定表的数据修改操作(如INSERT、UPDATE或DELETE)。触发器能够在这些操作发生时自动执行,...

Global site tag (gtag.js) - Google Analytics