首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> Oracle 資料庫 >> Oracle 資料庫基礎

Oracle 入門基礎:SQL 分類、SELECT 語法、運算符優先級、別名、連接符、NULL 處理全攻略

     編輯:Oracle 資料庫基礎

SQL 三大語言類別

  • DML (Data Manipulation Language):SELECT, INSERT, UPDATE, DELETE, MERGE — 操作數據。
  • DDL (Data Definition Language):CREATE, ALTER, DROP, TRUNCATE, RENAME — 定義結構。
  • DCL (Data Control Language):GRANT, REVOKE — 控制權限。

SELECT 基礎語法

SELECT [DISTINCT] { *, column [alias], ... }
FROM table;

書寫規範

  • 關鍵字大寫,列/表名小寫,縮進對齊,子句換行。
  • SQL*Plus 緩沖區一次僅存一條語句,以 ; 或 / 結束執行。

列選擇與別名

  • SELECT empno, ename AS name FROM emp; — 空格分隔別名。
  • 別名含空格/特殊符號/區分大小寫 → 雙引號:SELECT ename "Emp Name" FROM emp;。
  • 別名可用於 SELECT、ORDER BY,**不可用於 WHERE/GROUP BY/HAVING** (邏輯執行順序限制)。

運算符優先級

  1. 算術:* / > + - (同級左結合)。
  2. 比較:= != > < >= <=。
  3. 邏輯:NOT > AND > OR。
  4. 括號最高,內層優先。

連接符 ||

SELECT ename || ' works in ' || dname FROM emp, dept WHERE emp.deptno = dept.deptno;

將多列/常量合併為單一字符表達式輸出。

字面值

  • 字符/日期:單引號 'SMITH'、'2024-01-01'。
  • 數字:直接書寫 123、3.14。
  • 每行輸出均顯示。

DISTINCT 去重

SELECT DISTINCT deptno FROM emp;  -- 僅返回 10,20,30

NULL 核心規則

  • 含義:未知、不適用、未賦值。**不等於 0、不等於空串、不等於空格**。
  • 任何運算遇 NULL 結果為 NULL。
  • 比較必須用 IS NULL / IS NOT NULL。
  • 聚合函數忽略 NULL (除 COUNT(*))。
  • 排序默認 NULL 最大 (最後)。
  • 主鍵/非空約束列不可為 NULL。

實戰練習

-- 1. 查詢所有員工姓名、薪資、年薪 (薪資*12+NVL(comm,0))
SELECT ename, sal, sal*12+NVL(comm,0) "Annual Sal" FROM emp;

-- 2. 部門 20 且薪資 > 2000 的員工
SELECT * FROM emp WHERE deptno = 20 AND sal > 2000;

-- 3. 姓名含 'A' 不區分大小寫
SELECT * FROM emp WHERE UPPER(ename) LIKE '%A%';
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved