load data infile
load data infile語句可以快速將文字記錄匯入到表中, select ... into outfile可以將表中資料匯入到檔案中,兩者的fields、lines子句語法相同。
執行語句的使用者需要有file許可權,且mysql使用者對資料檔案可讀。
mysqlimport也可以實現將文字檔案匯入到表中,mysqlimport也是向伺服器呼叫load data infile語句,--local選項可以讀取客戶端的檔案。
load data infile語法如下:
load data [low_priority | concurrent] [local] infile 'file_name'
[replace | ignore]
into table tbl_name
[partition (partition_name,...)]
[character set charset_name]
[[terminated by 'string']
[[optionally] enclosed by 'char']
[escaped by 'char']
[lines
[starting by 'string']
[terminated by 'string']
[ignore number ]
[(col_name_or_user_var,...)]
[set col_name = expr,...]
local
當指定local時,客戶端將讀取檔案傳送到伺服器作業系統的臨時目錄(非mysql臨時目錄),如空間不如將導致執行失敗。如未指定local,則會從伺服器讀取,相對路徑是相對於data_dir的路徑。
load data infile:當資料非法或資料唯一索引衝突將導致執行失敗。
load data local infile:因為伺服器端無法終止客戶端檔案傳送,當資料非法或資料唯一索引衝突時將會警告忽略錯誤繼續,類似ignore。
replace
出現資料唯一索引衝突將會替代現有的記錄
ignore
出現資料唯一索引衝突將會被忽略。如果ignore與replace都沒指定,則取決於local選項。如果local也沒有指定,則重複資料之後的檔案資料將被不會執行,如指定local,則會忽略衝突繼續執行。
ignore number lines
指定跳過檔案開頭的幾行記錄
load data infile用法:
預設load data infile的格式(不指定fields,lines選項)
fields terminated by '\t'
enclosed by ''
escaped by '\\'
lines terminated by '\n'
starting by ''
匯入csv檔案
load data infile 'data.txt' into table tbl_name
fields terminated by ',' enclosed by '"'
lines terminated by '\r\n'
ignore 1 lines;
匯入包含指定列的檔案
load data infile 'data.txt' into table tbl_name
fields terminated by ','
(column2,column3);
匯入檔案設定指定列的值
load data infile 'data.txt' into table tbl_name
fields terminated by ','
(column1,column2)
set column3 = current_timestamp;;
select ... into outfile
select ... into outfile會將查詢結果寫入到伺服器,因此需要有file許可權,同時需要對指定的路徑有寫入許可權,且指定檔案不能是伺服器已有檔案。
客戶端生成指定結果檔案可使用mysql -e "select ..." > file_name
select ... into outfile與load data infile的fields、lines子句語法相同。
option選項含義如下:
fields terminated by 'value'
設定字段之間的分隔字元,可以為單個或多個字元,預設為製表符'\t'
fields [optionally] enclosed by 'value'
設定欄位的包圍字元,只能為單個字元
fields escaped by 'value'
設定轉義字元,只能為單個字元,預設值為『\』
lines starting by 'value'
設定每行資料開頭的字元,可以為單個或多個字元,預設情況下不使用任何字元
lines terminated by 'value'
設定每行資料結尾的字元,可以為單個或多個字元,預設值為'\n',windows回車換行符為'\r\n'
匯出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目錄生成乙個tbl_name.sql表定義檔案和tbl_name.txt檔案表資料檔案,可以指定fields與lines選項指定生成資料檔案的格式。
mysql 匯入匯出表 mysql 匯出,匯入資料
windows下匯出mysql資料庫中的資料 1.mysql桌面管理工具,使用 select into outfile 語句匯出資料 1.1 進入管理工具後,選中要匯出的資料庫,右擊,選擇命令列頁面進入 1.2 輸入select from 表名into outfile 檔名 select from ...
MySQL 匯入匯出表
參考文章 表結構匯出 使用mysql的mysqldump匯出和匯入表 命令如下 mysqldump d h localhost u root pmypassword databasename dumpfile.sql 其中 d 表示只匯出表結構,不匯出資料,h 表示host,u表示使用者,p表示密碼...
mysql 表的匯出和匯入
表的匯出和匯入 select into outfile 匯出文字檔案,該方法只能匯出到資料庫伺服器上,並且匯出檔案不能已存在。mysql select into outfile filename options mysql select from test.person into outfile c...