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 語句中使用數字表達式執行基本的算術運算。

廣告
© . All rights reserved.