語法介紹:
把所有的列插入新表
代碼如下 復制代碼
SELECT * INTO new_table_name [IN externaldatabase] FROM old_tablename
只把希望的列插入新表
代碼如下 復制代碼
SELECT column_name1, column_name2 INTO new_table_name [IN externaldatabase] FROM old_tablename
實例1:制作 "Persons" 表的備份文件
代碼如下 復制代碼
SELECT * INTO Persons_backup FROM Persons
實例2:帶 IN 選項,把表復制到另一個數據庫中
代碼如下 復制代碼 SELECT * INTO Persons IN 'Backup.mdb' FROM Persons
實例3:從 "Persons" 表中提取居住在 "Beijing" 的人的信息,並創建了一個帶有兩個列的名為 "Persons_backup" 的表
代碼如下 復制代碼
SELECT LastName, Firstname INTO Persons_backup FROM Persons WHERE City='Beijing'
實例4:連接表,下面的例子會創建一個名為 "Persons_Order_Backup" 的新表,其中包含了從 Persons 和 Orders 兩個表中取得的信息
代碼如下 復制代碼
SELECT Persons.LastName, Orders.OrderNo INTO Persons_Order_Backup FROM Persons INNER JOIN Orders ON Persons.Id_P=Orders.Id_P
語法錯誤注意
需要注意的是嵌套查詢部分最後一定要有設置表別名,如下:
SELECT * FROM (SELECT f1,f2 FROM b JOIN c) AS tb
即最後的AS tb是必須的(tb這個名稱可以隨意取),即指定一個別名。每個派生出來的新表都必須指定別名,否則在mysql中會報如下錯誤:
ERROR 1248 (42000): Every derived TABLE must have its own alias
另外,MySQL中INSERT INTO SELECT不能加VALUES,即不能寫成如下形式:
INSERT INTO db1_name(field1,field2) VALUES SELECT field1,field2 FROM db2_name