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

Oracle SQL 基礎語法大全:DML 操作核心指南

     編輯:Oracle 資料庫基礎

資料操作語言 (DML) 核心語法

1. INSERT - 資料插入

-- 基本語法
INSERT INTO 表名 (欄位1, 欄位2, ...) VALUES (值1, 值2, ...);

-- 子查詢插入
INSERT INTO 表名 (欄位1, 欄位2, ...) 
SELECT 欄位1, 欄位2, ... FROM 另一張表;

關鍵注意事項:

  • 字串值必須用單引號包裹:'GOOD DAY'
  • 單引號轉義:雙單引號 '' 代表單引號字元
  • 長度驗證:超過欄位定義長度會報錯,插入前建議檢核
  • 日期處理:可用 SYSDATE 或 TO_DATE('2001-08-01','YYYY-MM-DD')
  • 長字串 (>4000 bytes):需用 CLOB + DBMS_LOB 套件處理
  • 自動遞增序列:
    CREATE SEQUENCE SEQ_NAME INCREMENT BY 1 START WITH 1 MAXVALUE 999999 NOCACHE;
    INSERT INTO TBL (ID) VALUES (SEQ_NAME.NEXTVAL);

2. DELETE - 資料刪除

DELETE FROM 表名 WHERE 條件;

重要特性:

  • DELETE 不釋放資料區塊空間,僅標記為 UNUSED
  • 大量刪除全表資料建議用 TRUNCATE TABLE 表名;(DDL 操作,不可回滾,釋放空間、重置高水位線)

3. UPDATE - 資料修改

UPDATE 表名 SET 欄位1=值1, 欄位2=值2, ... WHERE 條件;

風險防範:

  • 未賦值欄位將變為 NULL,修改前務必非空檢核
  • 長度超限會報錯,同樣需前置驗證

交易控制與效能最佳實務

交易控制三原則

  1. 確認提交:DML 操作必須 COMMIT 才生效,否則僅在當前 Session 可見
  2. 回滾機制:ROLLBACK 可撤銷未提交的變更
  3. 鎖行為:DML 自動加行級鎖,COMMIT/ROLLBACK 釋放

大量資料操作效能策略

  • 批次處理:單次操作建議控制在 1 萬筆以內,避免回滾段膨脹導致效能下降
  • 分段提交:超過 10 萬筆操作需分批,中間穿插 COMMIT
  • 預估範圍:執行前評估影響筆數,必要時分多個時間窗口執行

資料定義語言 (DDL) 概覽

DDL 包含 CREATE/ALTER/DROP/TRUNCATE 等結構操作,屬隱式提交操作(執行前後自動 COMMIT),不可回滾。常見操作:

  • 建立/修改/刪除:表、索引、視圖、序列、同義詞、資料庫連結
  • 權限管理:GRANT/REVOKE 系統權限與物件權限
  • 資料表維護:ADD/MODIFY/DROP COLUMN、移動表空間、分區維護

實務提醒

生產環境 DDL 變更建議:維護窗口執行、先測試環境驗證、備份方案就緒、評估鎖衝突與應用影響。

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