oracle考试题
一、选择题(40分)
Oracle发出下列select语句: SQL> select e.empno,e.ename,d.loc 2 from emp e,dept d 3 where e.deptno = d.deptno 4 and substr(e.ename,1,1) = ‘S’; 下列哪个语句是Oracle数据库中可用的ANSI兼容等价语句? A.select empno,ename,loc from emp join dept on emp.deptno = dept.deptno where substr(emp.ename,1) = ‘S’; B.select empno,loc from emp,dept on emp.deptno = dept.deptno where substr(emp.ename,1) = ‘S’; C.select empno,loc from emp join dept where emp.deptno = dept.deptno and substr(emp.ename,1) = ‘S’; D.select empno,loc from emp left join dept on emp.deptno = dept.deptno and substr(emp.ename,1) = ‘S’; 下列哪个选项表示Oracle中select语句的功能? A.可以用select语句改变Oracle中的数据 B.可以用select语句删除Oracle中的数据 C.可以用select语句和另一个表的内容生成一个表 D.可以用select语句对表截断 你要操纵Oracle数据,下列哪个不是SQL命令? A.select * from dual; B.set define C.update emp set ename = 6543 where ename = ‘SMITHERS’; D.create table employees(empid varchar2(10) primary key); 你要在Oracle中定义SQL查询。下列哪个数据库对象不能直接从select语句中引用? A.表 B.序列 C.索引 D.视图 你要根据PRODUCT_NAME列从PROFITS表查询中过滤返回的数据。下列哪个子句包含相应过滤条件的引用? A.select B.from C.where D.having 用下列代码所示的内容回答后面五个问题: EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO 7369SIMTHCLERK790217-DEC-8080020 7499ALLENSALESMAN769820-FEB-81160030030 7521WARDSALESMAN769822-FEB-81125050030 7566JONESMANAGER783902-APR-81297520 7654MARTINSALESMAN769828-SEP-811250140030 7698BLAKEMANAGER783901-MAY-81285030 7782CLARKMANAGER783909-JUN-81245010 7788SCOTTANALYST756619-APR-82300020 7839KINGPRESIDENT17-NOV-81500010 7844TURNERSALESMAN769808-SET-811500030 7876ADAMSCLERK778823-DEC-82110020 7900JAMESCLERK769803-DEC-8195030 7902 FORD ANALYST 7566 03-DEC-81 3000 20 7934 MILLER CLERK 7782 23-JAN-82 1300 10 以下选项中哪个是下列查询返回的值:select sum(sal) + sum(comm) from emp where job = ‘ANALYST’ or ename like ‘J%’ ? A.6000 B.9925 C.9975 D.NULL null参与运算后的结果还是null 以下选项中哪个是下列查询返回的值:select count(mgr) from emp where deptno = 10 ? A.1 B.2 count运算可以忽略空行 C.3 D.NULL 以下选项中哪个是下列查询返回的值:select count(*) from emp where mgr = 7700-2 ? A.5 B.6 C.7 D.NULL 以下选项中哪个是下列SQL命令产生的第三个员工:select ename,sal from emp where job= ‘SALESMAN’ order by empno desc ? A.ALLEN B.MARTIN C.TURNER D.WARD 以下选项中哪个是发出下列查询后Oracle返回的值:select substr(job,3) from emp where ename like upper(‘__ar%’) ? A.ANA B.CLE C.MAN D.SAL 要从ORDERS表中取得数据,其中包括三个列CUSTOMER、ORDER_DATE与ORDER_AMT。可以用下列哪个where子句查询ORDERS表,取得客户LESLIE超过2700的订单? A.where customer = ‘LESLIE’; B.where customer = ‘LESLIE’ and order_amt < 2700; C.where customer = ‘LESLIE’ or order_amt > 2700; D.where customer = ‘LESLIE’ and order_amt > 2700; 对表中的某一行,VARCHAR2列包含数值SMITHY,应用程序在右侧填充七个空格。length()函数处理这个列值时,返回什么值? A.6 B.13 C.30 D.60 在Oracle中发出的下列查询: SQL> select months_between(‘15-MAR-83’,’15-MAR-97’) form dual; Oracle返回什么? A.14 B.-14 C.168 D.-168 开发报表时,要连接三个表的信息,这些表为EMP、DEPT与SALGRADE。只需要公司10级员工相应的员工姓名、部门地址与工资的记录。这个查询需要多少条件? A.2 B.3 C.4 D.5 Oracle中发出下列命令: SQL> select e.ename,a.street_address,a.city,a.post_code 2 from emp e,addr a 3 where e.empno = a.empno(+) 4 and a.state = ‘TEXAS’; 下列哪个选项显示等价ANSI/ISO语句? A.select e.ename,a.state,a.post_code from emp e outer join addr a on e.empno = a.empno where a.state = ‘TEXAS’; B.select e.ename,a.post_code from emp e left outer join addr a on e.empno = a.empno where a.state = ‘TEXAS’; C.select e.ename,a.post_code from emp e right outer join addr a on e.empno = a.empno where a.state = ‘TEXAS’; D.select e.ename,a.post_code from emp e right outer join addr a where e.empno = a.empno(+) and a.state = ‘TEXAS’; 对数据库运行下列哪个group by查询时会从Oracle产生错误? 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,sum(sal) from emp; D.select deptno,sum(sal),deptno; 检查下列SQL的输出 SQL> select a.deptno,a.job,b.loc,sum(a.sal) 2 from dmp a,dept b 3 where a.deptno = b.depton 4 group by a.deptno,b.loc 5 order by sum(a.sal); 这个查询按哪个列的顺序返回输出? A.A.DEPTNO B.A.JOB C.B.LOC D.SUM(A.SAL) 用下列代码块回答问题: SQL> select deptno,avg(sal) 2 from emp 3 group by deptno,job 4 having avg(sal)> 5 ( select sal 6 from emp 7 where ename = ‘MARTIN’ ); 上述语句使用下面哪种子查询? A.单行子查询 B.多行子查询 C.from子句子查询 D.多列子查询 查询语句返回的结果是单行就是单行子查询 查询语句返回的是多行就是多行子查询 Oracle中要生成数据库表,下列哪个选项是无效表生成的语句? A.create table cats(c_name varchar2(10),c_weight number,c_owner varchar2(10)); B.create table my_cats as select * from cats where owner = ‘ME’; C.create global temporary table temp_cats(c_name varchar2(10),c_owner varchar2(10)); D.create table 51cats as select c_name,c_weight from cats where c_weight > 5; JOB表有三个列JOB_NAME、JOB_DESC和JOB_WAGE。用下列命令在JOB_DESC表中插入新行: SQL> insert into job(job_name,job_desc) 2 values (‘LUCKEY’,‘MAKES COFFEE’); 之后查询这个表时得到的结果: SQL> select * from job where job_name = ‘LUCKEY’; JOB_NAME JOB_DESC JOB_WAGE LUCKEY MAKES COFFEE 35 数据是如何填信JOB_WAGE表的? A.JOB表中的LUCKEY行已经存在,JOB_WAGE设置为35。 B.生成表时JOB_WAGE列定义的default子句指定插入行时的值。 C.insert语句的values子句包含隐藏值,在插入行时加入。 D.惟一理由是对JOB表发出的后一个update语句增加了JOB_WAGE值 二、问答题(20分)
答:常见事物语句:commit,rollback,savepoint 举例:① DML A ……; ② COMMIT; ③ DML B……; ④ ROLLBACK; ⑤ DML C; ⑥ SAVEPOINT sp; ⑦ DML D……; ⑧ ROLLBACK TO sp; 分析:第二行提交语句执行过后,第四行的rollback语句回滚只能回滚到第二行,说明第三行的DML语句对数据库操作失效;第六行的设置保存点标记过以后,第八行的回滚就能回滚到sp保存点。
答:select to_char(sysdate,’yyyy-mm-dd hh24:mi:ss’) from dual;
答:两者都删除了表中数据,区别在于,delete语句只删除了数据,没有释放表的存储空间,而truncate语句既删除了表数据,也自动释放了表的存储空间,效率更高。
答:DDL:Date Definition Language(数据定义语言),包括alter、rename、create、drop…… DML:Date Manipulation Language(数据操作语言)
答:grant……to…… 三、有员工表emp(eno,salary,dno),其中各字段的含义依次为职工号、姓名、工资和所在部门号;有部门表dept(dno,dname),其中各字段的含义依次为部门号、部门名称。(10分) 1) 请用SQL语句将”销售部”的那些工资数额低于3000元的职工的工资上调10%. update emp set salary=salary*1.1 where salary<3000 and dno=( select dno from dept where dname=’ 销售部’); 四、有下列一张数据表:(10分) 姓名 课程 成绩 张三 数学 88 李四 语文 80 张三 英语 51 王五 英语 62 李四 数学 92 王五 语文 78 张三 语文 56 王五 数学 42 李四 英语 73 …… …… …… 1)写一个通用的查询语句,找出所有课程都及格的学生姓名。 select sname from table_name group by sname having min(grade)>=60; (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |