oracle sql笔试题
一、 数据库 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;
相关文档:
看了一篇讲座,说到数据层分页技术,用到了4中方式,1)使用top *top 2)使用表变量 3)使用临时表 4)使用ROW_NUMBER函数。
其中最快的是第1 和第4中方式,接下来我们来看看这两种方式:
我们使用sql2005自带的数据库 AdventureWorks测试,
1)
--Use Top*Top
DECLARE @Start datetime,@end datetim ......
当执行插入等操作时出现错误提示“unable to extand table ……” ,则说明该表所在表空间空间不足了。
如果是在winserver下则为表空间增加文件即可(本文不做介绍)。
本文主要介绍数据库服务器环境为AIX时,如何为表空间增加裸设备。
这里
包含AIX系统存储管理的基本介绍;
AIX通过三个层次对 ......
方法一:
SQL>create table aa(a number);
创建成功。
SQL> select * from aa;
A
--------
2
SQL>
SQL> insert all
2 into aa values(1)
3 into aa values(2)
4 select * from dual;
已创建2行。
SQL> commit;
提交完成。
SQL> select * from aa;
A
----------
2
1
2
方法二:
S ......
在一个表中,其中几个字段的值是一样的,按照这几个字段进行分组并合并数据。
表A id name role
1 张三 &nb ......