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

Oracle 常用命令與函數速查手冊:SQL*Plus、日期、字符串、事務控制

     編輯:Oracle 資料庫基礎

DBA 與開發日常高頻使用的 Oracle 命令、SQL*Plus 環境設置、核心函數、事務控制語句,濃縮為桌面速查卡,查閱即用。

一、SQL*Plus 環境設置

SET LINESIZE 500      -- 行寬,防換行截斷
SET PAGESIZE 100      -- 頁長,控制標題重複頻率
/  或  RUN  或  R     -- 重新執行上一條 SQL

二、會話級日期格式修改

ALTER SESSION SET NLS_DATE_FORMAT = 'YYYY-MM-DD';  -- 當前會話生效
-- 默認格式:'DD-MON-RR' (如 01-JAN-23)

三、替換變量(&)互動式輸入

INSERT INTO scott.emp(empno, ename, sal)
VALUES (&emp_id, '&emp_name', &emp_sal);
-- 執行時提示輸入 emp_id, emp_name, emp_sal
-- 同一語句可反復執行(輸入 / 回車)

四、子查詢 INSERT

INSERT INTO managers (id, name, salary, hiredate)
SELECT empno, ename, sal, hiredate
FROM emp
WHERE job = 'MANAGER';

五、事務控制

  • Oracle 隱式事務:每條 DML 自動開啟,COMMIT/ROLLBACK 顯式結束。
  • SAVEPOINT sp_name; 設置保存點 → ROLLBACK TO sp_name; 部分回滾。

六、字符串連接與通配符

  • 連接:||(Oracle)vs +(SQL Server/MySQL CONCAT)
  • %:任意長度字符;_:單個字符
  • IS NULL 判斷空值

七、核心單行函數速查

分類函數示例/說明
字符LOWER/UPPER/INITCAP小寫/大寫/首字母大寫
CONCAT(s1,s2)等價 s1 || s2
LENGTH(str)字符長度
SUBSTR(str, m, n)從第 m 位取 n 個字符
INSTR(str, substr)返回子串首次出現位置(1-based)
LPAD/RPAD(str, len, pad)左/右填充至指定長度
REPLACE(str, from, to)替換所有匹配
數值ROUND(n, [m])四捨五入,m 為小數位(負數向左)
TRUNC(n, [m])直接截斷,不四捨五入
MOD(m, n)取模
CEIL/FLOOR向上/向下取整
ABS絕對值
日期SYSDATE當前日期時間
ADD_MONTHS(d, n)加減月份
MONTHS_BETWEEN(d1, d2)月份差(可含小數)
NEXT_DAY(d, 'weekday')下一個指定星期幾
LAST_DAY(d)該月最後一天
ROUND/TRUNC(date, 'fmt')日期四捨五入/截斷(MONTH/YEAR等)
轉換TO_CHAR(date/num, 'fmt')轉字符串,格式模板豐富
TO_DATE(str, 'fmt')字符串轉日期
NVL(expr1, expr2)expr1 為 NULL 返回 expr2

八、系統上下文函數

SELECT SYS_CONTEXT('USERENV', 'SESSION_USER') FROM dual;  -- 當前用戶
SELECT SYS_CONTEXT('USERENV', 'LANGUAGE')   FROM dual;  -- 語言/字符集
SELECT SYS_CONTEXT('USERENV', 'DB_NAME')    FROM dual;  -- 數據庫名
SELECT SYS_CONTEXT('USERENV', 'TERMINAL')   FROM dual;  -- 客戶端終端
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved