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)
分享到:
相关推荐
根据提供的文件信息,本文将详细解释Visual FoxPro (VFP) 中的核心数据库操作命令,包括SELECT、DELETE、UPDATE等,并对部分其他重要的SQL语句进行介绍。这些知识点对于理解和掌握VFP数据库管理至关重要。 ### ...
### ORACLE UPDATE 语句语法与性能分析 #### 引言 在数据库管理与操作中,`UPDATE`语句是SQL语言中极为重要的组成部分,它允许我们修改已存在的记录,从而保持数据的时效性和准确性。Oracle数据库作为企业级应用中...
在数据库管理中,UPDATE语句用于修改已存在的数据记录,而SELECT语句则用于查询数据。在某些场景下,我们可能需要从UPDATE语句转换为SELECT语句,以验证更新操作将影响哪些行或者理解更新逻辑。这在调试、数据分析或...
下面将详细介绍`UPDATE`语句的工作原理、语法结构以及在实际应用中的常见用法。 `UPDATE`语句的基本语法如下: ```sql UPDATE 表名 SET 列名 = 新值, 列名2 = 新值2, ... WHERE 条件; ``` 1. **表名**:你需要...
在Sybase IQ中,SQL语法支持各种操作,如数据查询、插入、更新和删除,以及数据库对象的创建和管理。 1. **创建表**:在Sybase IQ中,你可以使用`CREATE TABLE`语句来定义一个新的表结构,指定字段名、数据类型、...
ID=a.customer_id) 是等价的,因为它们的子查询都只...总之,Oracle UPDATE语句的语法和性能取决于许多因素,包括数据量、索引策略、查询复杂性和并发性。理解这些因素并适当优化可以帮助提高数据库的性能和响应时间。
mysql “ON DUPLICATE KEY UPDATE” 语法如果在INSERT语句末尾指定了ON DUPLICATE KEY UPDATE,并且插入行后会导致在一个UNIQUE索引或PRIMARY KEY中出现重复值,则在出现重复值的行执行UPDATE;如果不会导致唯一值列...
标准 Update 语句是 Oracle 中最基本的更新语句,语法为:`UPDATE 表名称 SET 列名称 = 新值 WHERE 列名称 = 某值`。例如:`UPDATE t_join_situation SET join_state='1' WHERE year='2011'`。这种方式适用于更新...
当面对单表更新或较简单的SQL语句时,可以直接使用标准的update语法进行优化。这种方法的优化标准是尽可能简化SQL语句,减少不必要的计算和条件判断,从而提升执行效率。例如,若要更新某个字段的值,直接使用如下...
### SQL核心功能详解:Insert,Select,Update和Delete 在当今数据驱动的世界中,SQL(Structured Query Language)作为处理和管理关系型数据库的标准语言,其重要性不言而喻。熟练掌握SQL对于任何数据库用户来说都...
结合使用`UPDATE`与`SELECT`的基本语法如下: ```sql UPDATE 表1 SET 列名 = (SELECT 列名 FROM 表2 WHERE 条件) WHERE 条件; ``` 其中,“表1”是需要被更新的表,“表2”是用来提供更新值的表。“列名”表示需要...
2014年Spark Summit于6月30日至7月2日在美国旧金山举行。Spark、Shark、Spark流媒体和相关项目及产品的主要用户聚集一地,共同探讨Spark项目开发的方向,以及Spark在各种各样应用程序中的实践情况。
它支持各种选择条件(WHERE子句)、排序(ORDER BY子句)、分组(GROUP BY子句)和聚合函数(如COUNT(), SUM(), AVG(), MAX(), MIN())。 3. 更新数据:UPDATE语句用于修改已存在的记录。 4. 删除数据:DELETE FROM...
MySQL和PostgreSQL虽然都是关系型数据库管理系统,但它们的SQL语法在某些方面有所不同。例如,MySQL支持`ON UPDATE CURRENT_TIMESTAMP`特性,当表中的某个字段被更新时,该字段会自动设置为当前时间。而在PostgreSQL...
在本资源"SQL语法大全"中,我们将会深入探讨SQL的标准语法,理解各种SQL概念,并学习如何运用常用的SQL语句。 1. **SQL基础** SQL的基础包括数据类型(如整数、字符串、日期/时间)、数据表的创建与管理,以及基本...
MySQL 语法语句大全 MySQL 语法语句大全是一本很好的教材,为 MySQL 初级学者提供了详细的指南。本教材涵盖了 MySQL 的基本概念、SQL 语句、数据库设计、查询技术、索引优化、存储过程等方面的知识。 一、创建表 ...
Access语法大全.pdf是一份关于Access数据库语法的详细手册,涵盖了Access语法的各种方面,包括SELECT语句、DELETE语句、UPDATE语句、JOIN语句等。 SELECT语句 SELECT语句是Access数据库中最基本的语句之一,用于从...
sql语法 sql 语法 大全 select update from
`update-script`通常使用AOSP(Android Open Source Project)提供的格式和语法,包括一系列的命令,如`applypatch`用于应用补丁,`format`用于格式化分区,`push`用于复制文件到设备,以及`install-recovery`等。...
### Trigger语法详解 #### 一、引言 在数据库领域,触发器(Trigger)是一种特殊类型的存储过程,它被设计用于响应对特定表的数据修改操作(如INSERT、UPDATE或DELETE)。触发器能够在这些操作发生时自动执行,...