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)来提高效率。