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)来提高效率。
相关推荐
摇滚侠27 分钟前
在 Oracle SQL 中实现 `IF-ELSE` 逻辑 SQL 错误 [12704] [72000]: ORA-12704: 字符集不匹配
数据库·sql·oracle
lypzcgf5 小时前
Coze源码分析-资源库-删除数据库-后端源码-流程/核心技术/总结
数据库·go·coze·coze源码分析·智能体平台·ai应用平台·agent平台
l1t6 小时前
拉取postgresql 18.0 docker镜像并运行容器
数据库·docker·postgresql
wszysystem7 小时前
UniDac控件关于主从表的创建
数据库
Morpheon7 小时前
SQL窗口函数中的排名函数详解:从基础到高级应用
数据库·sql·mysql
boonya7 小时前
Postgresql 如何开启矢量数据库扩展
数据库
熊文豪7 小时前
时序数据库选型指南:如何为企业选择合适的时序数据库解决方案
数据库·时序数据库·iotdb
码农学院7 小时前
MSSQL字段去掉excel复制过来的换行符
前端·数据库·sqlserver
jun~7 小时前
SQLMap数据库枚举靶机(打靶记录)
linux·数据库·笔记·学习·安全·web安全
计算机毕业设计小帅8 小时前
【2026计算机毕业设计】基于Springboot的娱乐网站设计与实现
数据库·课程设计