欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

MySQL導(dǎo)入格式化數(shù)據(jù)的簡單方法

下文給大家?guī)鞰ySQL導(dǎo)入格式化數(shù)據(jù)的簡單方法有關(guān)內(nèi)容,相信大家一定看過類似的文章。我們給大家?guī)淼挠泻尾煌兀恳黄饋砜纯凑牟糠职桑嘈趴赐闙ySQL導(dǎo)入格式化數(shù)據(jù)的簡單方法你一定會有所收獲。                                                            

蒙城ssl適用于網(wǎng)站、小程序/APP、API接口等需要進行數(shù)據(jù)傳輸應(yīng)用場景,ssl證書未來市場廣闊!成為創(chuàng)新互聯(lián)的ssl證書銷售渠道,可以享受市場價格4-6折優(yōu)惠!如果有意向歡迎電話聯(lián)系或者加微信:18980820575(備注:SSL證書合作)期待與您的合作!

在有些場景下,我們需要把一批特定格式的數(shù)據(jù)導(dǎo)入到mysql數(shù)據(jù)庫中,做法有很多,使用shell腳本、python都可以,今天來介紹兩個更便捷的命令,mysqlimport 和 load data

mysqlimport

使用方法

mysqlimport [options] db_name textfile1 [textfile2 ...]
# db_name 對應(yīng)數(shù)據(jù)庫名稱
# textfile 文件名,對應(yīng)要插入的數(shù)據(jù)庫表名
# 比如:mysqlimport a8 campaign.txt 會把campaign.txt中的數(shù)據(jù)插入到a8數(shù)據(jù)庫中的campaign表

注意:campaign.txt文件必須在/usr/local/mysql/var/a8/目錄下,即數(shù)據(jù)庫所在目錄

如果不在對應(yīng)的目錄下,會返回以下錯誤:

mysqlimport -uroot -p123456 -hlocalhost -P3306 a8 campaign.txt 
/usr/local/mysql/bin/mysqlimport: Error: File '/usr/local/mysql/var/a8/campaign.txt' not found (Errcode: 2), when using table: campaign

常用選項

--columns=id,name,creator...
# 對應(yīng)的數(shù)據(jù)表列名,定義被導(dǎo)入文件中的每一列對應(yīng)的數(shù)據(jù)庫表列名

--fields-terminated-by=
# 文件字段以什么分隔,參數(shù)為字符串,默認為\t

--fields-enclosed-by=
# 數(shù)據(jù)域用什么符號擴起來,默認為空,一般可以是雙引號、括號等

--fields-optionally-enclosed-by=
# 數(shù)據(jù)域可以用什么符號括起來,因為為只有部分數(shù)據(jù)用這些符號括起來

--fields-escaped-by=
# 轉(zhuǎn)義字符,參數(shù)為字符,默認為\

--lines-terminated-by=
# 數(shù)據(jù)行以什么結(jié)束,參數(shù)為字符串,windows默認為\r\n

--user=user_name 或 -u user_name
--password=[password] 或 -p[password]
--host=host_name 或 -h hostname
--port=port_num,或 -P port_num
# 定義用戶名、密碼、mysql云服務(wù)器地址和用于連接的TCP/IP端口號,默認為mysql默認端口3306

--ignore-lines=n
# 忽視數(shù)據(jù)文件的前n行,因為很多數(shù)據(jù)文件前面有表頭

--delete -D
# 在把文件中的數(shù)據(jù)插入前刪除表中原先的數(shù)據(jù)

--local -L
# 指定從客戶端電腦讀入數(shù)據(jù)文件,否則從服務(wù)器電腦讀取

--lock-tables -l
# 處理文本文件前鎖定所有表以便寫入,確保所有表在服務(wù)器上保持同步

--protocol={TCP | SOCKET | PIPE | MEMORY}
使用的連接協(xié)議

--force -f
#忽視錯誤。例如,如果某個文本文件的表不存在,繼續(xù)處理其它文件,不使用--force,如果表不存在則mysqlimport退出

--compress -C
# 壓縮在客戶端和服務(wù)器之間發(fā)送的所有信息(如果二者均支持壓縮)

--silent,-s
# 沉默模式,只有出現(xiàn)錯誤時才輸出

--socket=path,-S path
# 當連接localhost時使用的套接字文件(為默認主機)

--verbose,-v
# 冗長模式。打印出程序操作的詳細信息。

--version,-V
# 顯示版本信息并退出。

load data

使用方法

mysql> load data [low_priority] [local] infile 'file_name txt' [replace | ignore]
into table tbl_name
[fields]
[terminated by '\t']
[OPTIONALLY] enclosed by '']
[escaped by '\' ]]
[lines terminated by 'n']
[ignore number lines]
[(id,name,creator)]

說明:

load data infile語句是將文本數(shù)據(jù)導(dǎo)入到數(shù)據(jù)表中。使用這個命令之前,mysqld進程(服務(wù))必須已經(jīng)在運行。使用前請確保有文件的讀取權(quán)限

1、如果你指定關(guān)鍵詞low_priority,那么MySQL將會等到?jīng)]有其他人讀這個表的時候,才把插入數(shù)據(jù)。可以使用如下的命令:

mysql> load data low_priority infile "/home/root/data.sql" into table campaign;

2、如果指定local關(guān)鍵詞,則表明從客戶主機讀文件。如果local沒指定,文件必須位于云服務(wù)器上。

3、replace和ignore關(guān)鍵詞控制對現(xiàn)有的唯一鍵記錄的重復(fù)的處理。如果你指定replace,新行將代替有相同的唯一鍵值的現(xiàn)有行。如果你指定ignore,跳過有唯一鍵的現(xiàn)有行的重復(fù)行的輸入。如果你不指定任何一個選項,當找到重復(fù)鍵時,出現(xiàn)一個錯誤,并且文本文件的余下部分被忽略。例如:

mysql> load data low_priority infile "/home/root/data.sql" replace into table campaign;

4、分隔符

1)fields關(guān)鍵字指定了文件字段的分割格式,如果用到這個關(guān)鍵字,MySQL剖析器希望看到至少有下面的一個選項:

terminated by:分隔符,字段是以什么字符作為分隔符
enclosed by:字段括起字符,例:` "周麗","10","學習很好" ` 這樣的一行,就需要這么寫 ` ENCLOSED BY '"' `
escaped by:轉(zhuǎn)義字符
lines terminated by:描述字段的分隔符,默認情況下是tab字符(\t) 
ignore number lines:用來忽略導(dǎo)入文件的開始的行。例如:number=1,則忽略導(dǎo)入文件的第一行數(shù)據(jù)。

例如:

mysql> load data infile "/home/root/data.sql" replace into table campaign fields terminated by',' enclosed by '"';

2)lines 關(guān)鍵字指定了每條記錄的分隔符默認為'n'即為換行符
如果兩個字段都指定了那fields必須在lines之前。如果不指定fields關(guān)鍵字缺省值和這樣寫是相同的:fields terminated by'\t' enclosed by ’ '' ‘ escaped by'\\'
如果你不指定一個lines子句,缺省值和這樣寫是相同的: lines terminated by'\n'
例如:

mysql> load data infile "/root/load.txt" replace into table test fields terminated by ',' lines terminated by '/n';

5、load data infile 可以按指定的列把文件導(dǎo)入到數(shù)據(jù)庫中。 當我們要把數(shù)據(jù)的一部分內(nèi)容導(dǎo)入的時候,,需要加入一些欄目(列/字段/field)到MySQL數(shù)據(jù)庫中,以適應(yīng)一些額外的需要。比方說,我們要從Access數(shù)據(jù)庫升級到MySQL數(shù)據(jù)庫的時候
下面的例子顯示了如何向指定的欄目(field)中導(dǎo)入數(shù)據(jù):

mysql> load data infile "/home/root/campaign.txt" into table campaign(id, name, creator);

6、當在云服務(wù)器主機上尋找文件時,云服務(wù)器使用下列規(guī)則:

● 如果給出一個絕對路徑名,云服務(wù)器使用該路徑名。

● 如果給出一個有一個或多個前置部件的相對路徑名,云服務(wù)器相對云服務(wù)器的數(shù)據(jù)目錄搜索文件。

● 如果給出一個沒有前置部件的一個文件名,云服務(wù)器在當前數(shù)據(jù)庫的數(shù)據(jù)庫目錄尋找文件。

例如: /campaign.txt 是從云服務(wù)器的數(shù)據(jù)目錄讀取,而作為 campaign.txt 是從當前數(shù)據(jù)庫的數(shù)據(jù)庫目錄下讀取。

對于上文關(guān)于MySQL導(dǎo)入格式化數(shù)據(jù)的簡單方法,大家覺得是自己想要的嗎?如果想要了解更多相關(guān),可以繼續(xù)關(guān)注我們的行業(yè)資訊板塊。

網(wǎng)站題目:MySQL導(dǎo)入格式化數(shù)據(jù)的簡單方法
分享網(wǎng)址:http://chinadenli.net/article32/gsgdpc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供做網(wǎng)站網(wǎng)頁設(shè)計公司關(guān)鍵詞優(yōu)化App設(shè)計定制網(wǎng)站網(wǎng)站內(nèi)鏈

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都做網(wǎng)站