程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> MySQL綜合教程 >> mysql高速導入導出大容量TXT文本

mysql高速導入導出大容量TXT文本

編輯:MySQL綜合教程


mysql高速導入導出大容量TXT文本
  先談談如何mysql導入TXT   www.2cto.com   用到loaddata, MySQL的LOAD DATA INFILE語句用於高速地從一個文本文件中讀取行,並裝入一個表中。LOAD DATA INFILE語句從一個文本文件中以很高的速度讀入一個表中。   load data參數配置:   SQL代碼 LOAD DATA [LOW_PRIORITY] [LOCAL] INFILE 'file_name.txt(file路徑)' [REPLACE | IGNORE]    INTO TABLE tbl_name    [FIELDS        [TERMINATED BY '\t']        [OPTIONALLY] ENCLOSED BY '']        [ESCAPED BY '\\' ]]   [LINES TERMINATED BY '\n']    [IGNORE number LINES]    [(col_name,...)]      如果指定LOCAL關鍵詞,從客戶本地主機讀文件。如果LOCAL沒指定,文件必須位於服務器上(遠程用的)。(LOCAL在MySQL3.22.6或以後版本中可用。)如果你指定關鍵詞LOW_PRIORITY,LOAD DATA語句的執行被推遲到沒有其他客戶讀取表後。REPLACE和IGNORE關鍵詞控制對現有的唯一鍵記錄的重復的處理。如果你指定REPLACE,新行將代替有相同的唯一鍵值的現有行。

如果你 指定IGNORE,跳過有唯一鍵的現有行的重復行的輸入。如果你不指定任何一個選項,當找到重復鍵鍵時,出現一個錯誤,並且文本文件的余下部分被忽略時。如果你使用LOCAL關鍵詞從一個本地文件裝載數據,服務器沒有辦法在操作的當中停止文件的傳輸,因此缺省的行為好像IGNORE被指定一樣。LOAD DATA INFILE是SELECT ... INTO OUTFILE的逆操作,SELECT句法。為了將一個數據庫的數據寫入一個文件,使用SELECT ... INTO OUTFILE,為了將文件讀回數據庫,使用LOAD DATA INFILE。兩個命令的FIELDS和LINES子句的語法是相同的。兩個子句是可選的,但是如果指定兩個,FIELDS必須在LINES之前。   如果你指定一個FIELDS子句,它的每一個子句(TERMINATED BY, [OPTIONALLY] ENCLOSED BY和ESCAPED BY)也是可選的,除了你必須至少指定他們之一。   如果你不指定一個FIELDS子句,缺省值與如果你這樣寫的相同:   FIELDS TERMINATED BY '\t' ENCLOSED BY '' ESCAPED BY '\\'   如果你不指定一個LINES子句,缺省值與如果你這樣寫的相同:   LINES TERMINATED BY '\n'  換句話說,缺省值導致讀取輸入時,LOAD DATA INFILE表現如下:   在換行符處尋找行邊界  在定位符處將行分進字段  不要期望字段由任何引號字符封裝  將由“\”開頭的定位符、換行符或“\”解釋是字段值的部分字面字符  相反,缺省值導致在寫入輸出時,SELECT ... INTO OUTFILE表現如下:   在字段之間寫定位符  不用任何引號字符封裝字段  使用“\”轉義出現在字段中的定位符、換行符或“\”字符  在行尾處寫換行符  注意,為了寫入FIELDS ESCAPED BY '\\',對作為一條單個的反斜線被讀取的值,你必須指定2條反斜線值。   www.2cto.com   IGNORE number LINES選項可被用來忽略在文件開始的一個列名字的頭:   mysql> LOAD DATA INFILE "/tmp/file_name" into table test IGNORE 1 LINES;   我建了一個demo表:   SQL代碼 mysql> use DB_cmd_demo;      mysql> explain insertdemo;   +-------+-------------+------+-----+---------+-------+   | Field | Type        | Null | Key | Default | Extra |   +-------+-------------+------+-----+---------+-------+   | code  | varchar(25) | YES  |     | NULL    |       |   | demo  | varchar(15) | NO   |     |         |       |   +-------+-------------+------+-----+---------+-------+   2 rows in set (0.01 sec)   File_AA.txt文本格式如下:   XML/HTML代碼 AAVTUALOJJKEC   AAHRFTXIBLGYG   AAOAQVLJROSBT   AACNKRKBZEDPE   SQL代碼 mysql> load data local infile 'd:\File_AA.txt' into table insertdemo (demo);   Query OK, 4 rows affected (0.00 sec)   Records: 4  Deleted: 0  Skipped: 0  Warnings: 0   生成如下:   SQL代碼 mysql> select * from insertdemo;   +------+----------------+   | code | demo           |   +------+----------------+   | NULL | AACNKRKBZEDPE  |    | ULL | AAOAQVLJROSBT    | ULL | AAHRFTXIBLGYG    | ULL | AAVTUALOJJKEC   +------+----------------+   4 rows in set (0.00 sec)   再談談mysql如何導出到TXT 這是網上的一個demo,在這裡貼一下,其實兩個用法主要是理解每個參數的用法就OK了    www.2cto.com     SQL代碼 -- 導出數據為文本文件   SELECT demo,code   INTO OUTFILE 'd:\DM_HY_EXPORT.TXT'   FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY ''''   LINES TERMINATED BY '\n'   FROM insertdemo;       FIELDS TERMINATED BY ',' 數據字段間用逗號隔開   OPTIONALLY ENCLOSED BY '''' 每個字段的數據用單引號括住(注意單引號的表達方法)   LINES TERMINATED BY '\n' 每條數據結束用'\n'作為換行符。    

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