比如有两张表
USER_CHINESE
ID ZHONGWEN
1 张三
2 李四
3 王五
USER_ENGLISH
ID PINYIN
1 zhangsan
2 lisi
4 liuliu
现在我想让USER_CHINESE表中的汉字变成拼音。
sql语句是:
update USER_CHINESE t1
set t1.zhongwen = (select t2.pinyin from USER_ENGLISH t2 where t2.id = t1.id);
这时候,你可能觉得应该update两条。
可是结果是:3条被更新。
看结果:
USER_CHINESE
ID ZHONGWEN
真的是更新了三条。
由于id=3的没有匹配上,所以id=3的记录的ZHONGWEN字段改成null了。
所以,这点一定要注意。
记住:如果update或delete没有where条件,则一定是全表更新的。
如果你不想更新id=3的记录。sql语句可以这样写:
update USER_CHINESE t1
set t1.zhongwen = (select t2.pinyin from USER_ENGLISH t2 where t2.id = t1.id)
where t1.id ! = 3;
这个时候结果是:2条被更新。
USER_CHINESE
ID ZHONGWEN
但是,如果我们每次都在update之前都先找一下匹配不上的id,然后加到where条件中,这样肯定不行。
所以,如果你想让能匹配上的记录更新,匹配不上的记录保持不变。sql语句应该这样写:
update USER_CHINESE t1
set t1.zhongwen = nvl((select t2.pinyin from USER_ENGLISH t2 where t2.id = t1.id),t1.zhongwen);
这个时候结果是:3条被更新。
USER_CHINESE
ID ZHONGWEN
达到目的了。注意这个时候是3条被更新,不是两条。
分享到:
相关推荐
5. **执行SQL**: 使用OracleCommand对象执行SQL语句,可以是SELECT、INSERT、UPDATE或DELETE等。 6. **处理结果集**: 如果是查询语句,可以使用OracleDataReader或OracleDataAdapter来获取和处理结果集。 7. **...
标准 Update 语句是 Oracle 中最基本的更新语句,语法为:`UPDATE 表名称 SET 列名称 = 新值 WHERE 列名称 = 某值`。例如:`UPDATE t_join_situation SET join_state='1' WHERE year='2011'`。这种方式适用于更新...
`OracleCommand`类可以用来执行SQL命令,包括SELECT、INSERT、UPDATE和DELETE,以及调用存储过程。 在C#中使用Oracle.DataAccess.Client.dll,开发者需要首先安装Oracle的数据提供程序,通常通过NuGet包管理器来...
3. **SQL和PL/SQL支持**:通过cx_Oracle,开发者可以执行各种SQL查询,包括SELECT、INSERT、UPDATE和DELETE等操作。此外,还支持Oracle特有的PL/SQL过程和函数。 4. **参数绑定**:为了防止SQL注入攻击,cx_Oracle...
Oracle.ManagedDataAccess是Oracle公司为.NET Framework提供的一款完全托管的数据访问组件,它允许开发者在C#等.NET语言中直接连接Oracle数据库,而无需安装传统的Oracle客户端软件。这个压缩包包含的就是Oracle ...
这可能包括了如何选择(SELECT)、插入(INSERT)、更新(UPDATE)和删除(DELETE)数据,以及如何使用聚合函数(如COUNT、SUM、AVG、MAX、MIN)进行数据统计。此外,还可能涉及到了更高级的查询技巧,如联接(JOIN...
通过上述示例我们可以看出,在Oracle数据库中,`FOR UPDATE OF`提供了更细粒度的锁定控制能力,从而提高了系统的并发性能。在设计并发处理逻辑时,合理利用这些特性可以帮助提高系统的整体效率。
这些组件提供了一种直观的方式来运行 SELECT、INSERT、UPDATE 和 DELETE 语句,同时也支持存储过程和游标。 3. **数据绑定** ODAC 组件可以轻松地与 Delphi 的 VCL(Visual Component Library)控件绑定,如 ...
2. 执行SQL查询:发送SELECT语句获取数据,或者使用INSERT、UPDATE、DELETE语句修改数据库中的记录。 3. 高级数据库操作:支持存储过程的调用,事务管理,以及批量数据操作。 4. 错误处理和异常处理:库会封装Oracle...
在.NET开发环境中,Oracle数据库是常用的后端存储系统之一,为应用程序提供数据支持。这篇教程将详细介绍如何在.NET中建立与Oracle数据库的连接,并实现分页功能。首先,我们需要了解.NET Framework或.NET Core中...
这包括SELECT语句的复杂用法,如联接、子查询、聚合函数和分组,以及DML(Data Manipulation Language)操作,如INSERT、UPDATE、DELETE。此外,了解PL/SQL,Oracle的扩展SQL语法,对于编写存储过程、函数和触发器也...
这种只有update无法执行其他语句可以执行的其实是因为记录锁导致的,在oracle中,执行了update或者insert语句后,都会要求commit,如果不commit却强制关闭连接,oracle就会将这条提交的记录锁住。由于我的java程序...
在本篇文档中,作者详细总结了在实际项目中针对Oracle数据库的update语句优化的四种方案。以下是对这四种方案的知识点进行详细的阐述: 1. 标准update语法优化: 当面对单表更新或较简单的SQL语句时,可以直接使用...
2. **执行SQL语句**:通过`java.sql.Statement`或`java.sql.PreparedStatement`对象执行SQL查询、更新(如INSERT、UPDATE、DELETE)和存储过程。 3. **处理结果集**:`java.sql.ResultSet`对象用于存储查询结果,...
Oracle数据库系统是全球广泛使用的大型关系型数据库管理系统之一,尤其在企业级应用中占据着重要地位。SQL(Structured Query Language)则是与关系数据库交互的语言,是管理、查询和操作数据库的基础工具。对于初学...
在Visual Studio中,打开项目,右键点击“管理NuGet程序包”,在搜索框中输入“Oracle.ManagedDataAccess”,然后选择并安装。 安装完成后,就可以编写代码来连接Oracle数据库了。以下是一个简单的示例: ```...
接下来,文档可能会深入到Oracle的SQL语法,包括如何创建、修改和删除数据库对象(如表、视图、索引等),以及如何使用DML语句(INSERT、UPDATE、DELETE)进行数据操作。还会讲解查询语言(SELECT)的复杂用法,如...
Oracle SQL是数据库管理中不可或缺的一部分,它用于在Oracle数据库系统中执行数据查询、操作和管理。这个名为"Oracle_SQL.rar_oracle"的压缩包显然包含了关于Oracle SQL的详细教程或代码示例,其中的"Oracle_SQL.sql...
shell连接oracle数据库工具脚本:支持select/insert/update/delete 部署位置:/root/sysmonitor db:数据库文件夹 dbconfig.properties:数据库配置文件, dbConnectTest.sh:连接测试文件 dbExecurteSQL.sh:...