下文給大家?guī)?lái)MySQL導(dǎo)入格式化數(shù)據(jù)的簡(jiǎn)單方法有關(guān)內(nèi)容,相信大家一定看過(guò)類似的文章。我們給大家?guī)?lái)的有何不同呢?一起來(lái)看看正文部分吧,相信看完MySQL導(dǎo)入格式化數(shù)據(jù)的簡(jiǎn)單方法你一定會(huì)有所收獲。
創(chuàng)新互聯(lián)成立十余年來(lái),這條路我們正越走越好,積累了技術(shù)與客戶資源,形成了良好的口碑。為客戶提供成都網(wǎng)站設(shè)計(jì)、網(wǎng)站制作、網(wǎng)站策劃、網(wǎng)頁(yè)設(shè)計(jì)、主機(jī)域名、網(wǎng)絡(luò)營(yíng)銷、VI設(shè)計(jì)、網(wǎng)站改版、漏洞修補(bǔ)等服務(wù)。網(wǎng)站是否美觀、功能強(qiáng)大、用戶體驗(yàn)好、性價(jià)比高、打開快等等,這些對(duì)于網(wǎng)站建設(shè)都非常重要,創(chuàng)新互聯(lián)通過(guò)對(duì)建站技術(shù)性的掌握、對(duì)創(chuàng)意設(shè)計(jì)的研究為客戶提供一站式互聯(lián)網(wǎng)解決方案,攜手廣大客戶,共同發(fā)展進(jìn)步。在有些場(chǎng)景下,我們需要把一批特定格式的數(shù)據(jù)導(dǎo)入到mysql數(shù)據(jù)庫(kù)中,做法有很多,使用shell腳本、python都可以,今天來(lái)介紹兩個(gè)更便捷的命令,mysqlimport 和 load data
mysqlimport
使用方法
mysqlimport [options] db_name textfile1 [textfile2 ...] # db_name 對(duì)應(yīng)數(shù)據(jù)庫(kù)名稱 # textfile 文件名,對(duì)應(yīng)要插入的數(shù)據(jù)庫(kù)表名 # 比如:mysqlimport a8 campaign.txt 會(huì)把campaign.txt中的數(shù)據(jù)插入到a8數(shù)據(jù)庫(kù)中的campaign表
注意:campaign.txt文件必須在/usr/local/mysql/var/a8/目錄下,即數(shù)據(jù)庫(kù)所在目錄
如果不在對(duì)應(yīng)的目錄下,會(huì)返回以下錯(cuò)誤:
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
常用選項(xiàng)
--columns=id,name,creator... # 對(duì)應(yīng)的數(shù)據(jù)表列名,定義被導(dǎo)入文件中的每一列對(duì)應(yīng)的數(shù)據(jù)庫(kù)表列名 --fields-terminated-by= # 文件字段以什么分隔,參數(shù)為字符串,默認(rèn)為\t --fields-enclosed-by= # 數(shù)據(jù)域用什么符號(hào)擴(kuò)起來(lái),默認(rèn)為空,一般可以是雙引號(hào)、括號(hào)等 --fields-optionally-enclosed-by= # 數(shù)據(jù)域可以用什么符號(hào)括起來(lái),因?yàn)闉橹挥胁糠謹(jǐn)?shù)據(jù)用這些符號(hào)括起來(lái) --fields-escaped-by= # 轉(zhuǎn)義字符,參數(shù)為字符,默認(rèn)為\ --lines-terminated-by= # 數(shù)據(jù)行以什么結(jié)束,參數(shù)為字符串,windows默認(rèn)為\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端口號(hào),默認(rèn)為mysql默認(rèn)端口3306 --ignore-lines=n # 忽視數(shù)據(jù)文件的前n行,因?yà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 #忽視錯(cuò)誤。例如,如果某個(gè)文本文件的表不存在,繼續(xù)處理其它文件,不使用--force,如果表不存在則mysqlimport退出 --compress -C # 壓縮在客戶端和服務(wù)器之間發(fā)送的所有信息(如果二者均支持壓縮) --silent,-s # 沉默模式,只有出現(xiàn)錯(cuò)誤時(shí)才輸出 --socket=path,-S path # 當(dāng)連接localhost時(shí)使用的套接字文件(為默認(rèn)主機(jī)) --verbose,-v # 冗長(zhǎng)模式。打印出程序操作的詳細(xì)信息。 --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)]
說(shuō)明:
load data infile語(yǔ)句是將文本數(shù)據(jù)導(dǎo)入到數(shù)據(jù)表中。使用這個(gè)命令之前,mysqld進(jìn)程(服務(wù))必須已經(jīng)在運(yùn)行。使用前請(qǐng)確保有文件的讀取權(quán)限
1、如果你指定關(guān)鍵詞low_priority,那么MySQL將會(huì)等到?jīng)]有其他人讀這個(gè)表的時(shí)候,才把插入數(shù)據(jù)??梢允褂萌缦碌拿睿?/p>
mysql> load data low_priority infile "/home/root/data.sql" into table campaign;
2、如果指定local關(guān)鍵詞,則表明從客戶主機(jī)讀文件。如果local沒指定,文件必須位于云服務(wù)器上。
3、replace和ignore關(guān)鍵詞控制對(duì)現(xiàn)有的唯一鍵記錄的重復(fù)的處理。如果你指定replace,新行將代替有相同的唯一鍵值的現(xiàn)有行。如果你指定ignore,跳過(guò)有唯一鍵的現(xiàn)有行的重復(fù)行的輸入。如果你不指定任何一個(gè)選項(xiàng),當(dāng)找到重復(fù)鍵時(shí),出現(xiàn)一個(gè)錯(cuò)誤,并且文本文件的余下部分被忽略。例如:
mysql> load data low_priority infile "/home/root/data.sql" replace into table campaign;
4、分隔符
1)fields關(guān)鍵字指定了文件字段的分割格式,如果用到這個(gè)關(guān)鍵字,MySQL剖析器希望看到至少有下面的一個(gè)選項(xiàng):
terminated by:分隔符,字段是以什么字符作為分隔符 enclosed by:字段括起字符,例:` "周麗","10","學(xué)習(xí)很好" ` 這樣的一行,就需要這么寫 ` ENCLOSED BY '"' ` escaped by:轉(zhuǎn)義字符 lines terminated by:描述字段的分隔符,默認(rèn)情況下是tab字符(\t) ignore number lines:用來(lái)忽略導(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)鍵字指定了每條記錄的分隔符默認(rèn)為'n'即為換行符
如果兩個(gè)字段都指定了那fields必須在lines之前。如果不指定fields關(guān)鍵字缺省值和這樣寫是相同的:fields terminated by'\t' enclosed by ’ '' ‘ escaped by'\\'
如果你不指定一個(gè)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ù)庫(kù)中。 當(dāng)我們要把數(shù)據(jù)的一部分內(nèi)容導(dǎo)入的時(shí)候,,需要加入一些欄目(列/字段/field)到MySQL數(shù)據(jù)庫(kù)中,以適應(yīng)一些額外的需要。比方說(shuō),我們要從Access數(shù)據(jù)庫(kù)升級(jí)到MySQL數(shù)據(jù)庫(kù)的時(shí)候
下面的例子顯示了如何向指定的欄目(field)中導(dǎo)入數(shù)據(jù):
mysql> load data infile "/home/root/campaign.txt" into table campaign(id, name, creator);
6、當(dāng)在云服務(wù)器主機(jī)上尋找文件時(shí),云服務(wù)器使用下列規(guī)則:
● 如果給出一個(gè)絕對(duì)路徑名,云服務(wù)器使用該路徑名。
● 如果給出一個(gè)有一個(gè)或多個(gè)前置部件的相對(duì)路徑名,云服務(wù)器相對(duì)云服務(wù)器的數(shù)據(jù)目錄搜索文件。
● 如果給出一個(gè)沒有前置部件的一個(gè)文件名,云服務(wù)器在當(dāng)前數(shù)據(jù)庫(kù)的數(shù)據(jù)庫(kù)目錄尋找文件。
例如: /campaign.txt 是從云服務(wù)器的數(shù)據(jù)目錄讀取,而作為 campaign.txt 是從當(dāng)前數(shù)據(jù)庫(kù)的數(shù)據(jù)庫(kù)目錄下讀取。
對(duì)于上文關(guān)于MySQL導(dǎo)入格式化數(shù)據(jù)的簡(jiǎn)單方法,大家覺得是自己想要的嗎?如果想要了解更多相關(guān),可以繼續(xù)關(guān)注我們的行業(yè)資訊板塊。
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。
文章標(biāo)題:MySQL導(dǎo)入格式化數(shù)據(jù)的簡(jiǎn)單方法-創(chuàng)新互聯(lián)
標(biāo)題網(wǎng)址:http://www.rwnh.cn/article6/gdhig.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供軟件開發(fā)、域名注冊(cè)、定制開發(fā)、關(guān)鍵詞優(yōu)化、營(yíng)銷型網(wǎng)站建設(shè)、面包屑導(dǎo)航
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(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)容