從零開始學 Oracle 練習題答案(9-10)

cj96248發表於2018-03-18

前言: 在閱讀《從零開始學 Oracle 》的時候,發現課後習題可以幫助自己回憶這一章節的內容。但是,沒能找到題目的答案,於是自己總結了一份,這裡是第9章、第10章。

第九章 操縱資料

一、填空題

  1. DML 的中文全稱是 資料操縱語言,英文全稱是 Data Manipulation Language .
  2. 在使用INSERT語句時,如果要插入預設值,可以使用 DEFAULT 關鍵字,如果要插入空值,可以使用 NULL 關鍵字。
  3. 在Oracle 10g 以後的版本中,使用可以使用RETURNING 子句來返回所有的更新結果值。
  4. MERGE語句用來實現對資料的合併,它實際上是一種整合了UPDATE和INSERT的特殊語句。

二、選擇題

  1. 下面的對DML語句的描述中錯誤的是:
    A. 所有的DML語句通常只能操作一個表,INSERT和MERGE可以操作多個表
    B. 如果表中的欄位有NOT NULL約束,在INSERT操作時需要為列指定列值
    C. 在執行了DML語句後,必須顯示地使用COMMIT和ROLLBACK語句進行回滾
    D. Oracle會在每一條DML語句後顯示地進行事務的提交

    【D】Oracle的事務只有使用COMMIT語句顯示地提交,才會將使用者所做的更改儲存到資料庫

  2. 如果要清空一個表中的資料,並且不進行任何日誌記錄,需要使用如下哪個語句?
    A. MERGE
    B. UPDATE
    C. DELETE
    D. TRUNCATE

    【D】TRUNCATE語句一次性刪除所有的表資料,沒有WHERE條件,不會產生回退日誌。

三、問答題

  1. 在使用DELETE語句刪除記錄時,必須要注意的事項有哪些?

    DELETE語句只會刪除整條記錄,而不能對記錄的某個欄位進行刪除
    刪除一個表可能導致與其他表的引用完整性出現問題,因此必須要注意刪除的順序
    DELETE語句只是刪除表中的資料,並不會對整個表進行移除工作,移除表使用DROP TABLE語句
    DELETE語句在刪除資料時會產生回退日誌資訊,因此可以使用事務進行回滾恢復。

  2. 簡述DELETE與TRUNCATE的區別。

    TRUNCATE語句一次性刪除所有的表資料,它沒有WHERE條件,也不會產生回退日誌,因此刪除速度要比DELETE語句快,但是TRUNCATE刪除的資料不能恢復,因此使用該語句時應該慎重。

第十章 Oracle內建函式

一、填空題

  1. 在Oracle中,函式按照其功能可以分為兩大類,分別是單行函式多行函式
  2. 要將英文字母字元轉換為小寫,可以使用LOWER函式。
  3. 要返回字串的子串,可以使用SUBSTR函式。
  4. 在Oracle中要向另一個日期新增月份,可以使用ADD_MONTHS函式。

二、選擇題

  1. 下面哪個函式不屬於轉換函式?
    A. TO_CHAR
    B. TO_DATE
    C. TRUNC
    D. CONVERT

    【C】TRUNC屬於數字型函式,一般使用者擷取特定的小數位

  2. 下面哪個函式的作用類似於CASE語句?
    A. UNLLIF
    B. COALESCE
    C. DECODE
    D. NVL

    【C】DECODE根據特定的條件,實現IF-THEN-ELSE條件判斷的返回值,類似於CASE語句

三、問答題

  1. 簡述NAL和NAL2的區別。

    NVL和NVL2函式都用來檢測一個表示式是否為NULL,如果一個表示式為NULL,可以返回一個非NULL的替代值。NVL函式和NVL2函式功能類似,但是NVL2比NVL的功能更加靈活。

  2. 簡述COALESCE函式的作用。

    COALESCE是相對於NVL和NVL2來說最靈活的一個函式,這個函式接受一個引數值列表,COALESCE將返回列表中的第一個非NULL的值。

相關文章