萬盛學電腦網

 萬盛學電腦網 >> 數據庫 >> mysql教程 >> Mysql中SELECT INTO 語句用法詳解

Mysql中SELECT INTO 語句用法詳解

在mysql中SELECT INTO語句是把當前表所有數據備份到一張新表中,但是新表必須與舊表結構一致,當然我們也可以自己選定幾個字段了哦,下面我來給各位同學介紹SELECT INTO的基本用法吧。

語法介紹:

 把所有的列插入新表

 

 代碼如下 復制代碼

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

copyright © 萬盛學電腦網 all rights reserved