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

Oracle 9i 分析函數實戰入門:SQL*Plus 環境與核心單行函數回顧

     編輯:Oracle 資料庫基礎

分析函數是 SQL 進階的分水嶺。本文作為入門鋪墊,回顧 SQL*Plus 環境設置、會話日期格式、替換變量、子查詢 INSERT、事務控制、字符串連接、通配符、單行函數分類與字符函數實戰,為後續窗口函數學習打基礎。

一、SQL*Plus 環境優化

SET LINESIZE 500
SET PAGESIZE 100
-- 重新執行上一條:/  或  RUN  或  R

二、會話級日期格式

ALTER SESSION SET NLS_DATE_FORMAT = 'YYYY-MM-DD';
-- 默認:'DD-MON-RR'

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

INSERT INTO scott.emp(empno, ename, sal)
VALUES (&emp_id, '&emp_name', &emp_sal);
-- 可反復執行(/ 回車)多次輸入不同值

四、子查詢 INSERT

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

五、事務控制基礎

  • 隱式事務:DML 自動開啟,COMMIT/ROLLBACK 結束
  • SAVEPOINT sp; → ROLLBACK TO sp; 部分回滾

六、字符串與通配符

  • 連接符:||
  • % 多字符,_ 單字符,IS NULL 判空

七、單行函數分類

General / Character / Number / Date / Conversion

八、字符函數實戰(轉換類)

函數示例結果
LOWERSELECT LOWER(ename) FROM scott.emp;smith, allen...
UPPERSELECT * FROM scott.emp WHERE ename = UPPER('king');KING
INITCAPSELECT INITCAP(ename) FROM scott.emp;Smith, Allen...

九、下一步學習路徑

  1. 掌握 ROW_NUMBER() OVER (PARTITION BY ... ORDER BY ...) 分組排序
  2. 理解 RANK / DENSE_RANK 排名差異
  3. 運用 LAG / LEAD 訪問前後行
  4. 實現 SUM() OVER / AVG() OVER 移動窗口聚合
  5. 解決 Top-N、去重、同比環比、連續登錄等經典場景

分析函數讓 SQL 具備「行間感知」能力,是從寫查詢到寫高效查詢的關鍵躍升。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved