在mysql中SELECT INTO語句是把當前表所有數(shù)據(jù)備份到一張新表中,但是新表必須與舊表結(jié)構(gòu)一致,當然我們也可以自己選定幾個字段了,下面我來給各位同學介紹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 //Vevb.com
實例1:制作 "Persons" 表的備份文件,代碼如下:
SELECT * INTO Persons_backup FROM Persons
實例2:帶 IN 選項,把表復制到另一個數(shù)據(jù)庫中,代碼如下:
SELECT * INTO Persons IN 'Backup.mdb' FROM Persons
實例3:從 "Persons" 表中提取居住在 "Beijing" 的人的信息,并創(chuàng)建了一個帶有兩個列的名為 "Persons_backup" 的表,代碼如下:
SELECT LastName, Firstname INTO Persons_backup FROM Persons WHERE City='Beijing'
實例4:連接表,下面的例子會創(chuàng)建一個名為 "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
語法錯誤注意
需要注意的是嵌套查詢部分最后一定要有設(shè)置表別名,如下:
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
新聞熱點
疑難解答
圖片精選