实用指南: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_name1
和table_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
中的数据插入到多个不同的表中。