本篇內(nèi)容介紹了“MySQL表數(shù)據(jù)的導(dǎo)入與導(dǎo)出方法”的有關(guān)知識(shí),在實(shí)際案例的操作過(guò)程中,不少人都會(huì)遇到這樣的困境,接下來(lái)就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細(xì)閱讀,能夠?qū)W有所成!

LOAD DATA INFILE語(yǔ)句可以快速將文本記錄導(dǎo)入到表中, SELECT ... INTO OUTFILE可以將表中數(shù)據(jù)導(dǎo)入到文件中,兩者的FIELDS、LINES子句語(yǔ)法相同。
執(zhí)行語(yǔ)句的用戶(hù)需要有FILE權(quán)限,且mysql用戶(hù)對(duì)數(shù)據(jù)文件可讀。
mysqlimport也可以實(shí)現(xiàn)將文本文件導(dǎo)入到表中,mysqlimport也是向服務(wù)器調(diào)用LOAD DATA INFILE語(yǔ)句,--local選項(xiàng)可以讀取客戶(hù)端的文件。
LOAD DATA INFILE語(yǔ)法如下:
LOAD DATA [LOW_PRIORITY | CONCURRENT] [LOCAL] INFILE 'file_name'
[REPLACE | IGNORE]
INTO TABLE tbl_name
[PARTITION (partition_name,...)]
[CHARACTER SET charset_name]
[{FIELDS | COLUMNS}
[TERMINATED BY 'string']
[[OPTIONALLY] ENCLOSED BY 'char']
[ESCAPED BY 'char']
]
[LINES
[STARTING BY 'string']
[TERMINATED BY 'string']
]
[IGNORE number {LINES | ROWS}]
[(col_name_or_user_var,...)]
[SET col_name = expr,...]LOCAL
當(dāng)指定local時(shí),客戶(hù)端將讀取文件發(fā)送到服務(wù)器操作系統(tǒng)的臨時(shí)目錄(非MySQL臨時(shí)目錄),如空間不如將導(dǎo)致執(zhí)行失敗。如未指定local,則會(huì)從服務(wù)器讀取,相對(duì)路徑是相對(duì)于data_dir的路徑。
LOAD DATA INFILE:當(dāng)數(shù)據(jù)非法或數(shù)據(jù)唯一索引沖突將導(dǎo)致執(zhí)行失敗。 LOAD DATA LOCAL INFILE:因?yàn)榉?wù)器端無(wú)法終止客戶(hù)端文件發(fā)送,當(dāng)數(shù)據(jù)非法或數(shù)據(jù)唯一索引沖突時(shí)將會(huì)警告忽略錯(cuò)誤繼續(xù),類(lèi)似IGNORE。
REPLACE
出現(xiàn)數(shù)據(jù)唯一索引沖突將會(huì)替代現(xiàn)有的記錄
IGNORE
出現(xiàn)數(shù)據(jù)唯一索引沖突將會(huì)被忽略。如果IGNORE與REPLACE都沒(méi)指定,則取決于LOCAL選項(xiàng)。如果local也沒(méi)有指定,則重復(fù)數(shù)據(jù)之后的文件數(shù)據(jù)將被不會(huì)執(zhí)行,如指定local,則會(huì)忽略沖突繼續(xù)執(zhí)行。
IGNORE number LINES
指定跳過(guò)文件開(kāi)頭的幾行記錄
LOAD DATA INFILE用法:
默認(rèn)load data infile的格式(不指定FIELDS,LINES選項(xiàng)) FIELDS TERMINATED BY '\t' ENCLOSED BY '' ESCAPED BY '\\' LINES TERMINATED BY '\n' STARTING BY '' 導(dǎo)入csv文件 LOAD DATA INFILE 'data.txt' INTO TABLE tbl_name FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY '\r\n' IGNORE 1 LINES; 導(dǎo)入包含指定列的文件 LOAD DATA INFILE 'data.txt' INTO TABLE tbl_name FIELDS TERMINATED BY ',' (column2,column3); 導(dǎo)入文件設(shè)定指定列的值 LOAD DATA INFILE 'data.txt' INTO TABLE tbl_name FIELDS TERMINATED BY ',' (column1,column2) set column3 = CURRENT_TIMESTAMP;;
SELECT ... INTO OUTFILE會(huì)將查詢(xún)結(jié)果寫(xiě)入到服務(wù)器,因此需要有FILE權(quán)限,同時(shí)需要對(duì)指定的路徑有寫(xiě)入權(quán)限,且指定文件不能是服務(wù)器已有文件。
客戶(hù)端生成指定結(jié)果文件可使用mysql -e "SELECT ..." > file_name
SELECT ... INTO OUTFILE與LOAD DATA INFILE的FIELDS、LINES子句語(yǔ)法相同。
OPTION選項(xiàng)含義如下:
FIELDS TERMINATED BY 'value'
設(shè)置字段之間的分隔字符,可以為單個(gè)或多個(gè)字符,默認(rèn)為制表符'\t'
FIELDS [OPTIONALLY] ENCLOSED BY 'value'
設(shè)置字段的包圍字符,只能為單個(gè)字符
FIELDS ESCAPED BY 'value'
設(shè)置轉(zhuǎn)義字符,只能為單個(gè)字符,默認(rèn)值為‘\’
LINES STARTING BY 'value'
設(shè)置每行數(shù)據(jù)開(kāi)頭的字符,可以為單個(gè)或多個(gè)字符,默認(rèn)情況下不使用任何字符
LINES TERMINATED BY 'value'
設(shè)置每行數(shù)據(jù)結(jié)尾的字符,可以為單個(gè)或多個(gè)字符,默認(rèn)值為'\n',WINDOWS回車(chē)換行符為'\r\n'
導(dǎo)出csv格式的文件 SELECT a,b,a+b INTO OUTFILE '/tmp/result.txt' FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' LINES TERMINATED BY '\n' FROM test_table;
mysqldump -T path dbname tbl_name 也可以生成文本文件,在path目錄生成一個(gè)tbl_name.sql表定義文件和tbl_name.txt文件表數(shù)據(jù)文件,可以指定fields與lines選項(xiàng)指定生成數(shù)據(jù)文件的格式。
“MySQL表數(shù)據(jù)的導(dǎo)入與導(dǎo)出方法”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識(shí)可以關(guān)注創(chuàng)新互聯(lián)-成都網(wǎng)站建設(shè)公司網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實(shí)用文章!
網(wǎng)站欄目:MySQL表數(shù)據(jù)的導(dǎo)入與導(dǎo)出方法-創(chuàng)新互聯(lián)
當(dāng)前地址:http://chinadenli.net/article8/hjoip.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站設(shè)計(jì)、面包屑導(dǎo)航、云服務(wù)器、定制網(wǎng)站、網(wǎng)站維護(hù)、做網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容