一、實例與基礎查詢
-- 查看實例名
SHOW PARAMETER instance_name;
二、表結構 DDL
| 操作 | 語法 |
| 建表 | CREATE TABLE t (c1 TYPE1, c2 TYPE2...) TABLESPACE ts; |
| 新增欄位 | ALTER TABLE t ADD (c3 TYPE3); |
| 修改欄位 | ALTER TABLE t MODIFY (c1 NEW_TYPE); |
| 刪除欄位 | ALTER TABLE t DROP COLUMN c1; |
| 重命名欄位 | ALTER TABLE t RENAME COLUMN old TO new; |
| 移動表空間 | ALTER TABLE t MOVE TABLESPACE new_ts; |
| 刪除表 | DROP TABLE t [CASCADE CONSTRAINTS]; |
三、字典反查:由欄位名找表
SELECT table_name FROM user_tab_cols
WHERE LOWER(column_name) = 'student_id';
四、DML 核心操作
插入
INSERT INTO t (c1, c2, c3) VALUES (v1, v2, v3);
更新 (務必加 WHERE)
-- 單欄
UPDATE t SET c1 = new_val WHERE condition;
-- 多欄
UPDATE t SET c1 = v1, c2 = v2 WHERE condition;
刪除
DELETE FROM t WHERE condition;
-- 全表清空 (DDL, 不可回滾)
TRUNCATE TABLE t;
五、字符型與處理
| 類型 | 特性 | 最大長度 |
| CHAR(n) | 固定長,空格填充 | 2000 (表) / 32767 (PL/SQL) |
| VARCHAR(n) | 變長,不填充 | 4000 / 32767 |
| VARCHAR2(n) | 變長,Oracle 專用,向後相容 | 4000 / 32767 |
常用字符函數
LOWER/UPPER/INITCAP -- 大小寫
LENGTH(str) -- 長度
SUBSTR(str, pos, len) -- 截取 (支援負數 pos 反向)
LTRIM/RTRIM/TRIM -- 去除空格
CONCAT(s1, s2) / s1 || s2 -- 串聯
REVERSE(str) -- 反轉 (12c+)
CHR(n) -- ASCII 轉字符
TO_CHAR(n, fmt) -- 數值/日期格式化
六、數值型與處理
ROUND(n, p) -- 四捨五入
TRUNC(n, p) -- 截斷
MOD(m, n) -- 餘數
TO_CHAR(n, fmt) -- 格式化 (9, 0, $, L, ,, ., FM)
七、日期型與處理
SYSDATE -- 當前日期時間
ADD_MONTHS(d, n) -- 加減月
LAST_DAY(d) -- 月底日期
TO_CHAR(d, fmt) -- 日期格式化
常用格式代碼:
YYYY, MM, DD, HH24, MI, SS, MON, MONTH, DAY, DY, WW, Q, DDD
八、聚合函數
AVG/SUM -- 僅數值型
COUNT(col) -- 非 NULL 計數
COUNT(*) -- 全行計數 (含 NULL)
COUNT(1) -- 等同 COUNT(*), 效能相同
九、運算與特殊判式
數學運算
- +, -, *, /
- 操作數自動隱式轉數值型
- 任一操作數為 NULL → 結果為 NULL
特殊判式
| 判式 | 語法 | 說明 |
| BETWEEN | col BETWEEN a AND b | 閉區間 [a, b] |
| IN | col IN (v1, v2...) | 集合成員 |
| LIKE | col LIKE '%abc_' | % 任意長度, _ 單字符 |
| IS NULL | col IS NULL | 空值判斷 |
| EXISTS | EXISTS (subquery) | 存在性 (半連接) |
| ALL/SOME/ANY | col > ALL (subquery) | 數量判斷 |