SQL的INSERT INTO和INSERT INTO SELECT语句
INSERT INTO语句用来给一个table插入信息的records。
语法:
第一种,指定列名和插入的值
INSERT INTO table_name (column1, column2, column3, ...)
VALUES (value1, value2, valu23, ...);
第二种,如果表内的所有列都有,那在SQL查询中就不必指定列的名字。但值的顺序要和表内的列的顺序一致。
INSERT INTO table_name
VALUES (value1, value2, value3, ...)
例子:
INSERT INTO Customers (CustomerName, ContactName, Address, City, PostalCode, Country)
VALUES ('Cardinal', 'Tom B.Erichsen', 'Skagen 21', 'Stavanger', '4006', 'Norway')
INSERT INTO SELECT语句将数据从一个表拷贝出来,然后加入到另一个表中。
操作时,要保证拷贝出的数据的类型,和要插入的表的数据类型是匹配的。
此操作对目的表中的其他数据不造成影响。
语法:
将一个表中的所有数据拷贝到另一个表中。
INSERT INTO table2
SELECT * FROM table1
WHERE condition;
将一个表中的几列数据拷贝到另一个表中:
INSERT INTO table2 (column1, column2, column3, ...)
SELECT column1, column2, column3, ...
FROM table1
WHERE condition;
举例:
INSERT INTO Customers (CustomerName, City, Country)
SELECT SupplierName, City, Country FROM Suppliers;
INSERT INTO Customers (CustomerName, ContactName, Address, City, PostalCode, Country)
SELECT SupplierName, ContactName, Address, City, PostalCode, Country FROM Suppliers;
将一个Union后的结果,插入一个表:
INSERT INTO Team (name, age)
SELECT customer_name AS name, 21 AS age FROM Customers WHERE customer_id IS NOT NULL
UNION
SELECT customer_name, 31 FROM Orders
ORDER BY name;
从第一个表取得客户名,还有固定数字,第二个表也是,然后组合。然后插入另一个表。
参考:
SQL INSERT INTO SELECT Statement
sql - Insert into with union - Stack Overflow
相关文章
- SQL LAST() 函数
- MySQL通过sql语句获取当前日期|时间|时间戳
- laravel 打印完整 sql 语句
- 第七十九章 SQL命令 UNFREEZE PLANS
- ORACLE性能优化之SQL语句优化
- MySQL在默认事务下各SQL语句使用的锁分析
- sql无效字符 执行sql语句报错解决方案
- 巧用excel生成sql语句
- SQL Server: Get table primary key and Foreign Key using sql query
- SQL update select结合语句详解及应用
- sql语句的优化分析
- laravel中打印一个sql语句
- sql增删改查-转载
- 高效SQL语句(SQL Server)
- SQL SERVER 数据库备份的三种策略及语句
- 如何在sql server的group by语句中聚合字符串字段
- SQL Server 运行状况监控SQL语句
- TPCH 22条SQL语句分析
- 数据库系统原理课程总结3——SQL语句,建表,主键外键,存储过程,批量输入百万级数据