首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

Oracle SQL 插入數據全攻略:單行、多行與表間複製

     編輯:Oracle 資料庫相關知識

前言

數據插入是資料庫操作的基礎。Oracle 通過 INSERT 語句支援單行插入、多行批量插入以及表間數據複製等多種模式。本文將詳細講解各類插入語法、數據類型對應規則與實戰案例,助你高效完成數據錄入。

一、單行記錄插入

1. 基本語法

INSERT INTO 表名 (字段1, 字段2, ...) VALUES (值1, 值2, ...);

2. 數據類型與值格式對照表

數據類型值寫法注意事項
數值型直接寫數字如 7999
字符型單引號包裹如 'JONE'
日期型單引號包裹,格式需與會話一致如 '25-11月-2002'

關鍵規則: 插入列順序必須與值順序一一對應;非空列必須提供值;字符與日期型必須加單引號。

3. 實戰範例:向 scott.emp 插入一條記錄

先查詢現有日期格式:

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;

驗證查詢結果

二、多行記錄批量插入

1. 語法結構

INSERT INTO 目標表 (字段1, 字段2, ...)
SELECT 字段1, 字段2, ... FROM 來源表 WHERE 條件;

本質是「子查詢 + 插入」兩步合一。子查詢結果的字段數量、類型、順序必須與目標表完全一致。

2. 實戰範例:複製 empno≥6999 的記錄並將 empno 加 100

INSERT INTO scott.emp (empno, ename, hiredate)
SELECT empno+100, ename, hiredate FROM scott.emp WHERE empno >= 6999;

多行插入執行結果

三、表間數據複製(建表並複製)

1. CREATE TABLE ... AS SELECT (CTAS)

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

建表複製執行結果

2. 驗證新表數據

SELECT * FROM scott.test;

新表數據查詢結果

原理說明: 該語句分三步執行:① 執行查詢獲取結果集;② 根據結果集結構建立空表;③ 將結果集數據插入新表。

總結

  • 單行插入適合少量、精確的數據錄入;
  • 多行插入(子查詢)適合批量遷移、轉換數據;
  • CTAS 適合快速建立測試表、歸檔表或分區表。

熟練掌握這三種模式,即可應對絕大多數業務數據導入場景。

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