搜档网
当前位置:搜档网 › Oracle自测题-第3章_SQL语言基础与查询语句

Oracle自测题-第3章_SQL语言基础与查询语句

Oracle自测题-第3章_SQL语言基础与查询语句
Oracle自测题-第3章_SQL语言基础与查询语句

第3章SQL语言基础与查询语句

选择题

1、执行以下语句出错的行是()

SELECT deptno,dname,ename,sal

FROM emp,dept

WHERE emp.deptno=dept.deptno

AND sal>1000;

A. 第一行

B. 第二行

C. 第三行

D. 第四行

2、如果在where子句中有两个条件要同时满足,应该用哪个逻辑符来连接()A.OR

B.NOT

C.AND

D.NONE

3、外连接的条件可以放在以下的那一个子句中()

A.FROM

B. WEHRE

C. SELECT

D. HAVING

4、在从两个表中查询数据时,连接条件要放在哪个子句中()

A. FROM

B. WHERE

C. SELECT

D. HAVING

5、用以下哪个子句来限制分组统计结果信息的显示()

A. FROM

B. WEHRE

C. SELECT

D. HAVING

6、以下需求中哪个需要用分组函数来实现?()

A. 把ORDER表中的定单时间显示成'DD MON YYYY' 格式

B. 把字符串'JANUARY 28, 2000' 转换成日期格式

C. 显示PRODUCT 表中的COST 列值总量

D. 把PRODUCT表中的DESCRIPTION列用小写形式显示

7、用以下的SQL语句查询数据库:

SELECT id_number "Part Number", SUM(price * quantity) TOTAL, description FROM inventory

WHERE price > 5.00

ORDER BY "Part Number", 3;

哪一句会产生错误? ()

A. FROM INVENTORY

B. WHERE PRICE > 5.00

C. ORDER BY "PART NUMBER", 3;

D. SELECT id_number "Part Number", SUM(price * quantity) TOTAL, description

8、以下操作符中哪个可以用做单行简单查询的操作符()

A. =

B. IN

C. LIKE

D. BETWEEN

9、以下那些命令可以暗含提交操作?()

A. GRANT

B. UPDATE

C. SELECT

D. ROLLBACK

10、Mr. King 是公司的总裁,手下有五个经理,每个经理手下都有若干下属。以下代码的执行结果是:未选定行

SELECT employee.ename FROM emp employee

WHERE employee.empno not in (

SELECT manager.mgr FROM emp manager);

是什么原因导致如此?()

A. 所有的雇员均有领导

B. 子查询结果集中只有一条记录

C. 子查询结果集中出现一个空值

D. IN运算符不能用在多行子查询中

11、用下面的语句查询数据库:

SELECT price FROM inventory

WHERE price BETWEEN 1 AND 50 OR (price IN(25,70,95)

AND price BETWEEN 25 AND 75);

下面哪一个值将会被查询到?()。

A.30 B.51 C.75 D.95

12、下面哪一个操作返回数字值?()。

A.?01-2月-1998?+25

B.?03-10月-1997?-30

C.?07-7月-1997?+(480/24)

D.to_date(?01-1月-1998?)-to_date(?01-10月-1996?)

13、下面哪两个操作返回日期型?允许多选()。

A.to_date('01-2月-1998')+25

B.(to_date('01-1月-1998')-to_date('01-10月-1996'))/7

C.to_date('01-2月-1998')+12/24

D.to_date('01-1月-1998')-to_date('01-10月-1996')

14、查看已经建立了哪些表,下面哪些语句能够完成这个任务?(须多选)()A.desc user_tables;

B.select table_name from user_tables;

C.select table_name from user_tab_columns;

D.select * from tab;

15、如果要输出姓王的学生名单,在where子句中最好用哪一个操作符?()A.= B.IN

C.LIKE D.BETWEEN

16、如果希望进行分组统计的查询输出,可以使用哪个子句。()A.SELECT B.GROUP BY

C.HA VING D.ORDER BY

17、表SERVICE的内容如下:

MACHINE_ID TECHNICIAN_ID SERVICE_DATE

---------- --------------- -------------

600252 456123 31-六月-1997

980076 21-十月-1996

458745 456123 21-六月-1997

985625 874512 20-四月-1997

785214 879514 18-五月-1997

执行下面的语句后,哪一个的值将排在最后?()。

SELECT machine_id,service_date FROM service

ORDER BY technician_id,service_date;

A.458745 B.785214

C.600252 D.980076

18、要查询表EMP中ENAME的第2个字母为A的所有的人,请选择正确的查询语句。()

A. SELECT EMPNO,ENAME,JOB FROM EMP WHERE ENAME LIKE ?_A%?;

B. SELECT EMPNO,ENAME,JOB FROM EMP WHERE ENAME=?_A%?;

C. SELECT EMPNO,ENAME,JOB FROM EMP WHERE ENAME LIKE AS ?_A%?;

D. SELECT EMPNO,ENAME,JOB FROM EMP WHERE ENAME LIKE ??A*?;

19、SELECT DEPTNO DNO,DNAME DNA,LOC DLOC FROM DEPT A WHERE

A.DEPTNO BETWEEN 10 AND 20 AND DNAME>?B? AND DLOC …NEW YORK?; ()

请选择对上述语句有错的正确描述。

A.A.DEPTNO的字段描述方式错。

B.WHERE子句有的表达式返回值不能进行逻辑运算。

C.WHERE子句不能用别名。

D. 以上三个描述都不对。

20、列出表EMP中ENAME和HIREDA TE的所在年月的第一天()

A. SELECT ENAME,ROUND(HIREDATE,?MM?) XDATE FROM EMP

B. SELECT ENAME,TOCHAR(HIREDATE,?YYYY-MM?)||?-01? XDATE FROM EMP

C. SELECT ENAME,TOCHAR(HIREDATE,?YYYY-MM?)+?-01? XDATE FROM EMP

D. SELECT ENAME,TO_CHAR(HIREDATE,?YYYY-MM?)+?-01? XDA TE FROM EMP

21、查询表EMP中不同DEPTNO的SAL字段的分类合计值()

A. SELECT DEPTNO,TOTAL(SAL) FROM EMP GROUP BY DEPTNO

B. SELECT DEPTNO,SUM(SAL) FROM EMP GROUP BY DEPTNO

C. SELECT ENAME,TOTAL(SAL) FROM EMP GROUP BY DEPTNO

D. SELECT ENAME,SUM(SAL) FROM EMP GROUP BY DEPTNO

22、查询表EMP的任意10条记录。()

A.SELECT * FROM EMP WHERE ROWNUM<=11

B. SELECT * FROM EMP WHERE ROWNUM<11

C. SELECT * FROM EMP WHERE ROWID<=11

D. SELECT * FROM EMP WHERE ROWID<11

23、查询一个序列SEQ_HZ的新值()

A.SELECT SEQ_HZ.NEXT FROM DUAL

B. SELECT SEQ_HZ.NEWV AL FROM DAUL

C. SELECT SEQ_HZ.NEXTVAL FROM DUAL

D. SELECT SEQ_HZ.NEXTROW FROM DAUL

填空题

1.要统计各班女同学数目,命令为

select sclass, from student where ssex= 。

2.要查询超出公司平均月薪的雇员的工号、姓名及月薪,命令为

select empno,ename,sal from emp

where

3.建立一个查询,显示哪些所挣的月薪比任何一个办事员(job为CLERK)所

挣的薪水都多的员工的姓名、工种及月薪,要求查询结果按月薪值从高到低排序。

SELECT ename, job, sal FROM emp

WHERE

ORDER BY ;

4.SQL命令:SELECT ename,deptno FROM emp WHERE deptno IN(10,30) order

by ename; 的执行结果是:。

5.SQL命令:select round(11.5768,2) from dual; 的结果是。

6.SQL命令:select round(14.5678,2) from dual; 的结果是。

7.SQL命令:SELECT initcap('mr teplow.') from dual; 的结果是。

8.SQL命令:SELECT replace('mnp',?m?,?rr?) from dual; 的结果是。

9.SQL命令:SELECT substr('mnp',2,1) from dual; 的结果是。

10.SQL命令:SELECT FLOOR(11.6) from dual; 的结果是。

11.SQL命令:SELECT CEIL(11.6) from dual; 的结果是。

12.写出下列SQL语句的结果

()1) SELECT CEIL(11.6) FROM DUAL;

()2) SELECT FLOOR(17.4681) FROM DUAL;

()3) SELECT INITCAP(…dear?) FROM DUAL;

()4) SELECT REPLACE(…ABC?,?BC?,?A?) FROM DUAL;

()5) SELECT ADD_MONTHS(?03-05月-98?,2) FROM DUAL;

是非题

1.Top-N分析使用ROWNUM属性作为行号。

( )

2.多行子查询中,“>ANY”的意思是大于最小值。

( )

3.在一个序列中,要用CURRVAL获得当前值,必须先使用NEXTV AL至少产

生一个编号。

( )

4.WHERE子句限制单个的行,但HAVING子句限制组。

( )

5.COUNT函数不将列中的空值计算在内。

( )

6.一个连接至少需要两种不同的表。

( )

7.外部连接返回的信息通常比在相同的表上执行等值连接返回的信息要多。

( )

请写出下列SQL语句:

1.请查询雇员信息,要求显示雇员编号、雇员姓名及其上级领导。

2.请查询雇员信息,要求显示雇员编号、雇员姓名及工资。

3.删除职务为…CLARK?的雇员的信息。

4.删除部门编号为10的雇员的信息。

5.删除1979年12月31日之前(包括1979年12月31日)进入公司的雇员的

信息。

6.增加一个部门信息,其中部门代码为99,部门名称为…UNKNOW?,所在地

为空。

7.树结构查询:请查询雇员编号为7934的雇员以及他的所有上级领导的所有

信息。

8.树结构查询:请查询雇员编号为7566和7782的雇员以及他们的所有下级雇

员的所有信息。

9.请查询姓名中包含字母…A?,或者职务为…SALESMAN?的雇员的所有信息。

10.建立视图VW_GYXX,要求只显示工资高于2000(包含2000)的员工的所

有信息。

11.建立视图VW_GYXX,要求只包含雇员编号、雇员姓名、职务及上级领导等

信息。

12.建立视图VW_GYXX,要求只包含部门编号为10的员工的所有信息。(2分)

13.请查询人数超过3人(包含3人)的部门的部门编号和部门人数,并按部门

人数升序排列。

14.将所有工资少于2000(包括2000)的雇员的工资上浮10%。

15.将所有职务为…SALESMAN?的雇员的工资下降10%。

16.将所有工资大于2000(包括2000)的雇员的工资下降10%。

17.请分别使用嵌套查询和多表联合查询实现:查询所有…ACCOUNTING?部门的

雇员信息,要求显示雇员姓名、雇员编码及工资。

18.请分别使用嵌套查询和多表联合查询实现:查询所有在…NEW YORK?工作的

雇员信息,要求显示雇员姓名、雇员编码和工资。

19.请分别使用嵌套查询和多表联合查询实现:查询所有…SALES?部门的雇员信

息,要求显示雇员姓名、雇员编码及工资。

20.在EMP表中对字段…JOB?和…HIREDATE?建立复合索引。其中索引名为

INDEX_EMP_ JOB _ HIREDATE。

21.在DEPT表中对字段…DNAME?和…LOC?建立复合索引。其中索引名为

INDEX_DEPT_DNAME_LOC。

22.在EMP表中对字段…ENAME?和…DEPTNO?建立复合索引。其中索引名为

INDEX_EMP_ENAME_DEPTNO。

23.请查询姓名中包含字母…A?,并且职务为…SALESMAN?的雇员的所有信息。

24.请查询姓名中以字母…A?开头,并且在1981年12月31日之前(包括1981

年12月31日)进入公司的雇员的所有信息。

25.请查询人数超过3人(包含3人)的部门的部门编号和部门人数,并按部门

人数升序排列。

26.查询每一门课的课号和其间接先修课(即先修课的先修课)的课号。

27.请写出一个SELECT语句,列出所有部门的名字(DEP T.DNAME)及其雇

员的名字(EMP.ENAME),用多表连接完成

28.SELECT A.DNAME,B.ENAME FROM DEPT A,EMP B

29.WHERE A.DEPTNO=B.DEPTNO GROUP BY A.DEPTNO

30.请写出一个SELECT语句,列出在DEPT.LOC为?NEW YORK?的所有雇员的

名字EMP.ENAME,用子查询完成

31.请写出一个SELECT语句,有表EMPA与表EMP结构相同,EMPNO是两

表的唯一性索引,列出表EMP中所有的记录的EMPNO、ENAME和对应表EMPA中的ENAME值(表EMPA中无该记录ENAME为NULL)。

简答题

1、以下SQL命令的执行任务是什么?

select empno,ename,sal from emp

where sal>(select avg(sal) from emp);

2、如果用等值连接来查询5张表内的信息,至少需要几个连接条件?

3、以下SQL命令的执行任务是什么?

SELECT ename FROM emp

WHERE ename LIKE ?_A%?;

还要求写出查询结果集。

4、以下SQL命令的执行任务是什么?

SQL>SELECT ename, job, sal

FROM emp

WHERE sal > all ( SELECT sal

FROM emp

WHER E job=?CLERK?)

ORDER BY sal DESC;

5、用SQL的查询语句输出所有学生的学习成绩,要求给出学号、姓名、课号(cno)和成绩(score)。(成绩表名为score)

6、根据上题的查询语句创建视图stu_score。

7、用SQL的查询语句输出所有学生的学习成绩,要求给出学号、姓名、课号(cno)、课程名称(cname)和成绩(score)。(成绩表名为score,课程表名为course)

8、请叙述出以下SQL命令的执行结果是什么?

SQL>select a.sname,https://www.sodocs.net/doc/0f15830568.html,o,b.score

from student A,score B

where a.sno=b.sno and A.sname<>'成功' and https://www.sodocs.net/doc/0f15830568.html,o in(select cno

from student A,score B

where A.sno=B.sno and A.sname='成功');

相关主题