oracle几道简单面试题,请大侠帮忙
发布网友
发布时间:2022-04-30 09:47
我来回答
共4个回答
懂视网
时间:2022-04-30 14:08
create table test_A(
2 id number,
3 name varchar2(10),
4 address varchar2(10),
5 phone number(4),
6 logdate date);
7
8 create table test_B(
9 name varchar2(10),
10 address varchar2(10),
11 phone number(4));
----插入数据
1 insert into test_a values(1,‘a‘,‘bei‘,2230,‘11-2月-2001‘);
2 insert into test_a values(2,‘b‘,‘jing‘,2231,‘11-2月-2002‘);
3 insert into test_a values(3,‘c‘,‘shang‘,2232,‘11-3月-2002‘);
4 insert into test_a values(4,‘c‘,‘hai‘,2233,‘13-3月-2002‘);
5 insert into test_a values(5,‘d‘,‘guang‘,2234,‘12-2月-2001‘);
6 commit;
7
8 insert into test_b values(‘c‘,‘shen‘,2240);
9 insert into test_b values(‘d‘,‘shen‘,2241);
10 commit;--提交
11 select * from test_a;--查询数据
12 truncate table test_a;--删除数据
- 将表A中的字段LOGDATE中为2001-02-11的数据更新为2003-01-01,请写出相应的SQL语句(该字段类型为日期类型)
1 update test_a
2 set logdate = to_date(‘2003-01-01‘,‘yyyy-MM-dd‘)
3 where logdate = to_date(‘2001-02-11‘,‘yyyy-MM-dd‘);
4 commit;
5 select * from test_a;--查询数据
- 请写出将表中NAME存在重复的记录都列出来的SQL语句(按NAME排序)
1 select * from (
2 select a.name
3 from test_a a
4 group by a.name
5 having count(*)>1
6 order by name);
- 请写出题目2中,只保留重复记录的第一条,删除其余记录的SQL语句(即使表中不存在重复记录)
1 delete test_a a
2 where a.name <> (
3 select * from (
4 select a.name
5 from test_a a
6 group by a.name
7 having count(*)>1
8 order by name));
9 commit;
10 select * from test_a;--查询数据
- 请写出将B表中的ADDRESS,PHONE更新到A表中的SQL语句(按NAME相同进行关联)
1 update test_a a
2 set a.address = decode((select distinct b.address
3 from test_b b
4 where a.name = b.name),null,a.address,(select distinct b.address
5 from test_b b
6 where a.name = b.name))
7 ,a.phone = decode((select distinct b2.phone
8 from test_b b2
9 where a.name = b2.name),null,a.phone,(select distinct b2.phone
10 from test_b b2
11 where a.name = b2.name));
12 commit;--提交
13 select * from test_a;--查询数据
- 请写出将A表中第3-5行数据列出来的SQL语句
1 select b.id,b.name,b.address,b.phone,b.logdate
2 from (select rownum rn,id,name,address,phone,logdate
3 from test_a) b
4 where b.rn between 3 and 5;
-------------------------欢迎建议更优秀的代码
Oracle面试题2
标签:
热心网友
时间:2022-04-30 11:16
1,数据库迁移需要考虑的问题很多,这个一句两句也说不完;
2,首先考虑的就是数据量,如果是小表,没有索引反而访问还要快一些。
3,权衡全表还是走索引,看SQL的执行计划就可以了;
4,这个数据库对象是用在两个数据库之间联接,交换,查询数据用的。
5,去数据库里查锁住的进程,杀了就可以了。之后再分析原因。
6,分区表是数据量大于1.5gb以上才用的吧。
7,临时表空间当然会满,查视图也是一样的。
8,开了归档就相当于win系统的设置里开了系统还原一样。
9,redo这个设置要看实际情况,根据主机CUP处理能力,数据库优化参数等因素决定的。
热心网友
时间:2022-04-30 12:34
根据一楼我补充下我知道的几点吧:
2.索引
是否建立索引,数据量是要看的,另外还要参考你取值的范围,比如你有一列性别项,你要查性别为男的,有一半的结果是符合你要求的,那这种情况就不应该考虑建索引
4.存储过程
除了杀进程,其实主要是要检查开发人员写的sql语句,找出不合理的地方进行优化
5.分区表 这个和一楼观点有些许差异
个人觉得没有数据量必须大于多少才能用这样的的一个说法,应该是参考你的业务和你的需求还有你的数据量来的,是不是需要用到分区表,也不是说1G的表就不能用分区表
6.临时空间这个应该还会考到如何清空吧:
1.加大临时表空间(一般不用)
2.新建一个临时表空间,然后切换,再删掉旧的临时空间
3.重启下数据库,临时表空间自动清空
7.这点内容东西比较多,我描述的不大号,上网查下吧
热心网友
时间:2022-04-30 14:09
我是开发人员,只回答下第一点。
为啥要切11g, 如果不是必须没必要弄些风险出来,然后考虑是否值得。
数据库的大小 , 切换的时间, 种种。 其实迁移了我想好处没啥,至少目前我看来是这样,当然面试题 看那人考的是你哪方面了。
oracle几道简单面试题,请大侠帮忙
1,数据库迁移需要考虑的问题很多,这个一句两句也说不完;2,首先考虑的就是数据量,如果是小表,没有索引反而访问还要快一些。3,权衡全表还是走索引,看SQL的执行计划就可以了;4,这个数据库对象是用在两个数据库之间联接,交换,查询数据用的。5,去数据库里查锁住的进程,杀了就可以了。之后再...
关于oracle 问题 请大侠 帮忙看下
Oracle的字符串连接符是双竖“||”。语句写成如下:'select A.pdline_name from SAJET.sys_pdline A ,'|| ' SAJET.sys_pdline_param B '|| --B后面不要逗号 'where A.pdline_ID= B.pdline_ID '|| 'and B. SFC_YN=''Y'' '|| 'and A. enabled=''Y'' '|...
关于oracle数据库的一道面试题,使用wm_concat()主函数完成
WITH div_pm_ci AS(select ci_id, substr( stu_ids, instr(','|| stu_ids, ',', 1, rn),instr( stu_ids||',', ',', 1, rn) - instr(','|| stu_ids, ',', 1, rn) ) stu_id from pm_ci,(select rownum rn from dual connect by rownum < 10)where instr(','|| ...
oracle 优化问题
对你的问题:1、是的,自动为主键创建索引。2、建议你看着http://www.itpub.net/thread-1049795-1-1.html 3、重建索引可用sql语句,或者用图形化客户端工具如plsql Developer 或toad,怎么可能要删表。4、先确定是数据库慢还是应用慢,如果直接用sql语句查询都慢,那就是数据库慢或网速慢,如果网速...
哪位Oracle数据库大侠帮帮忙回答下,数据库中的表之间的关系,不胜感激...
你若是通过exp导出来的数据再导入到Oracle中,则不需要再做什么操作的,因为导出来的表时也就将其主外键导出来的,如果是通过新建表,然后通过其他方式导进去的,则主外键关系可能会丢失,建议你自己看看表结构,看看这三表之间的关系存不存在。例如通过pl/sql develop 工具,来查看表结构 ...
oracle exists 问题,大侠求救
select * from emp 得出的结果肯定是emp表的啊。因为dept表你只是做关联判断了,说白了就是个where条件。如果俩表内容都想取出来,就不是用exists了。直接关联即可。select emp.*,dept.* from emp ,dept where emp.deptno=dept.deptno and dept.loc='NEW YORK';...
oracle 数据库查询,请大侠帮助!!!
/*思路: 组合table1全表和table2表中的成绩成一个临时表t 搜索table1全表字段并对成绩字段求和 分组 按照这个思路去调试,如果不想显示sex字段,可以在select 和group中同时去掉t.sex / select t.name, t.age,t.sex,sum(t.chengji) count from (select table1.*, table2.chengji from table1...
oracle大批量插入失败,请教大侠
提醒你注意几个地方:表空间大小,临时表空间大小,回退段大小。不要建索引,不要让表空间自动扩展,注意回退段(表空间)大小 最好不要生成归档,除非必要。哦,不要用存储过程处理数据,数据过多的话,会造成游标等待,闩锁等待的出现,就是你所谓的没动静(劲),呵呵!仅供参考!
请帮我分析几道面试题,谢谢
1.先看看前两次的筹备质料和最后效果.加以完善.2.比较客观评价。不贬低也不抬高.3.先把手头的事交接好.然后认真完成新任务.4.没什么好说的.自己不会具备那些缺点..
高分求 oracle DBA 怎么考? 请过oracle DBA 的大侠们指教!!!
DBA入门》和高职高专教材《Oracle数据库管理教程》),这些书很简单,能帮助你快速上手。接下来你可以买《Oracle 9i/10g DBA资格认证考试教材》等书来看。从一开始,你就应该下载一个Oracle装上,自己多玩。尽量多用SQL Plus等命令行方式来管理,对界面大致了解就好了。脚本才是Oracle管理的王道!