SQL - SQL SELECT 语句练习题



1. 识别 SELECT 语句的功能。

  1. 投影
  2. 选择
  3. 数据控制
  4. 事务

答案:A、B。SELECT 语句可用于选择、投影和连接。

2. 确定给定查询中演示的 SELECT 语句的功能。

SELECT e.ename, d.dname
FROM   emp e, dept d
WHERE  e.deptno = d.deptno
AND    e.sal > 1000;
  1. 选择
  2. 过滤
  3. 连接
  4. 投影

答案:A、C、D。投影是指仅在查询中包含所需的列,而选择是指仅选择所需的数据。连接是指通过连接列将两个表组合在一起。

3. 以下哪个子句用于在 SELECT 语句中抑制重复项?

  1. INTERSECT
  2. DUPLICATE
  3. DISTINCT
  4. UNIQUE

答案:C、D。可以使用 SELECT 语句中的 DISTINCT 或 UNIQUE 来限制重复数据。

4. 选择正确指定编写 SQL 语句规则的语句

  1. SQL 语句区分大小写
  2. 关键字可以缩写以构建标准
  3. SQL 语句不区分大小写
  4. 子句必须放在一起

答案:C。SQL 语句不区分大小写。

5. 确定以下查询的输出 -

SELECT '5+7' 
FROM dual;
  1. 12
  2. 5+7
  3. 5
  4. 7

答案:B。Oracle 将双引号内的值视为字符串表达式。

6. 编写一个查询,以显示 EMP 表中的员工详细信息(姓名、部门、工资和职位)。

  1. SELECT ename, deptno, sal, job FROM emp;
  2. SELECT * FROM emp;
  3. SELECT DISTINCT ename, deptno, sal, job FROM emp;
  4. SELECT ename, deptno, sal FROM emp;

答案 A。从每个表中选择所需内容,并用逗号隔开。

7. 以下哪个查询显示员工姓名和增加 1000 后的新工资?

  1. SELECT ename, sal FROM emp;
  2. SELECT ename, sal=sal+1000 FROM emp;
  3. SELECT ename, sal+1000 FROM emp;
  4. SELECT ename, 1000 FROM emp;

答案:C。可以使用 SELECT 语句中的列进行基本的算术运算。

8. 确定以下查询的输出

SELECT 36/2-5*10 FROM dual;
  1. 130
  2. -32
  3. -120
  4. 175

答案:B。乘法和除法在加法和减法之前执行。

9. 确定以下查询的输出

SELECT (100-25)/15*(20-3) FROM dual;
  1. 0.294
  2. -85
  3. 63.67
  4. 85

答案:D。括号内的表达式在表达式中的除法和乘法之前执行。

10. 选择正确定义 NULL 值的语句。

  1. NULL 是一个具有零字节的特殊值
  2. NULL 是没有值或未知值
  3. NULL 由空格表示
  4. NULL 不等于零

答案:B、D。NULL 是没有值,但既不等于零也不等于空格字符。

11. 确定以下查询的输出

SELECT sal + NULL 
FROM emp
WHERE empno = 7369;
  1. sal + NULL
  2. NULL
  3. 0
  4. 1250

答案:B。任何与 NULL 的算术运算都会导致 NULL。

12. 以下哪些语句正确定义了列别名?

  1. 列别名重命名列标题
  2. 列别名是表中的备用列
  3. 列别名可以在表定义期间指定
  4. 列别名紧跟 SELECT 语句中的列或表达式

答案:A、D。列别名可用于命名 SELECT 语句中的表达式。

13. 为以下 SQL 查询中包含 salary 的表达式指定列别名 NEWSAL

SELECT ename, job, sal + 100 FROM emp;
  1. (sal + 100) AS NEWSAL
  2. (sal + 100) NEWSAL
  3. (sal + 100) IS NEWSAL
  4. sal + 100 IS NEWSAL

答案:A、B。使用 'AS' 来表示列表达式的新的别名。

14. 为以下 SQL 查询中包含 salary 的表达式指定列别名“New Salary”

SELECT ename, job, sal + 100 FROM emp;
  1. (sal + 100) AS New Salary
  2. (sal + 100) "New Salary"
  3. (sal + 100) IS New Salary
  4. sal + 100 as "New Salary"

答案:B、D。带有空格和特殊字符的列别名必须用双引号括起来。

15. 使用哪个命令显示表的结构?

  1. LIST
  2. SHOW
  3. DESCRIBE
  4. STRUCTURE

答案:C。DESCRIBE 用于显示表结构。

16. 预测在 SQL*Plus 中执行以下语句时的输出?

DESC emp
  1. 引发错误“SP2-0042: unknown command "desc emp" - rest of line ignored.”
  2. 列出 EMP 表的列
  3. 列出 EMP 表的列、其数据类型和空值
  4. 列出 EMP 表的列及其数据类型

答案:C。DESCRIBE 用于显示表结构以及表列、其数据类型和空值

17. 以下关于 DESCRIBE 命令的哪些语句是正确的?

  1. 它只能在 SQL*Plus 中使用
  2. 它可以在 SQL*Plus 和 SQL Developer 中使用
  3. 它不适用于对象表
  4. 它不适用于 SYS 拥有的表

答案:B。

18. 以下哪些字母数字字符用于表示 SQL 中的连接运算符?

  1. +
  2. ||
  3. -
  4. ::

答案:B。在 SQL 中,连接运算符由两个垂直线 (||) 表示。

19. 以下关于 SQL 中连接运算符用法的哪些语句是正确的?

  1. 它在表中创建一个虚拟列
  2. 它生成一个字符表达式,作为一个或多个字符串连接的结果
  3. 它在两个字符列之间创建链接
  4. 它可用于将日期表达式与其他列连接起来

答案:B、D。连接运算符将两个值作为表达式连接起来。

20. 预测以下查询的输出

SELECT ename || NULL
FROM emp
WHERE empno = 7369
  1. SMITH
  2. SMITH NULL
  3. SMITHNULL
  4. ORA-00904: "NULL": invalid identifier

答案:A。与 NULL 的连接导致相同的值。

21. 预测以下查询的输出

SELECT 50 || 0001
FROM dual
  1. 500001
  2. 51
  3. 501
  4. 5001

答案:C。Oracle 会忽略表达式右操作数中的前导零。

22. 您执行以下查询

SELECT e.ename||' departments's name is:'|| d.dname
FROM emp e, dept d
where e.deptno=d.deptno;

并获得异常 - ORA-01756: quoted string not properly terminated。以下哪些解决方案可以永久解决此问题?

  1. 对文字字符字符串使用双引号
  2. 使用 [q] 运算符引用文字字符字符串并选择所需的定界符
  3. 从文字字符字符串中删除单引号(撇号)
  4. 使用其他定界符绕过文字字符串中的单引号撇号

答案:B。[q] 运算符用于用引号引用字符文字。

23. 以下哪个 SELECT 语句显示了 [q] 运算符的正确用法?

  1. SELECT e.ename || q'[department's name is]'|| d.dname
       FROM emp e, dept d
       WHERE e.deptno = d.deptno;
  2. SELECT e.ename || q['department's name is']|| d.dname
       FROM emp e, dept d
       WHERE e.deptno = d.deptno;
  3. SELECT e.ename || q[department's name is]|| d.dname
       FROM emp e, dept d
       WHERE e.deptno = d.deptno;
  4. SELECT e.ename || q'(department's name is)'|| d.dname
       FROM emp e, dept d
       WHERE e.deptno = d.deptno;

答案:A

24. 以下哪个 SELECT 语句用于选择 EMP 表的所有列?

  1. SELECT ALL FROM emp
  2. SELECT # FROM emp
  3. SELECT * FROM emp
  4. SELECT empno,ename,deptno,sal,job,mgr,hiredate FROM emp

答案:C。字符 '*' 用于选择表的所有列。

25. 以下哪个 SQL 查询将显示员工姓名、部门和年薪?

  1. SELECT ename, deptno, sal FROM emp;
  2. SELECT ename, deptno, sal + comm FROM emp;
  3. SELECT ename, deptno, (sal * 12) Annual_Sal FROM emp;
  4. 无法查询年薪,因为表中不存在该列

答案:C。在 SELECT 语句中使用数字表达式执行基本的算术运算。

广告