Oracle面试题笔试题及参考答案

合集下载

Oracle精选面试题(附答案及分析)

Oracle精选面试题(附答案及分析)

Oracle精选面试题1.查询员工表所有数据, 并说明使用*的缺点答案:select * from emp;使用*的缺点有:查询出了不必要的列;效率上不如直接指定列名。

2.查询职位(JOB)为'PRESIDENT'的员工的工资答案:select * from emp where job = 'PRESIDENT';3.查询佣金(COMM)为0 或为NULL 的员工信息答案:select * from emp where comm = 0 or comm is null;4.查询入职日期在1981-5-1 到1981-12-31 之间的所有员工信息答案:select * from emp where hiredatebetween to_date('1981-5-1','yyyy-mm-dd') and to_date('1981-12-31','yyyy-mm-dd');5.查询所有名字长度为4 的员工的员工编号,姓名答案:select * from emp where length(ename) = 4;6.显示10 号部门的所有经理('MANAGER')和20 号部门的所有职员('CLERK')的详细信息答案:select * from emp where deptno = 10 and job = 'MANAGER' or deptno = 20 and job ='CLERK';7.显示姓名中没有'L'字的员工的详细信息或含有'SM'字的员工信息答案:select * from emp where ename not like '%L%' or ename like '%SM%';8.显示各个部门经理('MANAGER')的工资答案:select sal from emp where job = 'MANAGER';9.显示佣金(COMM)收入比工资(SAL)高的员工的详细信息答案:select * from emp where comm > sal;10.把hiredate 列看做是员工的生日,求本月过生日的员工答案:select * from emp where to_char(hiredate, 'mm') = to_char(sysdate , 'mm');11.把hiredate 列看做是员工的生日,求下月过生日的员工答案:select * from emp where to_char(hiredate, 'mm') = to_char(add_months(sysdate,1) , 'mm');12.求1982 年入职的员工答案:select * from emp where to_char(hiredate,'yyyy') = '1982';13.求1981 年下半年入职的员工答案:select * from emp where hiredatebetween to_date('1981-7-1','yyyy-mm-dd') and to_date('1982-1-1','yyyy-mm-dd') - 1;14.求1981 年各个月入职的的员工个数答案:select count(*), to_char(trunc(hiredate,'month'),'yyyy-mm')from emp where to_char(hiredate,'yyyy')='1981'group by trunc(hiredate,'month')order by trunc(hiredate,'month');15.查询各个部门的平均工资答案:select deptno,avg(sal) from emp group by deptno;16.显示各种职位的最低工资答案:select job,min(sal) from emp group by job;17.按照入职日期由新到旧排列员工信息答案:select * from emp order by hiredate desc;18.查询员工的基本信息,附加其上级的姓名答案:select e.*, e2.ename from emp e, emp e2 where e.mgr = e2.empno;19.显示工资比'ALLEN'高的所有员工的姓名和工资答案:select * from emp where sal > (select sal from emp where ename='ALLEN');20.显示与'SCOTT'从事相同工作的员工的详细信息select * from emp where job = (select * from emp where ename='SCOTT');21.显示销售部('SALES')员工的姓名答案:select ename from emp e, dept d where e.deptno = d.deptno and d.dname='SALES';22.显示与30 号部门'MARTIN'员工工资相同的员工的姓名和工资答案:select ename, sal from empwhere sal = (select sal from emp where deptno=30 and ename='MARTIN');23.查询所有工资高于平均工资(平均工资包括所有员工)的销售人员('SALESMAN')答案:select * from emp where job='SALESMAN' and sal > (select avg(sal) from emp);24.显示所有职员的姓名及其所在部门的名称和工资答案:select ename, job, dname from emp e, dept d where e.deptno = d.deptno;25.查询在研发部('RESEARCH')工作员工的编号,姓名,工作部门,工作所在地答案:select empno,ename,dname,loc from emp e, dept dwhere e.deptno = d.deptno and danme='RESEARCH';26.查询各个部门的名称和员工人数答案:select * from (select count(*) c, deptno from emp group by deptno) einner join dept d on e.deptno = d.deptno;27.查询各个职位员工工资大于平均工资(平均工资包括所有员工)的人数和员工职位答案:select job, count(*) from emp where sal > (select avg(sal) from emp) group by job;28.查询工资相同的员工的工资和姓名答案:select * from emp e where (select count(*) from emp where sal = e.sal group by sal) > 1;29.查询工资最高的3 名员工信息答案:select * from (select * from emp order by sal desc) where rownum <= 3;30.按工资进行排名,排名从1 开始,工资相同排名相同(如果两人并列第1 则没有第2 名,从第三名继答案:select e.*, (select count(*) from emp where sal > e.sal)+1 rank from emp e order by rank;31.求入职日期相同的(年月日相同)的员工答案:select * from emp e where (select count(*) from emp where e.hiredate=hiredate)>1; 32.查询每个部门的最高工资答案:select deptno, max(sal) maxsal from emp group by deptno order by deptno;33.查询每个部门,每种职位的最高工资答案:select deptno, job, max(sal) from emp group by deptno, job order by deptno, job;34.查询每个员工的信息及工资级别答案:select e.*, sg.grade from emp e, salgrade sg where sal between losal and hisal;35.查询工资最高的第6-10 名员工答案:select * from (select e.*,rownum rn from(select * from emp order by sal desc) ewhere rownum <=10)where rn > 5;36.查询各部门工资最高的员工信息答案:select * from emp e where e.sal = (select max(sal) from emp where (deptno = e.deptno));37.查询每个部门工资最高的前2 名员工答案:select * from emp e where(select count(*) from emp where sal > e.sal and e.deptno = deptno) < 2order by deptno, sal desc;38.查询出有3 个以上下属的员工信息答案:select * from emp e where(select count(*) from emp where e.empno = mgr) > 2;39.查询所有大于本部门平均工资的员工信息答案:select * from emp e where sal >(select avg(sal) from emp where (deptno = e.deptno))order by deptno;40.查询平均工资最高的部门信息答案:select d.*, avgsal from dept d, (select avg(sal) avgsal, deptno from emp group by deptno) se where avgsal = (select max(avg(sal)) from emp group by deptno) and d.deptno = se.deptno;41.查询大于各部门总工资的平均值的部门信息答案:select d.*,sumsal from dept d, (select sum(sal) sumsal, deptno from emp group by deptno) se where sumsal >(select avg(sum(sal)) from emp group by deptno) and se.deptno = d.deptno;42.查询大于各部门总工资的平均值的部门下的员工信息答案:select e.*,sumsal from emp e, (select sum(sal) sumsal, deptno from emp group by deptno) se where sumsal >(select avg(sum(sal)) from emp group by deptno) and se.deptno = e.deptno;43.查询没有员工的部门信息答案:select d.* from dept d left join emp e on (e.deptno = d.deptno) where empno is null;44.查询当前月有多少天答案:select trunc(add_months(sysdate,1),'month') - trunc(sysdate,'month') from dual;45.列出最低薪金大于1500的各种工作及此从事此工作的全部雇员人数答案:SELECT job,COUNT(empno)FROM empGROUP BY job HAVING MIN(sal)>1500 ;46.列出薪金高于公司平均薪金的所有员工,所在部门,上级领导,公司的工资等级答案:SELECT e.empno,e.ename,d.dname,m.ename,s.gradeFROM emp e,dept d,emp m,salgrade sWHERE sal>(SELECT AVG(sal) FROM emp) AND e.mgr=m.empno AND d.deptno=e.deptno(+) AND e.sal BETWEEN s.losal AND s.hisal ;47.列出薪金高于在部门30工作的所有员工的薪金的员工姓名和薪金、部门名称答案:SELECT e.ename,e.sal,d.dname FROM emp e,dept dWHERE sal > ALL (SELECT sal FROM emp WHERE deptno=30) AND e.deptno=d.deptno;48.列出所有部门的详细信息和部门人数答案:SELECT d.dname,d.loc,dt.countFROM dept d,(SELECT deptno,COUNT(*) count FROM emp GROUP BY deptno) dtWHERE d.deptno=dt.deptno ;49.显示非销售人员工作名称以及从事同一工作雇员的月工资的总和,并且要满足从事同一工作的雇员的月工资合计大于$5000,输出结果按月工资的合计升序排列答案:SELECT job,SUM(sal) sumFROM empWHERE job<>'SALESMAN'GROUP BY job HAVING sum>5000ORDER BY sum ;50.客户表a(id name address) 登陆流水表b(id time) 购物流水表c(id time productid productnum)1.求每个客户的最新登陆时间time,姓名name,客户id?答案:select a.id,,d.time as timefrom a left join (select id,max(time) as time from b group by id) don a.id =d.id ;2.查最新登陆并且已经购买商品的客户id,name,登陆的时间time(一条sql语句)答案:select a.id,,d.time as timefrom a,(select id,max(time) as time from b group by id) dwhere a.id =d.idand exists (select * from c where id = a.id);。

oracle笔试题_附答案

oracle笔试题_附答案

1.你要对操纵Oracle数据库中的数据。

下列哪个选项表示Oracle中select语句的功能,并且不需要使用子查询(C)A.可以用select语句改变Oracle中的数据B.可以用select语句删除Oracle中的数据C.可以用select语句和另一个表的内容生成一个表D.可以用select语句对表截断2. 你要在Oracle中定义SQL查询。

下列哪个数据库对象不能直接从select语句中引用(C)A.表 B.序列 C.索引 D.视图3. 用下列代码块回答问题:SQL> select ______(-45) as output from dual;OUTPUT-------45下列哪个单行函数无法产生这个输出(A)A.abs() B.ceil() C.floor() D.round()4. SQL *Plus中发出的下列语句:SQL> select ceil(-97.342),2 floor(-97.342),3 round(-97.342),4 trunc(-97.342)5 from dual;下列哪个函数不返回结果-97(B)A.ceil() B.floor() C.round() D.trunc()5. 你要定义外连接,下列哪个选项正确描述了外连接语句?( D )A.由于外连接操作允许一个表中有NULL值,因此连接这些表时不必指定相等性比较。

B.在表A与B的外连接语句中,如果不管B表有无相应记录,都要显示表A的所有行,则可以使用右外连接。

C.在表A与B的外连接语句中,如果不管A表有无相应记录,都要显示表B的所有行,则可以使用左外连接。

D.尽管外连接操作允许一个表中有NULL值,但连接这些表时仍要指定相等性比较6. 对数据库运行下列哪个group by查询时会从Oracle产生错误?( C )A.select deptno, job, sum(sal) from emp group by job, deptno;B.select sum(sal), deptno, job from emp group by job, deptno;C.select deptno, job, sum(sal) from emp;D. select deptno, sum(sal), job from emp group by job, deptno;7.若account表中有14条记录,则用户执行了以下操作,结果是( A )declarecursor mycur is select * from emp;beginopen mycur;dbms_output.put_line(mycur%rowcount);close mycur;end;A.0B.14C.7D.编译不通过,无法执行。

Oracle精选面试题(附答案及分析)

Oracle精选面试题(附答案及分析)

Oracle精选面试题(附答案及分析)Oracle精选面试题1.显示10 号部门的所有经理('MANAGER')和20 号部门的所有职员('CLERK')的详细信息答案:Select * from emp where deptno=10 and job=’MANAGER’ or deptno=20 and job=’clerk’;select * from emp where deptno = 10 and job = 'MANAGER' or deptno = 20 and job ='CLERK';2.显示姓名中没有'L'字的员工的详细信息或含有'SM'字的员工信息答案:Select * from emp where ename note like ‘%L%’ or ename like ‘%SM%’;select * from emp where ename not like '%L%' or ename like '%SM%';3.显示各个部门经理('MANAGER')的工资答案:select deptno,emname, salary from emp_wqq where job='MANAGER';4.显示佣金(COMM)收入比工资(SAL)高的员工的详细信息答案:select * from emp where comm > sal;5.把hiredate 列看做是员工的生日,求本月过生日的员工答案:select * from emp where to_char(hiredate, 'mm') = to_char(sysdate , 'mm');6.把hiredate 列看做是员工的生日,求下月过生日的员工答案:select * from emp where to_char(hiredate, 'mm') = to_char(add_months(sysdate,1) , 'mm');7.求1982 年入职的员工答案:select * from emp where to_char(hiredate,'yyyy') = '1982';8.求1981 年下半年入职的员工答案:select * from emp where hiredatebetween to_date('1981-7-1','yyyy-mm-dd') and to_date('1982-1-1','yyyy-mm-dd') - 1;9.求1981 年各个月入职的的员工个数答案:select count(*), to_char(trunc(hiredate,'month'),'yyyy-mm') from emp where to_char(hiredate,'yyyy')='1981'group by trunc(hiredate,'month')order by trunc(hiredate,'month');10.查询各个部门的平均工资答案:select deptno,avg(sal) from emp group by deptno;11.显示各种职位的最低工资答案:select job,min(sal) from emp group by job;12.按照入职日期由新到旧排列员工信息答案:select * from emp order by hiredate desc;13.查询员工的基本信息,附加其上级的姓名答案:select e.*, e2.ename from emp e, emp e2 where e.mgr = e2.empno;14.显示工资比'ALLEN'高的所有员工的姓名和工资select * from emp where sal > (select sal from emp where ename='ALLEN');15.显示与'SCOTT'从事相同工作的员工的详细信息答案:select * from emp where job = (select * from emp where ename='SCOTT');16.显示销售部('SALES')员工的姓名答案:select ename from emp e, dept d where e.deptno = d.deptno and d.dname='SALES';17.显示与30 号部门'MARTIN'员工工资相同的员工的姓名和工资答案:select ename, sal from empwhere sal = (select sal from emp where deptno=30 and ename='MARTIN');18.查询所有工资高于平均工资(平均工资包括所有员工)的销售人员('SALESMAN')答案:select * from emp where job='SALESMAN' and sal > (select avg(sal) from emp); 19.显示所有职员的姓名及其所在部门的名称和工资select ename, job, dname from emp e, dept d wheree.deptno = d.deptno;20.查询在研发部('RESEARCH')工作员工的编号,姓名,工作部门,工作所在地答案:select empno,ename,dname,loc from emp e, dept dwhere e.deptno = d.deptno and danme='RESEARCH';21.查询各个部门的名称和员工人数select * from (select count(*) c, deptno from emp group by deptno) einner join dept d on e.deptno = d.deptno;22.查询各个职位员工工资大于平均工资(平均工资包括所有员工)的人数和员工职位答案:select job, count(*) from emp where sal > (select avg(sal) from emp) group by job;23.查询工资相同的员工的工资和姓名答案:select * from emp e where (select count(*) from emp where sal = e.sal group by sal) > 1;24.查询工资最高的3 名员工信息答案:select * from (select * from emp order by sal desc) where rownum <= 3;25.按工资进行排名,排名从1 开始,工资相同排名相同(如果两人并列第1 则没有第2 名,从第三名继续排)答案:select e.*, (select count(*) from emp where sal > e.sal)+1 rank from emp e order by rank;26.求入职日期相同的(年月日相同)的员工答案:select * from emp e where (select count(*) from emp wheree.hiredate=hiredate)>1;27.查询每个部门的最高工资答案:select deptno, max(sal) maxsal from emp group by deptnoorder by deptno;28.查询每个部门,每种职位的最高工资答案:select deptno, job, max(sal) from emp group by deptno, job order by deptno, job;29.查询每个员工的信息及工资级别select e.*, sg.grade from emp e, salgrade sg where sal between losal and hisal;30.查询工资最高的第6-10 名员工答案:select * from (select e.*,rownum rn from(select * from emp order by sal desc) ewhere rownum <=10)where rn > 5;31.查询各部门工资最高的员工信息答案:select * from emp e where e.sal = (select max(sal) from emp where (deptno = e.deptno)); 32.查询每个部门工资最高的前2 名员工答案:select * from emp e where(select count(*) from emp where sal > e.sal and e.deptno = deptno) < 2order by deptno, sal desc;33.查询出有3 个以上下属的员工信息答案:select * from emp e where(select count(*) from emp where e.empno = mgr) > 2;34.查询所有大于本部门平均工资的员工信息select * from emp e where sal >(select avg(sal) from emp where (deptno = e.deptno))order by deptno;35.查询平均工资最高的部门信息答案:select d.*, avgsal from dept d, (select avg(sal) avgsal, deptno from emp group by deptno) se where avgsal = (select max(avg(sal)) from emp group by deptno) and d.deptno = se.deptno;36.查询大于各部门总工资的平均值的部门信息答案:select d.*,sumsal from dept d, (select sum(sal) sumsal, deptno from emp group by deptno) se37.查询大于各部门总工资的平均值的部门下的员工信息答案:select e.*,sumsal from emp e, (select sum(sal) sumsal, deptno from emp group by deptno) sewhere sumsal >(select avg(sum(sal)) from emp group by deptno) and se.deptno = e.deptno;38.查询没有员工的部门信息答案:select d.* from dept d left join emp e on (e.deptno =d.deptno) where empno is null;39.查询当前月有多少天答案:select trunc(add_months(sysdate,1),'month') - trunc(sysdate,'month') from dual;40.列出最低薪金大于1500的各种工作及此从事此工作的全部雇员人数SELECT job,COUNT(empno)FROM empGROUP BY job HAVING MIN(sal)>1500 ;41.列出薪金高于公司平均薪金的所有员工,所在部门,上级领导,公司的工资等级答案:SELECT e.empno,e.ename,d.dname,m.ename,s.gradeFROM emp e,dept d,emp m,salgrade sWHERE sal>(SELECT AVG(sal) FROM emp) AND e.mgr=m.empno AND d.deptno=e.deptno(+) AND e.sal BETWEEN s.losal AND s.hisal ;42.列出薪金高于在部门30工作的所有员工的薪金的员工姓名和薪金、部门名称答案:SELECT e.ename,e.sal,d.dname FROM emp e,dept dWHERE sal > ALL (SELECT sal FROM emp WHERE deptno=30) AND e.deptno=d.deptno;43.列出所有部门的详细信息和部门人数答案:SELECT d.dname,d.loc,dt.countFROM dept d,(SELECT deptno,COUNT(*) count FROM emp GROUP BY deptno) dtWHERE d.deptno=dt.deptno ;44.显示非销售人员工作名称以及从事同一工作雇员的月工资的总和,并且要满足从事同一工作的雇员的月工资合计大于$5000,输出结果按月工资的合计升序排列SELECT job,SUM(sal) sumFROM empWHERE job<>'SALESMAN'GROUP BY job HAVING sum>5000ORDER BY sum ;45.客户表a(id name address) 登陆流水表b(id time) 购物流水表c(id time productid productnum)1.求每个客户的最新登陆时间time,姓名name,客户id?答案:select a.id,/doc/5611326663.html,,d.time as timefrom a left join (select id,max(time) as time from b group by id) don a.id =d.id ;2.查最新登陆并且已经购买商品的客户id,name,登陆的时间time(一条sql语句)答案:select a.id,/doc/5611326663.html,,d.time as timefrom a,(select id,max(time) as time from b group by id) dwhere a.id =d.idand exists (select * from c where id = a.id);。

最新Oracle笔试题及答案

最新Oracle笔试题及答案

一、选择题(每题1分)1.Oracle发出下列select语句:SQL> select e.empno, e.ename, d.loc2 from emp e, dept d3 where e.deptno = d.deptno4 and substr(e.ename, 1, 1) = ‘S’;下列哪个语句是Oracle数据库中可用的ANSI兼容等价语句?A.select empno, ename, loc from emp join dept on emp.deptno = dept.deptno wheresubstr(emp.ename, 1, 1) = ‘S’;B.select empno, ename, loc from emp, dept on emp.deptno = dept.deptno wheresubstr(emp.ename, 1, 1) = ‘S’;C.select empno, ename, loc from emp join dept where emp.deptno = dept.deptno andsubstr(emp.ename, 1, 1) = ‘S’;D.select empno, ename, loc from emp left join dept on emp.deptno = dept.deptno andsubstr(emp.ename, 1, 1) = ‘S’;2.你要对操纵Oracle数据库中的数据。

下列哪个选项表示Oracle中select语句的功能,并且不需要使用子查询?A.可以用select语句改变Oracle中的数据 B.可以用select语句删除Oracle中的数据C.可以用select语句和另一个表的内容生成一个表 D.可以用select语句对表截断3.Oracle数据库中发出一个查询。

下列哪个选项不能查询对用户定义静态表达式执行数学运算时的查询组件?A.列子句 B.表子句 C.DUAL表 D.where子句4.你要操纵Oracle数据,下列哪个不是SQL命令?A.select * from dual; B.set defineC.update emp set ename = 6543 where ename = ‘SMITHERS’;D.create table employees(empid varchar2(10) primary key);5.你要在Oracle中定义SQL查询。

Oracle笔试题目带答案

Oracle笔试题目带答案

Oracle笔试题目带答案1.( )程序包用于读写操作系统文本文件。

(选一项)A、Dbms_outputB、Dbms_lobC、Dbms_randomD、Utl_file2.( )触发器允许触发操作的语句访问行的列值。

(选一项)A、行级B、语句级C、模式D、数据库级3.( )是oracle在启动期间用来标识物理文件和数据文件的二进制文件。

(选一项)A、控制文件B、参数文件C、数据文件D、可执行文件4.CREATE TABLE 语句用来创建(选一项)A、表B、视图C、用户D、函数5.imp命令的哪个参数用于确定是否要倒入整个导出文件。

(选一项)A、constranintsB、tablesC、fullD、file6.ORACLE表达式NVL(phone,'0000-0000')的含义是(选一项)A、当phone为字符串0000-0000时显示空值B、当phone为空值时显示0000-0000C、判断phone和字符串0000-0000是否相等D、将phone的全部内容替换为0000-00007.ORACLE交集运算符是(选一项)A、intersectB、unionC、setD、minus8.ORACLE使用哪个系统参数设置日期的格式(选一项)A、nls_languageB、nls_dateC、nls_time_zoneD、nls_date_format9.Oracle数据库中,通过()访问能够以最快的方式访问表中的一行(选一项)A、主键B、RowidC、唯一索引D、整表扫描10.Oracle数据库中,下面()可以作为有效的列名。

(选一项)A、ColumnB、123_NUMC、NUM_#123D、#NUM12311.Oracle数据库中,以下()命令可以删除整个表中的数据,并且无法回滚(选一项)A、dropB、deleteC、truncateD、cascade12.Oracle中, ( )函数将char或varchar数据类型转换为date数据类型。

oracle_开发工程师面试题

oracle_开发工程师面试题

1. 说明冷备份和热备份的不同点和各自的优势解答:热备份针对归档模式的数据库,在数据库仍旧处于工作状态时进行备份。

而冷备份指在数据库关闭后,进行备份,适用于所有模式的数据库。

热备份的优势在于当备份时,数据库仍旧能够被利用而且能够将数据库恢复到任意一个时刻点。

冷备份的优势在于它的备份和恢复操作相当简单,而且由于冷备份的数据库能够工作在非归档模式下,数据库性能会比归档模式稍好。

(因为没必要将archive log写入硬盘)2. 你必需利用备份恢复数据库,可是你没有操纵文件,该如何解决问题呢解答:重建操纵文件,用带backup control file 子句的recover 命令恢复数据库。

3. 如何转换到spfile软件开发网解答:利用create spfile from pfile 命令.4. 说明data block , extent 和segment的区别(那个地址建议用英文术语)解答:data block是数据库中最小的逻辑存储单元。

当数据库的对象需要更多的物理存储空间时,持续的data block就组成了extent . 一个数据库对象拥有的所有extents被称为该对象的segment.软件开发网5. 给出两个检查表结构的方式解答:命令包软件开发网6. 如何查看数据库引擎的报错解答:alert log.7. 比较truncate和delete 命令解答:二者都能够用来删除表中所有的记录。

区别在于:truncate是DDL操作,它移动HWK,不需要rollback segment .而Delete是DML操作, 需要rollback segment 且花费较长时刻.8. 利用索引的理由解答:快速访问表中的data block9. 给出在STAR SCHEMA中的两种表及它们别离含有的数据软件开发网解答:Fact tables 和dimension tables. fact table 包括大量的要紧的信息而dimension tables 寄存对fact table 某些属性描述的信息10. FACT T able上需要成立何种索引解答:位图索引(bitmap index)11. 给出两种相关约束解答:主键和外键12. 如安在不阻碍子表的前提下,重建一个母表解答:子表的外键强制实效,重建母表,激活外键软件开发网13. 说明归档和非归档模式之间的不同和它们各自的优缺点解答:归档模式是指你能够备份所有的数据库transactions并恢复到任意一个时刻点。

oracle数据库面试题目(3篇)

oracle数据库面试题目(3篇)

第1篇1. 请简述Oracle数据库的体系结构,并说明各层的作用。

2. 请解释什么是Oracle实例?实例与数据库之间的关系是什么?3. 请简述Oracle数据库的存储结构,包括数据文件、控制文件、日志文件等。

4. 请说明Oracle数据库的内存结构,包括SGA、PGA等。

5. 请解释Oracle数据库的备份策略,包括全备份、增量备份、差异备份等。

6. 请说明Oracle数据库的恢复策略,包括不完全恢复、完全恢复等。

7. 请解释Oracle数据库的事务管理,包括事务的ACID特性。

8. 请说明Oracle数据库的锁机制,包括共享锁、排他锁等。

9. 请解释Oracle数据库的并发控制,包括多版本并发控制(MVCC)。

10. 请说明Oracle数据库的安全机制,包括角色、权限、用户等。

二、SQL语言1. 请简述SQL语言的组成,包括数据定义语言(DDL)、数据操纵语言(DML)、数据控制语言(DCL)等。

2. 请说明如何创建一个简单的表,包括表结构、字段类型、约束等。

3. 请编写一个查询语句,查询某个表中所有年龄大于30岁的记录。

4. 请编写一个更新语句,将某个表中年龄大于40岁的记录的年龄加1。

5. 请编写一个删除语句,删除某个表中年龄小于20岁的记录。

6. 请编写一个插入语句,插入一条记录到某个表中。

7. 请说明如何使用SQL语句实现分页查询。

8. 请说明如何使用SQL语句实现多表查询。

9. 请说明如何使用SQL语句实现子查询。

10. 请说明如何使用SQL语句实现联合查询。

三、Oracle高级特性1. 请解释什么是视图?如何创建视图?2. 请解释什么是索引?有哪些常见的索引类型?3. 请解释什么是触发器?如何创建触发器?4. 请解释什么是存储过程?如何创建存储过程?5. 请解释什么是函数?如何创建函数?6. 请解释什么是包?如何创建包?7. 请解释什么是序列?如何创建序列?8. 请解释什么是同义词?如何创建同义词?9. 请解释什么是物化视图?如何创建物化视图?10. 请解释什么是分区表?如何创建分区表?四、Oracle性能优化1. 请说明如何查看Oracle数据库的性能统计信息。

Oracle数据库笔试面试试题及答案

Oracle数据库笔试面试试题及答案

Oracle数据库笔试面试试题及答案一、基础概念1. 列举几种表连接方式Answer:等连接(内连接)、非等连接、自连接、外连接(左、右、全)Or hash join/merge join/nest loop(cluster join)/index join ??ORACLE 8i,9i 表连接方法。

一般的相等连接: select * from a, b where a.id = b.id; 这个就属于内连接。

对于外连接:Oracle中可以使用“(+) ”来表示,9i可以使用LEFT/RIGHT/FULL OUTER JOINLEFT OUTER JOIN:左外关联SELECT st_name, e.department_id, d.department_nameFROM employees eLEFT OUTER JOIN departments dON (e.department_id = d.department_id);等价于SELECT st_name, e.department_id, d.department_nameFROM employees e, departments dWHERE e.department_id=d.department_id(+)结果为:所有员工及对应部门的记录,包括没有对应部门编号department_id的员工记录。

RIGHT OUTER JOIN:右外关联SELECT st_name, e.department_id, d.department_nameFROM employees eRIGHT OUTER JOIN departments dON (e.department_id = d.department_id);等价于SELECT st_name, e.department_id, d.department_nameFROM employees e, departments dWHERE e.department_id(+)=d.department_id结果为:所有员工及对应部门的记录,包括没有任何员工的部门记录。

ORACLE-笔试题及答案

ORACLE-笔试题及答案

ORACLE-笔试题及答案ORACLE考题姓名一、选择题(每题1.5分)1,如何删除sales表中产品类型为toys的profits列的列值? �� (A) a) UPDATE sales SET profits = NULL WHERE product_type = 'TOYS' �� b) DELETE profits FROM sales WHERE product_type = 'TOYS'�� c) DELETE FROM sales WHEREproduct_type = 'TOYS' d) DELETE FROM sales2,在Oracle中,下面用于限制分组函数的返回值的字句是(B) a) WHRER b) HAVINGc) ORDER BYd) 无法限定分组函数的返回3,在Oracle PL/SQL中,执行动态SQL的语句是(D) a) NXECUTE b) START c) RUNd) EXECUTE IMMEDIATE4,下列表空间中��__(D)__表空间是运行一个数据库必须的一个表空间。

A)ROLLBACK B)TOOLSC)TEMPD)SYSTEM5, PL/SQL代码段中注释符号是___(C)___。

A) // B) \\\\ C) -- D) ,6,在PL/SQL代码段的异常处理块中�〔痘袼�有异常的关键词是______。

(A) A、OTHERS B、ALL C、Exception D、ERRORS7, SQL语句中修改表结构的命令是 (C) 。

A、MODIFY TABLEB、MODIFY STRUCTUREC、ALTER TABLE STRUCTURE8,在oracle中获取前10条的关键字是(D)A) top B)Limit C)first D) rownum9,下面那个不是oracle程序设计中的循环语句( A)A) for… end for B) loop…end loop C) while…end loop D、ALTER D) for…end loop10,以下哪个不是数据库的物理组件(A)。

Oracle笔试题库附参考答案

Oracle笔试题库附参考答案

Oracle笔试题库附参考答案1.下列不属于ORACLE的逻辑结构的是(C)1. 区2. 段3. 数据⽂件4. 表空间2. 下⾯哪个⽤户不是ORACLE缺省安装后就存在的⽤户(A)A . SYSDBAB. SYSTEMC. SCOTTD. SYS3 下⾯哪个操作会导致⽤户连接到ORACLE数据库,但不能创建表(A)1. 授予了CONNECT的⾓⾊,但没有授予RESOURCE的⾓⾊2. 没有授予⽤户系统管理员的⾓⾊3. 数据库实例没有启动4. 数据库监听没有启动1. ( )函数通常⽤来计算累计排名,移动平均数和报表聚合。

A . 汇总B. 分析C 分组、D 单⾏1. 带有(B)字句的SELECT语句可以在表的⼀⾏或多⾏放置排他锁。

A . FOR INSERTB. FOR UPDATEC. FOR DELETED. FOR REFRESH1. 在Oracle中,你以SYSDBA登录,CUSTOMER表位于Mary⽤户⽅案中,下⾯哪条语句为数据库中的所有⽤户创建CUSTOMER表的同义词(B)。

1. CREATE PUBLIC SYNONYM cust ON mary.customer;2. CREATE PUBLIC SYNONYM cust FOR mary.customer;3. CREATE SYNONYM cust ON mary.customer FOR PUBLIC;4. 不能创建CUSTOMER的公⽤同义词。

5.7. 在Oracle中,当FETCH语句从游标获得数据时,下⾯叙述正确的是(C)。

1. 游标打开2. 游标关闭3. 当前记录的数据加载到变量中4. 创建变量保存当前记录的数据8. 在Oracle中,下⾯关于函数描述正确的是(AD)。

1. SYSDATE函数返回Oracle服务器的⽇期和时间2. ROUND数字函数按四舍五⼊原则返回指定⼗进制数最靠近的整数3. ADD_MONTHS⽇期函数返回指定两个⽉份天数的和4. SUBSTR函数从字符串指定的位置返回指定长度的⼦串9. 阅读下⾯的PL/SQL程序块:BEGININSERT INTO employee(salary,last_name,first_name)VALUES(35000,’Wang’,'Fred’);SAVEPOINT save_a;INSERT INTO employee(salary,last_name,first_name)VALUES(40000,’Woo’,'David’);SAVEPOINT save_b;DELETE FROM employee WHERE dept_no=10;SAVEPOINT save_c;INSERT INTO employee(salary,last_name,first_name)VALUES(25000,’Lee’,'Bert’);ROLLBACK TO SAVEPOINT save_c;VALUES(32000,’Chung’,'Mike’);ROLLBACK TO SAVEPOINT save_b;COMMIT;END;运⾏上⾯的程序,哪两个更改永久保存到数据库(CD)。

oracle笔试题及答案

oracle笔试题及答案

oracle笔试题及答案一、选择题1. Oracle数据库是一种()数据库管理系统。

A. 关系型B. 非关系型C. 层次型D. 网状型答案:A2. 下列哪个选项不属于Oracle数据库的特点?A. 完全支持SQL语言B. 支持分布式数据库C. 提供高可用性和故障恢复机制D. 仅支持单用户操作答案:D3. 在Oracle数据库中,下列关键字中哪个用于插入一行数据?A. UPDATEB. DELETEC. SELECTD. INSERT答案:D4. 在Oracle数据库中,下列关键字中哪个用于从表中删除一行数据?A. TRUNCATEB. DROPC. DELETED. REMOVE答案:C5. 在Oracle数据库中,下列关键字中哪个用于更新表中的数据?A. MODIFYB. ALTERC. UPDATED. CHANGE答案:C6. 在Oracle数据库中,下列哪个语句用于创建一个新的用户?A. CREATE ROLEB. CREATE USERC. GRANT PERMISSIOND. ALTER ACCOUNT答案:B7. 在Oracle数据库中,下列关键字中哪个用于将表中的数据按照指定的列进行排序?A. SORTB. GROUPC. ORDERD. ARRANGE答案:C8. 在Oracle数据库中,下列关键字中哪个用于查询满足特定条件的数据?A. SELECTB. SEARCHC. FINDD. FILTER答案:A9. 在Oracle数据库中,下面哪个关键字用于创建新的表?A. CREATEB. MAKEC. BUILDD. CONSTRUCT答案:A10. 下列哪个Oracle数据库对象用于避免数据冗余,提高查询速度,并提供数据的一致性和完整性?A. 视图(View)B. 函数(Function)C. 存储过程(Stored Procedure)D. 游标(Cursor)答案:A二、简答题请简要回答以下问题。

oracle数据笔试题

oracle数据笔试题

oracle数据笔试题一、选择题1. 在Oracle数据库中,用于创建表的语句是什么?A. CREATE DATABASEB. CREATE TABLEC. CREATE INDEXD. CREATE VIEW答案:B2. 下列哪个SQL命令用于查询员工表中所有年龄大于30的员工信息?A. SELECT * FROM employees WHERE age > 30;B. SELECT * FROM employees.WHERE age > 30;C. SELECT employees.* FROM employees WHERE age > 30;D. SELECT * FROM employees WHERE age > 30 AND gender = 'M';答案:A3. 在Oracle中,如何删除一个已经存在的表?A. DROP TABLE employees;B. REMOVE TABLE employees;C. DELETE TABLE employees;D. ERASE TABLE employees;答案:A4. 要在一个已存在的表中添加新列,应该使用哪个Oracle命令?A. ADD COLUMN column_name datatype;B. MODIFY COLUMN column_name datatype;C. ALTER TABLE employees ADD column_name datatype;D. CHANGE TABLE employees ADD column_name datatype;答案:C5. 下列哪个命令可以用于在Oracle数据库中创建一个唯一索引?A. CREATE UNIQUE INDEX index_name ON table_name(column_name);B. CREATE INDEX index_name ON table_name(column_name) UNIQUE;C. CREATE UNIQUE INDEX index_name FOR table_name(column_name);D. CREATE index_name ON table_name(column_name) UNIQUE;答案:A二、填空题1. 在Oracle SQL中,________语句用于更新表中的记录。

Oracle笔试题-参考答案

Oracle笔试题-参考答案

f(考试时间:180分钟试卷满分:300分)注意事项:1.答卷前,请关闭手机,禁止使用设备对试卷进行拍照。

2.请务必将个人相关信息填写在相应位置。

3.请将答案填写在相应位置,否则无效。

第一部分单选题(每题2分,满分80分)做题时,先将答案标在试卷上,录音结束后,你将有两分钟的时间将试卷上的答案转涂到答题卡上。

一、单选题(每题2分 * 40 = 80分)1. 使用Oracle数据库,必须启动哪个服务()A.OracleHOME_NAMETNSListener B.OracleServiceSIDC.OracleMTSRecoveryService D.OracleJobSchedulerSID2. 在Windows操作系统中,Oracle的()服务监听并接受来自客户端应用程序的连接请求。

A.OracleHOME_NAMETNSListener B.OracleServiceSIDC.OracleHOME_NAMEAgent D.OracleHOME_NAMEHTTPServer3. 用二维表结构表达实体集的模型是()A.概念模型 B.层次模型 C.网状模型D.关系模型4. Oracle 11g 是基于()的A.关系型B.文件系统C.层次型D.网络型5. ( )代表了数据库中最小粒度的逻辑数据存储层次。

A.盘区B.表空间C.数据块D.数据文件6. 你使用下列命令连接数据库:sqlplusscott/***************:1522/orcl.目标数据库是哪一个?()A. B.tigerC. orclD. scott7. 设有一个关系:DEPT(DNO,DNAME,LOC),如果要找出倒数第三个字母为W,并且至少包含4个字母的DNAME,则查询条件子句应写成WHERE DNAME LIKE ()A.‘_ _ W _ %’B.‘_ % W _ _’C. ‘_ W _ _’D. ‘_ W _ %’8. 下列解锁scott账户的命令正确的是()A、update user scottaccount unlock;B、alter user scott account unlock;C、alter user scott unlock;9. having , where , group by 的正确执行顺序是()A、having,where,group byB、group by,having,whereC、where,having,group byD、where ,group by,having10. 分析下面两个SQL语句,选项中说法正确的有( )SELECT last_name, salary , hire_dateFROM EMPLOYEESORDER BY salary DESC;SELECT last_name, salary , hire_dateFROM EMPLOYEESORDER BY 2 DESC;A、两个SQL语句的结果完全相同B、第二个SQL语句产生语法错误C、没有必要指定排序方式为desc,因为默认的排序方式是降序排序D、可以通过为第二个SQL语句的salary列添加列别名来使两个SQL语句得到相同的结果注意:Order by group by 后跟数字,代表select后的字段的位置11. 数据库设计中用关系模型表示实体和实体之间的联系。

一道Oracle笔试题 附网友答案

一道Oracle笔试题 附网友答案

一道Oracle笔试题附网友答案问题:一道Oracle笔试题附网友答案回答:考试总分为100分,共8题,时间为1小时。

表结构说明:create table employee(id number(10) not null, 员工工号salary number(10,2) default 0 not null, 薪水name varchar2(24) not null 姓名);1.创建序列seq_employee,该序列每次取的时候它会自动增加,从1开始计数,不设最大值,并且一直累加,不循环。

(10分)2.写一个PL/SQL块,插入表user.employee中100条数据。

插入该表中字段id用序列seq_employee实现,薪水和姓名字段可以任意填写。

(15分)6.写一个匿名语句块,用于执行函数f_employee,并打印执行该函数的结果。

(8分)7.创建存储过程p_create_emp,用于判断表employee是否存在,如果存在则删除该表。

(15分)8.写一个匿名语句块,用于执行存储过程p_create_emp。

(7分)答案如下:SQL> create table employee(2 id number(10) not null, 员工工号3 salary number(10,2) default 0 not null, 薪水4 name varchar2(24) not null 姓名5 );表已创建。

第一题答案:SQL> Create sequence seq_employee increment by 1 start with 1 nomaxvalue nocycle;序列已创建。

第二题答案:SQL> declare i number;2 begin3 for i in 1 .. 1004 loop5 insert into employee6 values(seq_employee.nextval,1950+i, 王明||to_char(i));7 commit;8 end loop;9 end;10 /PL/SQL 过程已成功完成。

oracle面试题及答案

oracle面试题及答案

oracle面试题及答案IntroductionOracle is one of the leading relational database management systems (RDBMS) in the world. If you are preparing for an Oracle interview, it is important to familiarize yourself with common interview questions and be prepared with accurate and concise answers. In this article, we will discuss some frequently asked Oracle interview questions and provide detailed answers to help you succeed in your interview.1. What is Oracle?Oracle is a powerful and highly popular relational database management system developed by Oracle Corporation. It is used to store, organize, and manage large amounts of data efficiently. Oracle utilizes SQL (Structured Query Language) for querying and manipulating data, providing a comprehensive platform for data management in organizations.2. What are the different components of Oracle architecture?The Oracle architecture consists of several key components, including:a. Oracle Database: The central component that stores data and manages its access.b. Instance: The combination of memory structures and background processes that manage the database.c. Memory Structures: These include the System Global Area (SGA) and the Program Global Area (PGA), which store data and control information.d. Background Processes: These processes handle tasks such as managing memory, ensuring data integrity, and handling user connections.e. Physical Files: These files store the actual data, control files, redo logs, and archived logs.3. Explain the difference between a database and an instance in Oracle.In Oracle, a database refers to the collection of physical files that store data, control information, and other components. An instance, on the other hand, is the combination of memory structures and background processes that manage the database. In simple terms, a database is the stored data, while an instance is the software that operates on the data.4. What is the purpose of the control file in Oracle?The control file is a crucial component of an Oracle database. It contains metadata about the database, such as the database name, the names and locations of data files and redo logs, and the time of the last backup. The control file is used during database startup to verify the structure of the database and maintain consistency.5. How can you kill an Oracle session?To terminate an Oracle session, you can use the following SQL statement:```sqlALTER SYSTEM KILL SESSION '[sid],[serial#]';```Replace `[sid]` with the session ID and `[serial#]` with the serial number of the session you want to terminate. It is important to exercise caution when terminating sessions to avoid data corruption or loss.6. What are the different types of indexes in Oracle?Oracle supports various types of indexes to enhance query performance. Some commonly used index types include:a. B-Tree Index: The most common index type in Oracle, used for equality and range searches.b. Bitmap Index: Efficient for columns with a small number of distinct values.c. Function-Based Index: Created on an expression or function of one or more columns.d. Partitioned Index: Divides the index into smaller, more manageable pieces.e. Cluster Index: Organizes table rows that share common values in one or more columns.7. Explain the difference between COMMIT and ROLLBACK statements.In Oracle, the COMMIT statement is used to permanently save changes made within a transaction. It terminates the current transaction and makes all changes made up to that point visible to other users. On the other hand, the ROLLBACK statement is used to undo changes made within a transaction,reverting the database to its state before the transaction began. ROLLBACK can be issued either voluntarily or in response to an error or exception.8. How does Oracle handle concurrent access to the database?Oracle employs a mechanism called Multi-Version Concurrency Control (MVCC) to handle concurrent access to the database. MVCC allows multiple users to access and modify data simultaneously by providing each user with a snapshot of the data as it existed at the start of their transaction. This ensures data integrity and consistency while avoiding conflicts among concurrent transactions.ConclusionPreparing for an Oracle interview requires a solid understanding of the fundamental concepts and features of Oracle database management. By familiarizing yourself with common interview questions and practicing your answers, you can confidently demonstrate your knowledge and increase your chances of success. Remember to stay calm, organized, and concise in your responses, highlighting your expertise in Oracle and your ability to tackle various challenges in the database management field. Good luck!。

Oracle面试题

Oracle面试题

Oracle面试题
1.Oracle有哪些行触发器?
答案:Oracle有三种行触发器,分别是BEFORE、AFTER和INSTEAD OF触发器。

2.什么是Oracle中的SGA?主要组成结构和用途是什么?
答案:SGA是Oracle数据库中的共享内存区域,用于存储数据库实例的数据和控制信息。

SGA的主要组成结构包括共享池、数据缓冲区、重做日志缓冲区、大型池和Java池。

共享池存储了SQL语句和PL/SQL代码的解析树,数据缓冲区存储了最近访问的数据块,重做日志缓冲区存储了重做日志条目,大型池存储了会话信息,Java池存储了Java会话信息。

SGA的主要用途是提高数据库的性能,通过缓存访问和减少磁盘I/O操作来实现。

3.什么是分区表?
答案:分区表是指将一个表的数据按照某种规则分割成多个不同的物理位置进行存储,以便提高查询性能和数据管理。

分区表的主要优势包括提高查询性能、方便数据备份和恢复、简化数据管理。

一套Oracle面试题笔试题及参考答案

一套Oracle面试题笔试题及参考答案

_一套Oracle面试题笔试题及参考答案完成下列操作,写出相应的SQL语句创建表空间neuspace,数据文件命名为neudata.dbf,存放在d:\data 目录下,文件大小为200MB,设为自动增长,增量5MB,文件最大为500MB。

(8分)答:create tablespace neuspace datafile‘d:\data\neudata.dbf’size200m auto extend on next5m maxsize500m;2.假设表空间neuspace已用尽500MB空间,现要求增加一个数据文件,存放在e:\appdata目录下,文件名为appneudata,大小为500MB,不自动增长。

(5分)答:alter tablespace neuspace add datafile ‘e:\appdata\appneudata.dbf’size500m;3.以系统管理员身份登录,创建账号tom,设置tom的默认表空间为neuspace。

为tom分配connect和resource系统角色,获取基本的系统权限。

然后为tom分配对用户scott的表emp的select权限和对SALARY,MGR属性的update权限。

(8分)答:create user tom identified by jack default tablespace neuspace; Grant connect,resource to tom;Grant select,update(salary,mgr)on scott.emp to tom;4.按如下要求创建表class和student。

(15分)属性类型(长度)默认值约束含义CLASSNO数值(2)无主键班级编号CNAME变长字符(10)无非空班级名称属性类型(长度)默认值约束含义STUNO数值(8)无主键学号SNAME变长字符(12)无非空姓名SEX字符(2)男无性别BIRTHDAY日期无无生日EMAIL变长字符(20)无唯一电子邮件SCORE数值(5,2)无检查成绩CLASSNO数值(2)无外键,关联到表CLASS的CLASSNO主键班级编号答:create table class(classno number(2)constraint class_classno_pk primary key, cname varchar2(10)not null);create table student(stuno number(8)constraint student_stuno_pk primary key, sname varchar2(12)not null,sex char(2)default‘男’,birthday date,email varchar2(20)constraint student_email_uk unique,score number(5,2)constraint student_score_ck check(score&gt;=0and score&lt;=100),classno number(2)constraint student_classno_fk references class(classno));5.在表student的SNAME属性上创建索引student_sname_idx(5分)答:create index student_sname_idx on student(sname);6.创建序列stuseq,要求初值为20050001,增量为1,最大值为20059999。

oracle面试题及答案

oracle面试题及答案

oracle面试题及答案oracle面试题及答案(一)1、关系数据库系统与文件数据库系统的区别在那里?关系数据库系统一般适用那些方面? 答案:关系数据库系统文件系统的区别在于:首先,关系性数据库的整体数据是结构化的,采用关系数据模型来描述,这是它与文件系统的根本区别。

(数据模型包括:数据结构,数据操作以及完整性约束条件)其次,关系数据库系统的共享性高,冗余低可以面向整个系统,而文件系统则具有应用范围的局限性,不易扩展。

第三,关系数据库系统采用两级映射机制保证了数据的高独立性,从而使得程序的编写和数据都存在很高的独立性。

这方面是文件系统无法达到的,它只能针对于某一个具体的应用。

(两级映射:保证逻辑独立性的外模式/模式映射和保证物理独立性的内模式/模式映射。

外模式:用户模式,是数据库用户的局部数据的逻辑结构特征的描述。

模式:数据库全体数据的逻辑结构特征的描述。

内模式:也就是数据最终的物理存储结构的描述。

)第四,就是关系性数据库系统由统一的DBMS进行管理,从而为数据提供了如安全性保护,并发控制,完整性检查和数据库恢复服务。

2、触发器的概念,存储过程的概念.答案:触发器:是存储在数据库中的过程,当表被修改(增、删、改)时它隐式地被激发。

存储过程:是数据库语言SQL的集合,同样也存储在数据库中,但是他是由其他应用程序来启动运行或者也可以直接运行。

3、基本SQL语句有哪些.答案:select、insert、update、delete、create、drop、truncate4、使用存储过程访问数据库比直接用SQL语句访问有哪些优点?答案:存储过程是预编译过的,执行时勿须编译,执行速度更快;存储过程封装了一批SQL语句,便于维护数据的完整性与一致性;可以实现代码的复用。

oracle面试题及答案(二)1.解释冷备份和热备份的不同点以及各自的优点解答:热备份针对归档模式的数据库,在数据库仍旧处于工作状态时进行备份。

oracle的面试题及答案

oracle的面试题及答案

oracle的面试题及答案在Oracle的面试过程中,面试官往往会提出一系列与Oracle数据库相关的问题。

为了帮助你准备面试,本文将介绍一些常见的Oracle面试题及其答案。

以下是一些常见的Oracle面试题及答案供你参考:1. Oracle数据库的基本概念是什么?Oracle数据库是一个基于关系模型的数据库管理系统,它的特点包括数据安全、高可用性、高性能和可扩展性。

2. 什么是Oracle实例和数据库?Oracle实例是Oracle数据库运行时的一个进程,它负责管理和访问数据库的所有资源。

数据库则是存储数据的物理文件集合。

3. 请解释什么是表空间(tablespace)?表空间是逻辑存储结构,它由一个或多个数据文件组成,用于存储数据库中的表、索引和其他对象。

4. Oracle中的数据类型有哪些?Oracle提供了多种数据类型,包括字符型、数值型、日期型、二进制型等。

5. 如何创建表?可以使用CREATE TABLE语句来创建表。

例如,CREATE TABLE employees (id NUMBER, name VARCHAR2(50), age NUMBER);6. 如何在Oracle中插入数据?可以使用INSERT INTO语句来向表中插入数据。

例如,INSERT INTO employees (id, name, age) VALUES (1, 'John', 25);7. 如何更新表中的数据?可以使用UPDATE语句来更新表中的数据。

例如,UPDATE employees SET age = 26 WHERE id = 1;8. 如何删除表中的数据?可以使用DELETE语句来删除表中的数据。

例如,DELETE FROM employees WHERE id = 1;9. Oracle中的索引有哪些类型?Oracle提供了多种索引类型,包括B树索引、位图索引、散列索引等。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

一套Oracle面试题笔试题及参考答案
Oracle, 笔试, 面试
完成下列操作,写出相应的SQL语句
1.创建表空间neuspace,数据文件命名为neudata.dbf,存放在d:\data
目录下,文件大小为200MB,设为自动增长,增量5MB,文件最大为
500MB。

(8分)
答:create tablespace neuspace datafile ‘d:\data\neudata.dbf’ size 200m auto extend on next 5m maxsize 500m;
2. 假设表空间neuspace已用尽500MB空间,现要求增加一个数据文件,存放在e:\appdata目录下,文件名为appneudata,大小为500MB,不自动增长。

(5
分)
答:alter tablespace neuspace add datafile ‘e:\appdata\appneudata.dbf’
size 500m;
3. 以系统管理员身份登录,创建账号tom,设置tom的默认表空间为neuspace。

为tom分配connect和resource系统角色,获取基本的系统权限。

然后为tom 分配对用户scott的表emp的select权限和对SALARY, MGR属性的update权限。

(8分)
答:create user tom identified by jack default tablespace neuspace;
Grant connect, resource to tom;
Grant select, update(salary, mgr) on scott.emp to tom;
答:create table class
(classno number(2) constraint class_classno_pk primary key,
cname varchar2(10) not null);
create table student
(stuno number(8) constraint student_stuno_pk primary key,
sname varchar2(12) not null,
sex char(2) default ‘男’,
birthday date,
email varchar2(20) constraint student_email_uk unique, score number(5,2) constraint student_score_ck check(score>=0 and
score<=100),
classno number(2) constraint student_classno_fk references
class(classno)
);
5. 在表student的SNAME属性上创建索引student_sname_idx(5分)
答:create index student_sname_idx on student(sname);
6. 创建序列stuseq,要求初值为20050001,增量为1,最大值为20059999。

(6
分)
答:create sequence stuseq increment by 1 start with 20050001 maxvalue
20059999 nocache nocycle;
答:insert into student values(stuseq.nextval, ’tom’, ’男’,
to_date(‘1979-2-3
14:30:25’, ’yyyy-mm-dd fmhh24:mi:ss’), ’tom@’, 89.50, 1); insert into student (stuno, sname, classno) values(stuseq.nextval, ’
jerry’, 2);
8. 修改表student的数据,将所有一班的学生成绩加10分。

(4分)
答:update student set score=score+10 where classno=1;
9. 删除表student的数据,将所有3班出生日期小于1981年5月12日的记录
删除。

(4分)
答:delete from student where classno=3 and birthday > ’12-5月-81’;
10. 完成以下SQL语句。

(40分)
(1) 按班级升序排序,成绩降序排序,查询student表的所有记录。

答:select * from student order by classno, score desc;
(2) 查询student表中所有二班的成绩大于85.50分且出生日期大于
1982-10-31日的男生的记录。

答:select * from student where classno=2 and score>85.50 and birthday
< ’31-10月-82’ and sex=’男’;
(3) 查询student表中所有三班成绩为空的学生记录。

答:select * from student where classno=3 and score is null; (4) 表student与class联合查询,要求查询所有学生的学号,姓名,成绩,班
级名称。

(使用oracle与SQL 99两种格式)
答:select s.stuno, s.sname, s.score, ame from student s, class c where
s.classno=c.classno;
(5) 按班级编号分组统计每个班的人数,最高分,最低分,平均分,并按平均分
降序排序。

答:select classno, count(*), max(score), min(score), avg(score) from student group by classno order by avg(score) desc;
(6) 查询一班学生记录中所有成绩高于本班学生平均分的记录。

答:select * from student where classno=1 and score > (select avg(score)
from student where classno=1);
(7) 统计二班学生中所有成绩大于所有班级平均分的人数。

答:select count(*) from student where classno=2 and score > all (select avg(socre) from student group by classno);
(8) 查询平均分最高的班级编号与分数。

答:select classno, avg(score) from student group by classno having avg(score) = (select max(avg(score)) from student group by classno);
(9) 查询所有学生记录中成绩前十名的学生的学号、姓名、成绩、班级编号。

答:select stuno, sname, score, classno from (select * from student order
by score desc) where rownum<=10;
(10) 创建视图stuvu,要求视图中包含student表中所有一班学生的stuno,
sname, score, classno四个属性,并具有with check option限制。

答:create view stuvu
as
select stuno, sname,score,classno from student where classno=1 with check
option;。

相关文档
最新文档