數據插入是資料庫操作的基礎。Oracle 通過 INSERT 語句支援單行插入、多行批量插入以及表間數據複製等多種模式。本文將詳細講解各類插入語法、數據類型對應規則與實戰案例,助你高效完成數據錄入。
INSERT INTO 表名 (字段1, 字段2, ...) VALUES (值1, 值2, ...);
| 數據類型 | 值寫法 | 注意事項 |
|---|---|---|
| 數值型 | 直接寫數字 | 如 7999 |
| 字符型 | 單引號包裹 | 如 'JONE' |
| 日期型 | 單引號包裹,格式需與會話一致 | 如 '25-11月-2002' |
關鍵規則: 插入列順序必須與值順序一一對應;非空列必須提供值;字符與日期型必須加單引號。
先查詢現有日期格式:
SELECT empno, ename, hiredate FROM scott.emp;

系統預設格式為「日-月-年」。據此插入新記錄:
INSERT INTO scott.emp (empno, ename, hiredate) VALUES (7999, 'JONE', '25-11月-2002');

驗證插入結果:
SELECT * FROM scott.emp WHERE empno = 7999;

INSERT INTO 目標表 (字段1, 字段2, ...)
SELECT 字段1, 字段2, ... FROM 來源表 WHERE 條件;
本質是「子查詢 + 插入」兩步合一。子查詢結果的字段數量、類型、順序必須與目標表完全一致。
INSERT INTO scott.emp (empno, ename, hiredate)
SELECT empno+100, ename, hiredate FROM scott.emp WHERE empno >= 6999;

CREATE TABLE scott.test AS
SELECT DISTINCT empno, ename, hiredate
FROM scott.emp
WHERE empno >= 7000;

SELECT * FROM scott.test;

原理說明: 該語句分三步執行:① 執行查詢獲取結果集;② 根據結果集結構建立空表;③ 將結果集數據插入新表。
熟練掌握這三種模式,即可應對絕大多數業務數據導入場景。