易截截图软件、单文件、免安装、纯绿色、仅160KB

oracle中select 1和select *的区别

创建myt表并插入数据,如下:
create table myt(name varchar2,create_time date)
 insert into myt values('john',to_date(sysdate,'DD-MON-YY'));
 insert into myt values('tom',to_date(sysdate,'DD-MON-YY'));
 insert into myt values('lili',to_date(sysdate,'DD-MON-YY'));  
 在sql*plus中显示如下:
SQL> select * from myt;
 
NAME       CREATE_TIME
---------- -----------
john       2010-5-19
tom        2010-5-19
lili       2010-5-19
 
SQL> select 1 from myt;
 
         1
----------
         1
         1
         1
SQL> select 0 from myt;
 
         0
----------
         0
         0
         0
从以上结果 可以看到,select constant fromtable 对所有行返回对应的常量值(具体应用见下面),
而select * from table则返回所有行对应的所有列。
select 1常用在exists子句中,检测符合条件记录是否存在。
如select * from T1 where exists(select 1 from T2 where T1.a=T2.a) ;
T1数据量小而T2数据量非常大时,T1<<T2 时,1) 的查询效率高。
“select 1”这里的 “1”其实是无关紧要的,换成“*”也没问题,它只在乎括号里的数据能不能查找出来,是否存在这样的记录,如果存在where 条件成立。
如下示例:
SQL> select 1/0 from dual;
 
select 1/0 from dual
 
ORA-01476: 除数为 0
SQL> select * from myt where  exists(select 1/0 from dual);
 
NAME       CREATE_TIME
---------- -----------
john       2010-5-19
tom        2010-5-19
lili &nbs


相关文档:

在Oracle 中查询某个字段存在于哪几个表 (转)

如果查询整库的话得以DBA权限查询数据字典dba_tab_columns
非DBA用户只能查看自己有读取权限的表
可以这样写查询
select owner, table_name
from dba_tab_columns
where lower(column_name)='firstname';
查询出哪些表包含firstname字段以及这些表属于哪个用户
注:dba_tab_columns是一个属于SYS用户的一个View ......

oracle 多表删除 同时删除多表中关联数据

oracle 多表删除 同时删除多表中关联数据
2009-04-27 14:40
1、从数据表t1中把那些id值在数据表t2里有匹配的记录全删除掉
DELETE t1 from t1,t2 WHERE t1.id=t2.id    或DELETE from t1 USING t1,t2 WHERE t1.id=t2.id
2、从数据表t1里在数据表t2里没有匹配的记录查找出来并删除掉
DELETE t1 from t1 L ......

Oracle临时表的建立及使用....

在Oracle8i或以上版本中,可以创建以下两种临时表:    
  1。会话特有的临时表    
          CREATE   GLOBAL   TEMPORARY   <TABLE_NAME>   (<column   specification>)    
        &nbs ......

oracle中translate与replace的使用

1.translate
  语法:TRANSLATE(char, from, to)
 
 
用法:返回将出现在from中的每个字符替换为to中的相应字符以后的字符串。
          
 若from比to字符串长,那么在from中比to中多出的字符将会被删除。
    &nbs ......

Oracle时间日期操作

Oracle时间日期操作
sysdate+(5/24/60/60) 在系统时间基础上延迟5秒
sysdate+5/24/60 在系统时间基础上延迟5分钟
sysdate+5/24 在系统时间基础上延迟5小时
sysdate+5 在系统时间基础上延迟5天
add_months(sysdate,-5) 在系统时间基础上延迟5月
add_months(sysdate,-5*12) 在系统时间基础上延迟5年
上月末的日期:sel ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号