環境準備
- 啟動 Oracle 服務 (
services.msc 或 lsnrctl start)。
sqlplus scott/your_password 連接示範用戶。
常用會話控制
SPOOL c:\demo.lst -- 記錄輸出
SPOOL OFF -- 停止記錄
HOST CLS -- 清屏 (Windows)
SET LINESIZE 150 -- 行寬
SET PAGESIZE 30 -- 分頁行數
COL ename FORMAT A10 -- 列格式
核心查詢演示 (SCOTT.EMP/DEPT)
1. 基礎查詢
SELECT * FROM tab; -- 當前用戶表清單
DESC emp; -- 表結構
SELECT empno, ename, sal FROM emp;
2. 列別名與運算
SELECT empno "員工號", ename 姓名, sal 月薪, sal*12 年薪 FROM emp;
-- 含空格別名需雙引號,AS 可省略
3. 空值處理 (NVL)
SELECT ename, sal, comm, sal*12 + NVL(comm,0) 年收入 FROM emp;
-- NVL(comm,0) 將 NULL 轉 0 參與運算
4. 字符串拼接與 DUAL 偽表
SELECT 'Hello' || ' World' FROM dual; -- 推薦用 ||
SELECT CONCAT('Hello', ' World') FROM dual;
SELECT SYSDATE FROM dual; -- 取系統時間
5. 去重
SELECT DISTINCT deptno FROM emp;
SELECT DISTINCT deptno, job FROM emp; -- 組合去重
6. 錯誤修正技巧
C /old/new:修改緩衝區上一行 (C /form/from)。
ED:調用外部編輯器修改完整語句。
7. 腳本保存與執行
SAVE c:\demo.sql -- 保存緩衝區
@ c:\demo.sql -- 執行腳本
SQL 與 SQL*Plus 區別
| 特性 | SQL | SQL*Plus |
| 本質 | ANSI 標準查詢語言 | Oracle 專屬交互環境 |
| 關鍵字縮寫 | 不可 | 可 (SEL, DESC) |
| 改變數據 | DML 可改 | 命令不直接改數據 |
重點筆記
- 字符/日期字面量必須單引號,大小寫敏感。
- 默認日期格式
DD-MON-RR,可 ALTER SESSION SET NLS_DATE_FORMAT='YYYY-MM-DD' 臨時修改。
NULL != NULL,判斷空值必須用 IS NULL / IS NOT NULL。
COMMIT 前 DML 可 ROLLBACK。