一般的sql 插入语句:
insert into 表名 (列1, 列2....)
values
(列1值, 列2值...)
(列1值, 列2值...)
(列1值, 列2值...)
(列1值, 列2值...)
但是这种的值valuse是我们手写死了的。有时候字段的值可能是另一张表中的数据。这种情况就需要与select 来进行搭配使用
INSERT INTO 目标表 (列1, 列2, 列3, ...)
SELECT 列1, 列2, 列3, ...
FROM 源表
WHERE 条件;
事例:
CREATE TABLE Customers (
ID INT PRIMARY KEY AUTO_INCREMENT,
Name VARCHAR(50),
Address VARCHAR(50)
);
INSERT INTO Customers (Name, Address)
VALUES ('张三', '北京'), ('李四', '上海'), ('王五', '广州');
CREATE TABLE Orders (
ID INT PRIMARY KEY AUTO_INCREMENT,
CustomerName VARCHAR(50),
Amount DECIMAL(10, 2)
);
INSERT INTO Orders (CustomerName, Amount)
VALUES ('张三', 100.00), ('李四', 200.00), ('王五', 300.00);
-
不过当我们有时候要写入的字段是一个常亮的时候,我们可以通过 as 来指定列
-
INSERT INTO Customers (Name, Address, OrderStatus) SELECT CustomerName, Address, '已完成' AS OrderStatus FROM Orders WHERE Amount > 150.00;