习题6
一、选择题
1. 下面哪一个函数表示把字符串x中的所有英文单词转换为首字母大写的形式?( )
A. initcap()函数 B. concat()函数
C. upper()函数 D. lower()函数
2. SQL查询语句:
SELECT name,salary FROM emp
WHERE salary BETWEEN 1000 and 2000
对于查询结果说法正确的是
A. 查询返回工资大于1000而小于2000的员工信息
B. 查询返回工资大于或等于1000而小于2000的员工信息
C. 查询返回工资大于或等于1000而小于或等于2000的员工信息
D. 查询返回工资大于1000而小于或等于2000的员工信息
3.要选择某一列的平均值,可使用函数____
A. COUNT B. SUM C. MIN D. AVG
4. 下面是有关ceil(x)函数地描述,请问哪些描述是正确的?( )
A. 可以得到等于x的最大整数。 B. 可以得到小于或等于x的最大整数。
C. 可以得到大于或等于x的最大整数。 D. 可以得到小于x的最大整数。
5.下面哪个函数用来限制行输出?
A. SELECT B. FROM
C. WHERE D. GROUP BY
6.在SQL*PLUS工具里执行下列语句:
SELECT power(9,3) FROM DUAL;
得到的查询结果是:
A. 729 B. 3 C. 27 D. 以上全不对
7.查询语句:SELECT floor(13.57) FROM DUAL
对于返回结果,正确的是___
A. 13.27 B. 13 C. 14 D. 13.6
8. 下列哪个子句在SELECT语句中用于排序结果集?( )
A. HAVING子句 B. WHERE子句
C. FROM子句 D. ORDER BY子句
9. 为了去除结果集中重复的行,可在SELECT语句使用下列哪个关键字?( )
A. ALL B. DISTINCT
C. SPOOL D. HAVING
10. GROUP BY子句作用是什么?( )
A.查询结果的分组条件。
B.组的筛选条件。
C.限定返回的行的判断条件。
D.对结果集进行排序。
11. HAVING子句的作用是什么?( )
A.查询结果的分组条件
B.组的筛选条件
C.限定返回的行的判断条件
D.对结果集进行排序
12. 查询一个表的总记录数,可以采用() 统计函数。
A.AVG(*) B.SUM(*)
C. COUNT(*) D.MAX(*)
13.下列哪一个是交集运算符?
A.INTERSECT B.UNION
C.SET D.MINUS
14.下列哪一个是并操作运算符?
A. INTERSECT B. UNION
C. UNION ALL D. MINUS
15.下面是有关子查询的描述,请问哪些描述是正确的?( )
A. 子查询必需使用括号扩起来。
B. 子查询没有必要使用括号扩起来。
C. 子查询不允许嵌套。
D. 子查询允许嵌套。
二、简答题
1. 子查询应该遵循哪些基本原则?
答:(1)一个子查询必须放在圆括号中。
(2)将子查询放在比较条件的右边以增加可读性。子查询不包含 ORDER BY 子句。对一个 SELECT 语句只能用一个 ORDER BY 子句,并且如果指定了它就必须放在主 SELECT 语句的最后。ORDER BY 子句可以使用,并且在进行 Top-N 分析时是必须的。
(3)在子查询中可以使用两种比较条件:单行运算符和多行运算符。
子查询的类型
单行子查询:从内 SELECT 语句只返回一行的查询。
多行子查询:从内 SELECT 语句返回多行的查询。
单行子查询:单行子查询是从内查询返回一行的查询。在该子查询类型中用一个单行操作符。
(4)查询的方法:
①联合:合并多个数据集中的行。
②子查询:将一个查询嵌套在另一个查询中。
③连接:合并多个数据表中的列。
2. 比较子查询和连接查询。
答:(1)查询效率,数据量少的时候两者的效率基本一样,数据量大的时候使用连接查询的效率高于子查询。
(2)不推荐使用子查询,因为子查询不利于 SQL 语句的优化。
3、查询全部姓王的学生的信息。
答:select *
from 学生表
where 姓名 like '王%'
4、统计学生数学成绩在80至90分之间的人数。
答:select count(0) from table_name where 分数>=80 and 分数<=90
5、计算全班同学的考试平均分。
6、求各科考试成绩的总分和平均分。
7、按考生总分高低排序输出其基本信息。