oracle 常用SQL 示例

a) 增删改查语句

常用语句基本相同,注意在oracle查询后不能用nolock,不同数据库的函数处理如有不同按第2条描述的函数不同更换即可。
下面是oracle特有的功能
将查询结果插入另外一张有相同表结构的表中

INSERT INTO MYTEST3 select * from TEST3;

创建临时表(Oracle现在可以使用 CREATE GLOBAL TEMPORARY TABLE命令来实现建立临时表结构。这样的表它的数据只在用户会话期间存在,当会话完成后表中数据就自动清除,但表结构需手工drop掉。)

create  global temporary table mytest3 as select * from TEST3;

或create  global temporary table mytest3 (

Id integer,

Name varchar2(10)

)
临时表使用完毕后需执行:
drop table mytest3;

合并两个有相同表结构的表中的数据,如将test3表中的数据同步到mytest3表中

merge into mytest3 m

using (select id, name from test3) t

on (m.id = t.id)

when matched then

  update set name = t.name

when not matched then

  insert (id, name) values (t.id, t.name);

 

b) 分页

其中红色标记部分填写待执行的sql语句,紫色标记部分分别填入结果集的最大行号和最小行号(据相关资料记载,如下查询方式及条件的分布是查询效率最高的一种方式

SELECT *

  FROM (SELECT A.*, ROWNUM RN

          FROM (SELECT * FROM test3) A

         WHERE ROWNUM <= 40)

 WHERE RN >= 31

 

c) 关联结果集

常用的内连接和外连接oracle都兼容,只是在oracle 10g中增加了(+) 操作符的用法,(但oracle建议还是采用显式的inner join outer join,因为采用(+)操作符有比较多的限制),具体用法如下:

外连接: 
除了显示匹配相等连接条件的数据外,还可以显示某一个表中无法匹配相等连接条件的记录! 
------------------------------------------------ 

左条件(+) = 右条件 
左条件所在的表必须严格进行相等连接条件的匹配,而右条件所在的表除了匹配相等连接条件外,还可以显 示无法匹配连接条件的数据! 
也称为右外连接. 
-------------------------------- 
可以用下 列语句取代: 
SELECT...FROM 1 RIGHT OUTER JOIN 2 ON 条件; 
 左条件 = 右条件(+) 
右条件所在的表必须严格进行相等连接条件的匹配,而左条件所在的表除了匹配相等连接条件外,还可以显示无法匹配连接条件的数据! 
称为左外连接. 
-------------------------------- 
可以用下列语句取代: 
SELECT...FROM 1 LEFT OUTER JOIN 2 ON 条件; 

 

d) 伪列及伪表

Oracle系统为了实现完整的关系数据库功能,系统专门提供了一组称为伪列(Pseudocolumn)的数据库列,这些列不是在建立对象(如建表)时由我们完成的,而是在我们建立对象时由自动Oracle完成的。

Oracle目前有以下的伪列:   

l CURRVAL and NEXTVAL 使用序列号的保留字   

l LEVEL 查询数据所对应的级   

l ROWID 记录的唯一标识   

l ROWNUM 限制查询结果集的数量   

  

Oracle 还提供了一个DUAL 的伪表,该表主要目的是保证在使用SELECT 语句中语句的完整性而提供的,如:我们要查询当前的系统日期及时间,而系统的日期和时间并是放在一个指定的表里。所以在 from 语句后就没有表名给出。为了使用 from 后有个表名,我们就用DUAL代替。如:   

1:查询Oracle系统日期及时间:   

select to_char( sysdate,'yyyy.mm.dd hh24:mi:ss') from DUAL;

 

2:计算一下 5000+5000*0.1 的结果是多少,则:   

select 5000+5000*0.1 from DUAL;

 

附:官方在线文档地址(附件见《ORACLE官方原版参考文档.pdf)http://download.oracle.com/docs/cd/B14117_01/server.101/b10759/toc.htm

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值