跳轉到內容

Oracle 資料庫/SELECT 語句

來自 Wikibooks,開放世界中的開放書籍

列出 SQL SELECT 語句的功能

[編輯 | 編輯原始碼]

SELECT 語句從資料庫中檢索資料。使用 SELECT 語句,您可以使用以下功能

  • 投影:選擇查詢返回的表中的列。
  • 選擇:使用某些條件來限制結果,選擇查詢返回的表中的行。
  • 連線:透過指定它們之間的連結,將儲存在不同表中的資料組合在一起。

執行基本 SELECT 語句

[編輯 | 編輯原始碼]
    SELECT *|{[DISTINCT] column|expression [[AS] alias],...}
    FROM    table;
  1. SQL 語句不區分大小寫。
  2. SQL 語句可以輸入在一行或多行上。
  3. SELECT、FROM 等關鍵字不能縮寫或拆分到多行。
  4. 在 SQL Developer 中,SQL 語句可以選擇性地用分號 (;) 終止。當您執行多個 SQL 語句時,分號是必需的。
  5. 在 SQL*Plus 中,您需要在每個 SQL 語句的末尾用分號 (;) 結尾。
  • 選擇所有列
    SELECT *
    FROM   hr.employees;
  • 選擇特定列
    SELECT employee_id, last_name, hire_date
    FROM   hr.employees;
  • 排除重複行
    SELECT DISTINCT last_name
    FROM   hr.employees;
  • 使用算術運算子
    • 運算子優先順序與普通數學相同,(即。/ * + -)
    • 包含空值的算術表示式計算結果為空
    SELECT last_name, salary, (salary+100-20)*105/100
    FROM   hr.employees;
  • 使用列標題預設值
    • SQL Developer
      • 預設標題顯示:大寫
      • 預設標題對齊方式:左對齊
    • SQL*Plus
      • 預設標題顯示:大寫
      • 字元和日期列標題:左對齊
      • 數字列標題:右對齊
  • 使用列別名
    • 重新命名列標題
    • 列名和別名之間的 AS 關鍵字是可選的
    • 如果包含空格、特殊字元或區分大小寫,則需要雙引號
    SELECT last_name AS name, commission_pct comm, salary*12 "Annual Salary"
    FROM   hr.employees;
  • 文字字元字串
    • 日期和字元文字值必須用單引號括起來
    • 每個字元字串都會為返回的每一行輸出一次
    SELECT last_name || ' annually earns ' || salary*12
    FROM   hr.employees;
  • 轉義單引號字元,使用兩個單引號
    SELECT last_name || '''s employee no is ' || employee_id
    FROM   hr.employees;
  • 轉義單引號字元,使用備用引號 (q) 運算子
    SELECT last_name || q'<'s employee no is >' || employee_id
    FROM   hr.employees;
  • 瞭解 DESCRIBE 命令以顯示錶結構
    DESC[RIBE] table

描述 SQL 中可用的各種型別轉換函式

[編輯 | 編輯原始碼]

隱式資料型別轉換

當 Oracle 嘗試將與函式定義的引數不匹配的值轉換為所需資料型別時,會發生隱式轉換。

顯式資料型別轉換 顯式轉換髮生在呼叫 TO_CHAR 等函式以更改值的​​資料型別時。

使用 TO_CHAR、TO_NUMBER 和 TO_DATE 轉換函式

[編輯 | 編輯原始碼]
  • 巢狀多個函式
  • 將 NVL、NULLIF 和 COALESCE 函式應用於資料

在 SELECT 語句中應用條件表示式

[編輯 | 編輯原始碼]
  • 在 SELECT 語句中使用條件 IF THEN ELSE 邏輯


描述 SQL 中可用的各種型別的函式

[編輯 | 編輯原始碼]
  • 描述單行函式和多行函式之間的區別

單行函式每行返回一個結果。

單行函式

 Manipulate data items
 Accept arguments and return one value
 Act on each row that is returned
 Return one result per row
 May modify the data type
 Can be nested
 Accept arguments that can be a column or an expression

字元函式

 Case manipulation functions
   LOWER
   UPPER
   INITCAP

在 SELECT 語句中使用字元、數字和日期函式

[編輯 | 編輯原始碼]
  • 使用 SELECT 和 WHERE 子句中的字元函式操作字串
  • 使用 ROUND、TRUNC 和 MOD 函式運算元字
  • 使用日期資料執行算術運算
  • 使用日期函式操作日期


識別可用的分組函式

[編輯 | 編輯原始碼]

描述分組函式的使用

[編輯 | 編輯原始碼]

使用 GROUP BY 子句對資料進行分組

[編輯 | 編輯原始碼]

使用 HAVING 子句包含或排除分組行

[編輯 | 編輯原始碼]

編寫 SELECT 語句以使用等值連線和非等值連線訪問多個表中的資料

[編輯 | 編輯原始碼]

使用自連線將表連線到自身

[編輯 | 編輯原始碼]

使用外連線檢視通常不符合連線條件的資料

[編輯 | 編輯原始碼]

生成來自兩個或多個表的全部行的笛卡爾積

[編輯 | 編輯原始碼]
華夏公益教科書