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 多表删除 同时删除多表中关联数据
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 ......
在Oracle8i或以上版本中,可以创建以下两种临时表:
1。会话特有的临时表
CREATE GLOBAL TEMPORARY <TABLE_NAME> (<column specification>)
&nbs ......
Oracle中的to_date()函数
to_date()与24小时制表示法及mm分钟的显示:
一、在使用Oracle的to_date函数来做日期转换时,很多Java程序员也许会直接的采用“yyyy-MM-dd HH:mm:ss”的格式作为格式进行转换,但是在Oracle中会引起错误:“ORA 01810 格式代码出现
&nbs ......
Oracle关于时间/日期的操作
1.日期时间间隔操作
当前时间减去7分钟的时间
Java代码
select sysdate,sysdate - interval '7' MINUTE from dual
select sysdate,sysdate - interval '7' MINUTE from dual
当前时间减去7小时的时间
Java代码
select sysdate - interval '7' hour fr ......