Oracle是一種非常強大的關系型數據庫管理系統(RDBMS),廣泛應用于企業級和大型機構的數據處理和業務管理中。在日常使用Oracle的過程中,插入數據是一項非常基礎且必須掌握的操作。本文將詳細介紹如何在Oracle中插入數據,包括單表插入、多表插入、使用子查詢插入等多種情況。
單表插入數據
假設我們有如下一張表:
CREATE TABLE employee (
id number(10),
name varchar2(20),
gender varchar2(4),
age number(3),
salary number(10,2)
);
我們可以使用INSERT語句向employee表中插入一條記錄:
INSERT INTO employee (id, name, gender, age, salary)
VALUES (1, 'John', 'M', 25, 5000.00);
在INSERT關鍵字后面指定要插入數據的表名,緊跟著的是字段列表,用逗號隔開。然后在VALUES關鍵字后指定要插入的值,以逗號隔開,與字段列表一一對應。
還可以使用INSERT INTO SELECT語句從一個表中插入數據到另一個表中:
INSERT INTO employee2 (id, name, gender, age, salary)
SELECT id, name, gender, age, salary FROM employee WHERE id = 1;
在這種情況下,我們使用SELECT語句從已有的employee表中獲取數據,然后將數據插入到另一個表employee2中。這種方式可以很方便地實現數據復制和遷移。
多表插入數據
在Oracle中,我們可以使用MULTI-TABLE INSERT語句同時向多個表中插入數據。假設我們有如下兩個表:
CREATE TABLE employee (
id number(10),
name varchar2(20),
gender varchar2(4),
age number(3),
salary number(10,2)
);
CREATE TABLE department (
dept_id number(10),
dept_name varchar2(50),
location varchar2(20)
);
我們可以使用如下語句向兩個表中插入數據:
INSERT ALL
INTO employee (id, name, gender, age, salary) VALUES (1, 'John', 'M', 25, 5000.00)
INTO department (dept_id, dept_name, location) VALUES (1001, 'IT', 'New York')
SELECT * FROM dual;
注意:INSERT ALL和SELECT * FROM dual是固定搭配使用的。在INSERT ALL后面按順序列出每個INSERT語句,使用INTO關鍵字指定要插入的表名和相應的字段和值列表。在所有INSERT語句列出后,使用SELECT * FROM dual結束語句。
使用子查詢插入數據
在Oracle中,我們可以使用子查詢語句向一個表中插入數據。假設我們有如下一個表:
CREATE TABLE employee (
id number(10),
name varchar2(20),
gender varchar2(4),
age number(3),
salary number(10,2)
);
現在,我們想向employee表中插入所有年齡大于35歲的員工信息,我們可以使用如下語句:
INSERT INTO employee (id, name, gender, age, salary)
SELECT id, name, gender, age, salary FROM employee_info WHERE age >35;
在這個例子中,我們使用SELECT語句從employee_info表中獲取年齡大于35歲的員工信息,然后將數據插入到employee表中。
總結
插入數據是Oracle中最為基礎和普遍的操作之一。本文介紹了單表插入、多表插入和使用子查詢插入三種情況的具體做法。在實際操作中,我們可以根據實際需求選擇適合自己的方式進行插入數據。