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 省份='上海市';
