Oracle使用SQL一次性向表中插入多行数据

1. 创建表

sql 复制代码
-- 创建销售表
CREATE TABLE sales (
    id NUMBER PRIMARY KEY,
    product_id NUMBER,
    sales_description VARCHAR2(50)
);

2. 插入数据

2.1 使用INSERT ALL 插入多行

语法如下:

sql 复制代码
INSERT ALL
  INTO 表名 (列1, 列2, ..., 列N) VALUES (值1, 值2, ..., 值N)
  INTO 表名 (列1, 列2, ..., 列N) VALUES (值1, 值2, ..., 值N)
  ...
  INTO 表名 (列1, 列2, ..., 列N) VALUES (值1, 值2, ..., 值N)
SELECT * FROM DUAL;

示例:

sql 复制代码
-- 插入销售表数据
INSERT ALL 
INTO Sales(Id, Product_Id, Sales_Description) VALUES(1, 1, 'High') 
INTO Sales(Id, Product_Id, Sales_Description) VALUES(2, 2, 'Medium') 
INTO Sales(Id, Product_Id, Sales_Description) VALUES(3, 3, 'Low')
SELECT * FROM Dual;
COMMIT;
2.2 使用SELECT 语法插入多行

语法如下:

sql 复制代码
INSERT INTO 表名 (列1, 列2, ..., 列N)
SELECT 值1, 值2, ..., 值N FROM DUAL
UNION ALL
SELECT 值1, 值2, ..., 值N FROM DUAL
UNION ALL
...
SELECT 值1, 值2, ..., 值N FROM DUAL;

示例:

sql 复制代码
INSERT INTO Sales(Id, Product_Id, Sales_Description)
	SELECT 1, 1, 'High' FROM Dual
	UNION ALL
	SELECT 2, 2, 'Medium' FROM Dual
	UNION ALL
	SELECT 3, 3, 'Low' FROM Dual;
COMMIT;

注意事项

  • 数据类型匹配:插入的值必须与表中列的数据类型一致。
  • 主键/唯一约束:如果表中有主键或唯一约束,插入的值不能违反这些约束。
  • 如果需要插入大量数据,建议使用批量插入的方式,例如通过 PL/SQL 块或工具(如 SQL*Loader)来提高效率。
相关推荐
それども9 小时前
redis scan和keys对比
数据库·redis·缓存
basketball6169 小时前
SQL 基础面试考点总结
数据库·sql·面试
深蓝轨迹10 小时前
缓存雪崩终极防御:Caffeine + Redis 多级缓存
数据库·redis·缓存·caffine
新时代农民工~10 小时前
PostgreSQL 主从故障恢复自动化:实战脚本与最佳实践
数据库·postgresql·自动化
woshilys11 小时前
sql server 查询外键
数据库·sql·sqlserver
瀚高PG实验室12 小时前
开发管理工具打不开No way to find ori gi nal streamhand er for jar protocol
java·数据库·jar·瀚高数据库
__zRainy__12 小时前
Redis系列:缓存抽象封装与最佳实践
数据库·redis·缓存
cen__y12 小时前
Linux13(数据库)
linux·服务器·c语言·开发语言·数据库
__zRainy__12 小时前
Redis系列:核心数据类型与基础 API 解读
数据库·redis·缓存
雨辰AI13 小时前
人大金仓慢 SQL 根治方法论:问题定位 - 分析 - 优化全流程
数据库·后端·sql·mysql·政务