一般的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;