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)来提高效率。
相关推荐
武子康3 分钟前
Java-109 深入浅出 MySQL MHA主从故障切换机制详解 高可用终极方案
java·数据库·后端·mysql·性能优化·架构·系统架构
专注API从业者2 小时前
基于 Node.js 的淘宝 API 接口开发:快速构建异步数据采集服务
大数据·前端·数据库·数据挖掘·node.js
前端无冕之王2 小时前
一份兼容多端的HTML邮件模板实践与详解
前端·css·数据库·html
这周也會开心3 小时前
SQL-重要常见关键字
数据库·sql
超级无敌永恒暴龙战士3 小时前
MySQL-delete tableName from ...
数据库·mysql
叫我阿柒啊3 小时前
Java全栈开发工程师的面试实战:从基础到微服务
java·数据库·spring boot·微服务·node.js·vue3·全栈开发
客家族_Shark曾_小凡仙5 小时前
关于国产 RAC 和分布式研讨
oracle·国产数据库
郭俊强7 小时前
nestjs 连接redis
数据库·redis·缓存
海边捡石子7 小时前
postgress数据迁移gaussdb注意事项
数据库
chen_note7 小时前
Redis数据持久化——RDB快照和Aof日志追加
java·数据库·mybatis·持久化·aof·rdb