ORACLE笔试题.doc_第1页
ORACLE笔试题.doc_第2页
ORACLE笔试题.doc_第3页
ORACLE笔试题.doc_第4页
免费预览已结束,剩余1页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

基础题目:1. 比较truncate和delete 命令 1、在功能 上,truncate是清空一个表的内容,它相当于delete from table_name。2、 delete是dml操作,truncate是ddl操作;因此,用delete删除整个表的数据时,会产生大量的roolback, 占用很多的rollback segments(产生用于恢复的日志), 而truncate不会。3、在内存 中,用delete删除数据,表空间中其被删除数据的表占用的空间还在,便于以后的使用,另外它是 “假相”的删除,相当于windows中用delete删除数据是把数据放到回收站中,还可以恢复,当然如果这个时候重新启动系统(os或者rdbms),它也就不能恢复了!(如果立即做尾日志备份并且保证之前的日志链都ok的话,还是有可能恢复的)而用truncate清除数据,内存中表空间中其被删除数据的表占用的空间会被立即释放,相当于windows中用shift+delete删除数据,不能够恢复!(有日志也能恢复o 只是不如回闪那么爽了!)4、truncate 调整high water mark 而delete不;truncate之 后,table的hwm退回到 initial和next的位置(默认)delete 则不可以。5、truncate 只能对table,delete 可以是table,view,synonym。6、truncate table 的对象必须是本模式下的,或者有drop any table的权限 而 delete 则是对象必须是本模式下的,或被授 予delete on schema.table 或delete any table的权限。7、在外层 中,truncate或者delete后, 其占用的空间都将释放。8、truncate和delete只删除数据,而drop则删除整个表(结构和数据)。2.oracle中,需要在查询语句中把空值(null)输出为0,如何处理?select nvl(null, 0) from dual;3.oracle中char和varchar2数据类型有什么区别?有数据”test”分别存放到char(10)和varchar2(10)类型的字段中,其存储长度及类型有何区别?char是定长字符类型,而varchar是变长字符类型。 有数据”test”分别存放到char(10)和varchar2(10)类型的字段中,其存储长度及类型? 用char(10)进行存储时,存储被补齐10个空格,其长度为10个字节,而varchar2的存储长度为4个字节。 4.现在有个表:a(id ,name,regdate) -regdate(格式为2008/09/22) b(id,groupid) c(id,name2)写出下面的sql语句1).统计a表中每个月注册用户数select to_char(regdate,yyyymm) month,count(*) total from a group by to_char(regdate,yyyymm);2).统计a表中有姓名相同的用户数select distinct name,count(name) from a group by name;select name,count(*) from a where (select count(*) from a group by name)1 order by name;3).如果表a中有姓名相同的用户,把相同的查出,写入表c中insert into c select distinct name from a group by name;4).a中id有多个相同的数据,a中姓名相同的id只保留注册时间最大的数据5.存在表t(a,b,c,d),要根据字段c排序后取第2130条记录显示,请给出sqlselect * from (select c.*,rownum as rn from (select * from t order by c desc)c ) where rn between 21 and 30;难度大些的题目:6.有表一的查询结果如下,该表为学生成绩表(知识点:关联更新) select id,grade from student_grade id grade - - 1 50 2 40 3 70 4 80 5 30 6 90 表二为补考成绩表 select id,grade from student_makeup id grade - - 1 60 2 80 5 60 现在有一个dba通过如下语句把补考成绩更新到成绩表中,并提交: update student_grade s set s.grade = (select t.grade from student_makeup t where s.id=t.id); commit; 请问之后查询: select grade from student_grade where id = 3;结果为:( )a: 0 b: 70 c: null d: 以上都不对 7.根据以下的在不同会话与时间点的操作,判断结果是多少, 其中时间t1 session1 session2 - - t1 select count(*) from t; -显示结果(1000)条 t2 delete from t where rownum =100; t3 begin delete from t where rownum =100; commit; end; / t4 truncate table t; t5 select count(*) from t; -这里显示的结果是多少 .( )a: 1000 b: 900 c: 800 d: 0 8.数据库查询行列转换(sql server篇) 原始数据如下: name date value - - - a 2006年 106 a 2007年 107 a 2008年 108 b 2006年 206 b 2007年 207 b 2008年 208 c 2006年 306 c 2007年 307 c 2008年 3081). 转换为:行为name,列为date, 转换后的结果 name 2006年 2007年 2008年 - - - - a 10

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论