Oracle:
建表可以使用:
create table emp1
as
select * from emp where deptno = 20;
这种方式。
利用select update,则要复杂些
写道
我们可以这么写
Update emp
Set(sal,comm) = (select sal,comm. From emp1 where emp.empno = emp1.empno)
Where exists (select 1 from emp1 where emp1.empno = emp.empno)
请你尤其注意这里的where子句,你可以尝试不写where子句来执行以下这句话,你将会使得emp中的很多值变成空。
这是因为在oracle的update语句中如果不写where子句,oracle将会默认的把所有的值全部更新,即使你这里使用了子查询并且某在值并不能在子查询里找到,你就会想当然的以为,oracle或许将会跳过这些值吧,你错了,oracle将会把该行的值更新为空。
我们还还可以这么写:
update (select a.sal asal,b.sal bsal,a.comm acomm,b.comm bcomm from emp a,emp1 b where a.empno = b.empno)
set asal = bsal,
acomm = bcomm;
这里的表是一个类视图。
当然你执行时可能会遇到如下错误:
ERROR 位于第 2 行:
ORA-01779: 无法修改与非键值保存表对应的列
这是因为新建的表emp1还没有主键的缘故
下面增加一个主键
alter table emp1
add constraint pk_emp1 primary key (empno);
执行之后
在执行前面的语句就能成功。
这里我们总结一下:
在oracle中不存在update from结构,所以遇到需要从另外一个表来更新本表的值的问题的时候,有两种解决的办法:
一种是使用子查询,使用子查询时一定要注意where条件(一般后面接exists子句),除非两个表是一一对应的,否则where条件必不可少,遗漏掉where条件时可能会导致插入大量空值。
另外一种是类视图的更新方法,这也是oracle所独有的。先把对应的数据全部抽取出来,然后更新表一样更新数据,这里需要注意的是,必须保证表的数据唯一型。
SQL Server:
建表可以这么写:
select * into table2 from table1
利用select update,则使用update...from语句:
update select_test_tb
set name=stt1.name
from select_test_tb stt, select_test_tb1 stt1
where stt.id=stt1.id
分享到:
相关推荐
Oracle和SqlServer语法区别 Oracle和SqlServer是两种流行的关系型数据库管理系统,它们之间存在着一些语法区别。了解这些区别对于开发者来说非常重要,因为它可以帮助他们更好地迁移到新的数据库管理系统。下面将...
本文主要介绍Oracle与SQL Server在SQL语言层面的异同之处,重点在于Transact-SQL(T-SQL)与PL/SQL之间的区别,并提供了一些迁移策略。对于希望将现有的Oracle数据库系统迁移至SQL Server平台的用户来说,这些知识尤...
- 对于 SELECT、INSERT、UPDATE 和 DELETE 语句,首先要确保它们在 Oracle 中的语法有效,然后根据 SQL Server 的语法进行适当修改。 2. **外部联接的转换**: - Oracle 使用的外部联接语法与 SQL-92 标准有所...
【Sql Server与Oracle的区别】 在数据库管理领域,Sql Server(由微软公司开发)和Oracle(由甲骨文公司提供)都是广泛使用的数据库管理系统。虽然两者都支持SQL语言,但它们在语法、功能和设计上存在一些显著差异...
两者都支持标准的SQL语法,如SELECT、INSERT、UPDATE和DELETE等基本操作,但在特定函数和语法细节上有所区别。 1. **日期和时间处理**: - Oracle提供`SYSDATE`函数获取当前日期,而SQL Server使用`GETDATE()`。 ...
判断是否存在,存在就update,不存在insert,不是用存储过程解决的。
Oracle 和 SQL Server 的 SELECT、INSERT、UPDATE 和 DELETE 语句基本结构相似,但在具体语法细节上有所不同。例如,Oracle 支持特定的优化器提示,而 SQL Server 则不支持。在迁移时,应确保语句的语法有效,并...
### Oracle与SQL Server对比分析 #### 一、概述 在数据库管理系统(DBMS)领域中,Oracle和SQL Server是两个非常知名且广泛使用的解决方案。Oracle是由甲骨文公司开发的企业级数据库系统,以其强大的功能和高度的...
Oracle与SQL Server是当前最流行的两个关系数据库管理系统,担负着大量的企业数据存储和管理任务。其中,安全性是数据库管理系统的生命线,访问控制技术是保证数据库安全的有效方法之一。基于角色的访问控制是数据库...
1. **基础语法**:SQL查询语句(SELECT、INSERT、UPDATE、DELETE)、表的创建与管理。 2. **索引与优化**:如何创建和使用索引来提高查询速度,以及查询优化策略。 3. **事务处理**:理解ACID属性,掌握事务的开始、...
#### 1.1 SQL Server与Oracle版本确认 首先,确保SQL Server版本(本例中为MSSQLServer2008)与Oracle版本(本例中为Oracle11g或其客户端)兼容。这一步是搭建跨数据库连接的基础。 #### 1.2 TNS配置 针对Oracle端...
shell连接oracle数据库工具脚本:支持select/insert/update/delete 部署位置:/root/sysmonitor db:数据库文件夹 dbconfig.properties:数据库配置文件, dbConnectTest.sh:连接测试文件 dbExecurteSQL.sh:...
本项目“C#代码生成器支持Oracle和SQL Server”是专为这两大数据库系统设计的,旨在帮助开发者快速构建与数据库交互的应用程序。 1. **C#编程语言**:C#是一种面向对象的编程语言,由微软公司开发,广泛应用于...
MySQL的SQL语法与Oracle和SQL Server大体相似,但在某些特定功能上有所区别,例如视图的创建、触发器的使用以及存储过程的编写。MySQL以其高性能、易用性和高可用性而著称。 SQL Server是由微软公司开发的一款商业...
总的来说,MySQL、Oracle和SQL Server的驱动包都是为了方便开发者与数据库进行通信,实现数据的存取和处理。选择哪种驱动取决于项目需求、性能需求以及对特定数据库系统的熟悉程度。了解和掌握这些驱动的使用方法,...
【标题】"郝斌 scott 资源 sql server oracle scott" 指的是一个关于数据库学习的资源集合,由知名讲师郝斌提供,涵盖了SQL Server和Oracle两个主流的关系型数据库系统,其中特别关注了"SCOTT"这个经典的数据库示例...
本项目".NET数据库通用接口SQLSERVER和ORACLE"就是这样一个解决方案,它旨在为.NET开发者提供一个跨数据库的通用接口,使得在C#编程中可以方便地处理SQL Server和Oracle数据库。 首先,我们要理解.NET Framework...
本文档详细介绍了如何在 SQL Server 2005 中通过 DBLINK 功能实现与 Oracle 9i 数据库之间的链接。通过这种方式,可以在 SQL Server 2005 中查询、更新甚至是执行 Oracle 9i 中的数据。此文档包含具体的步骤说明,并...