15.1 SELECT INTO作用
SELECT INTO语句从一个表中复制数据,然后将数据插入到另一个新表中。
15.2 SELECT INTO语句
--可以把所有的列都复制到新表中: SELECT * INTO newtable[IN externaldb] FROM table1; --或者 SELECT coulumn_name(s) INTO newtable[IN externaldb] FROM table1;
注意:将使用SELECT语句定义的列名和类型创建新表。可以使用AS子句来应用一个新名称。
15.3 SELECT INTO实例
--创建Customers的备份复件 SELECT * INTO CustomersBackup FROM Customers;
--只复制一些列插入到新表中 SELECT 姓名,地址 INTO CustomersBackup_1 FROM Customers;
--只复制广东省的客户插入到新表中 SELECT * INTO CustomerBackup_2 FROM Customers WHERE 省份='广东省';
--复制多个表中的数据插入到新表中 SELECT c.姓名,o.订单 AS ID INTO CustomerOrderBackup FROM Customers AS c LEFT JOIN Orders AS o ON c.客户ID=o.客户 ID;
注意:SELECT INTO语句可以用于在另一种模式下创建一个新的空表,即只有表结构,没有数据。只需添加WHERE子句,使查询返回时没有数据:
SELECT * INTO newtable FROM table1 WHERE 1=0;
15.4 INSERT INTO SELECT作用
INSERT INTO SELECT语句从表中复制数据,并将数据插入现有的表中。目标表中的任何现有行都不会受到影响。
15.5 INSERT INTO SELECT语法
--可以将所有列从一个表中复制到另一个已经存在的表中 INSERT INTO table2 SELECT * FROM table1; --或者 --把想要的列复制到另一个现有的表中 INSERT INTO table2 (column_name(s)) SELECT column_name(s) FROM table1;
15.6 INSERT INTO SELECT实例
--把“Suppliers”一栏复制到“Customers”一栏 INSERT INTO Customers(姓名,省份) SELECT 供应商名称,省份 FROM Suppliers;
--只将上海供应商的副本插入“Customers” INSERT INTO Customers(姓名,省份) SELECT 供应商名称,省份 FROM Suppliers WHERE 省份='上海市';