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

Oracle 入門必學:SQL*Plus 基礎指令、資料字典與查詢實戰

     編輯:Oracle 資料庫基礎

SQL*Plus 是 Oracle 內建的命令列工具,掌握其核心指令、資料字典查詢與基本 SQL 撰寫,是 DBA 與開發者的基本功。本文整理 SQL*Plus 專屬指令、SQL 指令分類、資料字典視圖、常用查詢語法與格式化輸出技巧。

SQL*Plus 專屬指令 vs SQL 指令

類別特徵常用指令
SQL 指令以分號結尾、存入 SQL Buffer、可用 / 重跑SELECT, INSERT, UPDATE, DELETE, CREATE, ALTER, DROP, COMMIT, ROLLBACK, GRANT, REVOKE
SQL*Plus 指令不存入 Buffer、無需分號、控制格式/環境/檔案DESC, SET, SHOW, SPOOL, START/@, EDIT, COLUMN, BREAK, COMPUTE, CONNECT, EXIT

核心資料字典視圖

視圖用途範例
TAB / USER_TABLES目前使用者的表/視圖/同義詞清單SELECT * FROM tab;
COL / USER_TAB_COLUMNS欄位定義清單DESC employees 或 SELECT * FROM user_tab_columns WHERE table_name='EMPLOYEES';
USER_VIEWS視圖定義SELECT text FROM user_views WHERE view_name='EMP_VU';
USER_INDEXES索引資訊SELECT index_name, uniqueness FROM user_indexes WHERE table_name='EMPLOYEES';
USER_CONSTRAINTS限制條件SELECT constraint_name, constraint_type FROM user_constraints WHERE table_name='EMPLOYEES';

基本查詢語法速查


-- 全欄位
SELECT * FROM employees;

-- 指定欄位 + 別名
SELECT employee_id AS id, last_name AS name, salary
FROM employees;

-- 排序
SELECT * FROM departments ORDER BY department_id DESC;

-- 條件過濾
SELECT * FROM employees WHERE department_id = 10;
SELECT * FROM employees WHERE salary BETWEEN 5000 AND 10000;
SELECT * FROM employees WHERE last_name LIKE 'K%';
SELECT * FROM employees WHERE commission_pct IS NULL;
SELECT * FROM employees WHERE manager_id IN (100, 101, 102);

-- 邏輯運算子
WHERE dept_id = 10 AND salary > 5000
WHERE dept_id = 10 OR dept_id = 20
WHERE NOT (salary < 3000)

SQL*Plus 輸出格式化實戰


-- 欄位寬度、標題、對齊
COLUMN last_name HEADING 'Employee|Name' FORMAT A15
COLUMN salary JUSTIFY RIGHT FORMAT $99,999.99
COLUMN hire_date FORMAT A10 NULL 'Not Hired'

-- 分頁與行寬
SET PAGESIZE 100
SET LINESIZE 150
SET PAUSE ON   -- 每頁暫停,按 Enter 翻頁

-- 隱藏標題
SET HEADING OFF

常用 SET 參數速查

新手避坑提醒

  • COMMIT/ROLLBACK 不需分號,且不存入 Buffer。
  • DESC 是 SQL*Plus 指令,非 SQL,無法在 PL/SQL 區塊中使用。
  • 變數替代符 & 預設開啟,腳本中含 & 字元需 SET DEFINE OFF 或 SET SCAN OFF。
  • 善用 SET AUTOTRACE TRACEONLY 分析執行計畫而不輸出結果集。

熟練 SQL*Plus 操作能大幅提升日常查詢、腳本除錯與效能分析效率,建議將常用 SET 與 COLUMN 設定寫入 glogin.sql 或 login.sql 自動載入。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved
參數說明預設值
PAGESIZE每頁行數14
LINESIZE每行字元寬度80
LONGLONG/CLOB 顯示長度80
FEEDBACK顯示「n rows selected」ON (6)
TIMING顯示執行時間OFF
AUTOTRACE顯示執行計畫與統計OFF