实用指南:oracle insert语句的所有语法

oracle insert语句的所有语法

Oracle 中常见的INSERT语句语法有以下几种:

单条记录插入

INSERT INTO table_name (column1, column2, column3, ...)
VALUES (value1, value2, value3, ...);

此语法用于向指定表的特定列插入单条记录。若要插入表的所有列,可省略列名列表,但值的顺序和数量必须与表中列的顺序和数量一致,如下:

INSERT INTO table_name
VALUES (value1, value2, value3, ...);

从其他表复制数据插入

INSERT INTO table_name1 (column_name1, column_name2, ...)
SELECT column_name1, column_name2, ...
FROM table_name2
WHERE some_condition;

该语法会把table_name2中满足some_condition条件的数据插入到table_name1中指定的列里。如果table_name1table_name2的列名和顺序相同,可省略列名列表。

批量插入

INSERT ALL
INTO A(field_1, field_2) VALUES (value_1, value_2)
INTO A(field_1, field_2) VALUES (value_3, value_4)
INTO A(field_1, field_2) VALUES (value_5, value_6)
SELECT 1 FROM DUAL;

此语法可以一次性插入多条记录,SELECT 1 FROM DUAL是为了满足 SQL 语法要求,DUAL是 Oracle 中的一个虚拟表。

条件插入

INSERT ALL
WHEN condition1 THEN
INTO table_name (column1, column2, ...) VALUES (value1, value2, ...)
WHEN condition2 THEN
INTO table_name (column1, column2, ...) VALUES (value3, value4, ...)
ELSE
INTO table_name (column1, column2, ...) VALUES (value5, value6, ...)
SELECT column1, column2, ...
FROM source_table;

根据不同的条件将source_table中的数据插入到table_name表中不同的记录里。

多表插入

INSERT ALL
INTO table1 (column1, column2) VALUES (col1, col2)
INTO table2 (column3, column4) VALUES (col3, col4)
SELECT col1, col2, col3, col4
FROM source_table;

可以同时将source_table中的数据插入到多个不同的表中。

posted @ 2025-09-17 19:07  yfceshi  阅读(52)  评论(0)    收藏  举报