您的位置:首页 > 数据库 > Oracle

oracle sql笔试题

2010-03-02 11:06 246 查看
一、 数据库 ORACLE
虽然这些题目都可以G到,但还是要考察一下您现在的常态水平,:)
T表:(字段:ID,NAME,ADDRESS,PHONE,LOGDATE)
E表:(字段:NAME,ADDRESS,PHONE)
1. 将表T中的字段LOGDATE中为2001-02-11的数据更新为2003-01-01,请写出相应的SQL语句。(该字段类型为日期类型)

2. 请写出将表T中NAME存在重复的记录都列出来的SQL语句(按NAME排序)

3. 请写出题目2中,只保留重复记录的第一条,删除其余记录的SQL语句(即使该表不存在重复记录)

4. 请写出将E表中的ADDRESS、PHONE更新到T表中的SQL语句(按NAME相同进行关联)

5. 请写出将T表中第3~5行数据列出来的SQL语句

1 update t

set logdate = to_date('2003-01-01','YYYY-MON-DD')

from logdate = to_date('2001-02-11','YYYY-MON-DD');

2 select *

from ( select name from t group by name order by desc)

3 delete from t

where t.rowid not in ( select max(rowid) from t group by name);

如果是检索所有不重复的行的话那么用

select * from t

where t.rowid not in ( select max(rowid) from t group by ID,NAME,ADDRESS,PHONE,LOGDATE)

4 update t

set t.address = ( select e.address from e,t where t.name = e.name),

t.phone = ( select e.phone from e,t where t.name = e.name);

5.select * from t where rownum <= 5

minus

select * from t where rownum < 3;

or

select * from ( select rownum as rn,t.* from t ) s

where s.rn between 3 and 5;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: