mysql表的匯出匯入 MySQL表資料匯入與匯出

2021-10-17 13:25:49 字數 2868 閱讀 4865

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...