程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> 關於MYSQL數據庫 >> 用SELECT... INTO OUTFILE語句導出MySQL數據的教程

用SELECT... INTO OUTFILE語句導出MySQL數據的教程

編輯:關於MYSQL數據庫

表數據導出到一個文本文件最簡單的方法是使用SELECT... INTO OUTFILE語句的查詢結果直接導出到一個文件在服務器主機上。
導出數據的SELECT...INTO OUTFILE聲明:

這句話的語法結合了常規的SELECT INTO OUTFILE文件名的末尾。默認的輸出格式是相同的LOAD DATA,所以下面的語句導出tutorials_tbl的表制表符分隔的,換行結尾的文件到/tmp/tutorials.txt:

mysql> SELECT * FROM tutorials_tbl 
  -> INTO OUTFILE '/tmp/tutorials.txt';

也可以更改輸出格式,使用選項來指示如何引用和分隔列和記錄。 CRLF終止線要導出tutorial_tbl的CSV格式的表格,使用這樣的語句:

mysql> SELECT * FROM passwd INTO OUTFILE '/tmp/tutorials.txt'
  -> FIELDS TERMINATED BY ',' ENCLOSED BY '"'
  -> LINES TERMINATED BY '\r\n';

SELECT ... INTO OUTFILE具有以下屬性:

  •     由MySQL服務器直接創建輸出文件,這樣的文件名應指定您希望在服務器主機上的文件將被寫入。沒有本地版本的LOAD DATA LOCAL版本的類似的語句。
  •     必須要有MySQL的FILE權限才能執行的SELECT... INTO語句。
  •     輸出文件必須不存在。這可以防止MySQL從會破壞文件可能重要。
  •     應該在服務器主機上或一些方法來檢索文件從該主機的登錄帳戶。否則SELECT... INTO OUTFILE可能是沒有價值的。
  •     在Unix下,創造了世界可讀的文件和所擁有的MySQL服務器。這意味著雖然就可以讀取該文件,但是不能夠刪除它。

作為原始數據的導出表:

使用mysqldump程序復制或備份表和數據庫。它可以寫表輸出的原始數據文件或為一組的INSERT語句重新創建該表中的記錄。
轉儲一個表,必須指定一個數據文件 - 選項卡上的選項,表示想要的MySQL服務器寫入文件所在的目錄。


使用mysqldump程序復制或備份表和數據庫。它可以寫表輸出的原始數據文件,或為一組的INSERT語句重新創建該表中的記錄。
轉儲一個表,必須指定一個數據文件 - 選項卡上的選項,表示想要的MySQL服務器寫入文件所在的目錄。

$ mysqldump -u root -p --no-create-info \
      --tab=/tmp TUTORIALS tutorials_tbl
password ******

在SQL格式導出表的內容或定義:

一個表中的SQL格式導出到一個文件,使用這樣的命令:

$ mysqldump -u root -p TUTORIALS tutorials_tbl > dump.txt
password ******

這將創建文件的內容如下:

-- MySQL dump 8.23
--
-- Host: localhost  Database: TUTORIALS
---------------------------------------------------------
-- Server version    3.23.58

--
-- Table structure for table `tutorials_tbl`
--

CREATE TABLE tutorials_tbl (
 tutorial_id int(11) NOT NULL auto_increment,
 tutorial_title varchar(100) NOT NULL default '',
 tutorial_author varchar(40) NOT NULL default '',
 submission_date date default NULL,
 PRIMARY KEY (tutorial_id),
 UNIQUE KEY AUTHOR_INDEX (tutorial_author)
) TYPE=InnoDB;

--
-- Dumping data for table `tutorials_tbl`
--

INSERT INTO tutorials_tbl 
    VALUES (1,'Learn PHP','John Poul','2007-05-24');
INSERT INTO tutorials_tbl 
    VALUES (2,'Learn MySQL','Abdul S','2007-05-24');
INSERT INTO tutorials_tbl 
    VALUES (3,'JAVA Tutorial','Sanjay','2007-05-06');

要轉儲多個表,他們的名字所有的數據庫名稱參數。要轉儲整個數據庫,不指定任何表後的數據庫,如下所示:

$ mysqldump -u root -p TUTORIALS > database_dump.txt
password ******

所有可用的數據庫備份主機上使用以下命令:

$ mysqldump -u root -p --all-databases > database_dump.txt
password ******

在SQL格式導出表的內容或定義:

這些方法可用於實現數據庫的備份策略。
表或數據庫復制到另一台主機:

如果要復制的表或數據庫從一個MySQL服務器,然後使用mysqldump數據庫名和表名。

在源主機上運行以下命令。這將轉儲完整的數據庫到dump.txt文件:

$ mysqldump -u root -p database_name table_name > dump.txt
password *****

復制完整的數據庫,而不使用一個特定的表名稱,如上面所解釋。

現在,FTP dump.txt文件在另一台主機上,使用下面的命令。在運行此命令之前,請確保已創建目標服務器上的數據庫名稱。

$ mysql -u root -p database_name < dump.txt
password *****

另一種方法,而無需使用一個中間文件來完成,mysqldump輸出直接通過網絡發送到遠程的MySQL服務器。如果可以連接到兩台服務器的cookbook 數據庫所在的主機上,使用以下命令:

$ mysqldump -u root -p database_name \
      states | mysql -h other-host.com database_name

命令mysqldump的一半連接到本地服務器,並寫入轉儲輸出管道。 MySQL的一半的命令連接到遠程MySQL服務器otherhost.com。它讀取輸入管和其他host.com服務器發送的每個語句。


  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved