這篇文章將為大家詳細(xì)講解有關(guān)MySQL中如何使用LOAD語句批量錄入數(shù)據(jù),文章內(nèi)容質(zhì)量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關(guān)知識有一定的了解。
在岳池等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強(qiáng)發(fā)展的系統(tǒng)性、市場前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務(wù)理念,為客戶提供網(wǎng)站建設(shè)、成都網(wǎng)站建設(shè) 網(wǎng)站設(shè)計制作按需求定制網(wǎng)站,公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),品牌網(wǎng)站建設(shè),全網(wǎng)整合營銷推廣,成都外貿(mào)網(wǎng)站建設(shè),岳池網(wǎng)站建設(shè)費用合理。
mysql怎么使用LOAD語句批量錄入數(shù)據(jù)
1、基本語法
語法:LOADDATA[LOCAL]INFILE'file_name.txt'[REPLACE|IGNORE]INTOTABLEtbl_nameLOADDATAINFILE語句從一個文該篇文章件中以很高的速度讀入一個表中。如果指定LOCAL關(guān)鍵詞,從客戶主機(jī)讀文件。如果LOCAL沒指定,文件必須位于服務(wù)器上。(LOCAL在MySQL3.22.6或以后版本中可用。)
為了安全原因,當(dāng)讀取位于服務(wù)器上的文該篇文章件時,文件必須處于數(shù)據(jù)庫目錄或可被所有人讀取。另外,為了對服務(wù)器上文件使用LOADDATAINFILE,在服務(wù)器主機(jī)上你必須有file的權(quán)限。見第七章數(shù)據(jù)庫安全。
REPLACE和IGNORE關(guān)鍵詞控制對現(xiàn)有的唯一鍵記錄的重復(fù)的處理。如果你指定REPLACE,新行將代替有相同的唯一鍵值的現(xiàn)有行。如果你指定IGNORE,跳過有唯一鍵的現(xiàn)有行的重復(fù)行的輸入。如果你不指定任何一個選項,當(dāng)找到重復(fù)鍵鍵時,出現(xiàn)一個錯誤,并且文該篇文章件的余下部分被忽略時。
如果你使用LOCAL關(guān)鍵詞從一個本地文件裝載數(shù)據(jù),服務(wù)器沒有辦法在操作的當(dāng)中停止文件的傳輸,因此缺省的行為好像IGNORE被指定一樣。
2、文件的搜尋原則
當(dāng)在服務(wù)器主機(jī)上尋找文件時,服務(wù)器使用下列規(guī)則:
如果給出一個絕對路徑名,服務(wù)器使用該路徑名。
如果給出一個有一個或多個前置部件的相對路徑名,服務(wù)器相對服務(wù)器的數(shù)據(jù)目錄搜索文件。
如果給出一個沒有前置部件的一個文件名,服務(wù)器在當(dāng)前數(shù)據(jù)庫的數(shù)據(jù)庫目錄尋找文件。
注意這些規(guī)則意味著一個像“./myfile.txt”給出的文件是從服務(wù)器的數(shù)據(jù)目錄讀取,而作為“myfile.txt”給出的一個文件是從當(dāng)前數(shù)據(jù)庫的數(shù)據(jù)庫目錄下讀取。也要注意,對于下列哪些語句,對db1文件從數(shù)據(jù)庫目錄讀取,而不是db2:
mysql>USEdb1;
mysql>LOADDATAINFILE"./data.txt"INTOTABLEdb2.my_table;
mysql怎么使用LOAD語句批量錄入數(shù)據(jù)
3、FIELDS和LINES子句的語法
如果你指定一個FIELDS子句,它的每一個子句(TERMINATEDBY,[OPTIONALLY]ENCLOSEDBY和ESCAPEDBY)也是可選的,除了你必須至少指定他們之一。
如果你不指定一個FIELDS子句,缺省值與如果你這樣寫的相同:
FIELDSTERMINATEDBY'\t'ENCLOSEDBY''ESCAPEDBY'\\'
如果你不指定一個LINES子句,缺省值與如果你這樣寫的相同:
LINESTERMINATEDBY'\n'
換句話說,缺省值導(dǎo)致讀取輸入時,LOADDATAINFILE表現(xiàn)如下:
在換行符處尋找行邊界
在定位符處將行分進(jìn)字段
不要期望字段由任何引號字符封裝
將由“\”開頭的定位符、換行符或“\”解釋是字段值的部分字面字符
LOADDATAINFILE能被用來讀取從外部來源獲得的文件。例如,以dBASE格式的文件將有由逗號分隔并用雙引號包圍的字段。如果文件中的行由換行符終止,下面顯示的命令說明你將用來裝載文件的字段和行處理選項:
mysql>LOADDATAINFILE'data.txt'INTOTABLEtbl_name
FIELDSTERMINATEDBY','ENCLOSEDBY'"'
LINESTERMINATEDBY'\n';
任何字段或行處理選項可以指定一個空字符串('')。如果不是空,F(xiàn)IELDS[OPTIONALLY]ENCLOSEDBY和FIELDSESCAPEDBY值必須是一個單個字符。FIELDSTERMINATEDBY和LINESTERMINATEDBY值可以是超過一個字符。例如,寫入由回車換行符對(CR+LF)終止的行,或讀取包含這樣行的一個文件,指定一個LINESTERMINATEDBY'\r\n'子句。
FIELDS[OPTIONALLY]ENCLOSEDBY控制字段的包圍字符。對于輸出(SELECT...INTOOUTFILE),如果你省略O(shè)PTIONALLY,所有的字段由ENCLOSEDBY字符包圍。對于這樣的輸出的一個例子(使用一個逗號作為字段分隔符)顯示在下面:
"1","astring","100.20"
"2","astringcontaininga,comma","102.20"
"3","astringcontaininga\"quote","102.20"
"4","astringcontaininga\",quoteandcomma","102.20"
如果你指定OPTIONALLY,ENCLOSEDBY字符僅被用于包圍CHAR和VARCHAR字段:
1,"astring",100.20
2,"astringcontaininga,comma",102.20
3,"astringcontaininga\"quote",102.20
4,"astringcontaininga\",quoteandcomma",102.20
注意,一個字段值中的ENCLOSEDBY字符的出現(xiàn)通過用ESCAPEDBY字符作為其前綴來轉(zhuǎn)義。也要注意,如果你指定一個空ESCAPEDBY值,可能產(chǎn)生不能被LOADDATAINFILE正確讀出的輸出。例如,如果轉(zhuǎn)義字符為空,上面顯示的輸出顯示如下。注意到在第四行的第二個字段包含跟隨引號的一個逗號,它(錯誤地)好象要終止字段:
1,"astring",100.20
2,"astringcontaininga,comma",102.20
3,"astringcontaininga"quote",102.20
4,"astringcontaininga",quoteandcomma",102.20
FIELDSESCAPEDBY控制如何寫入或讀出特殊字符。如果FIELDSESCAPEDBY字符不是空的,它被用于前綴在輸出上的下列字符:
FIELDSESCAPEDBY字符
FIELDS[OPTIONALLY]ENCLOSEDBY字符
FIELDSTERMINATEDBY和LINESTERMINATEDBY值的第一個字符
ASCII0(實際上將后續(xù)轉(zhuǎn)義字符寫成ASCII'0',而不是一個零值字節(jié))
如果FIELDSESCAPEDBY字符是空的,沒有字符被轉(zhuǎn)義。指定一個空轉(zhuǎn)義字符可能不是一個好主意,特別是如果在你數(shù)據(jù)中的字段值包含剛才給出的表中的任何字符。
對于輸入,如果FIELDSESCAPEDBY字符不是空的,該字符的出現(xiàn)被剝?nèi)ゲ⑶液罄m(xù)字符在字面上作為字段值的一個部分。例外是一個轉(zhuǎn)義的“0”或“N”(即,\0或\N,如果轉(zhuǎn)義字符是“\”)。這些序列被解釋為ASCII0(一個零值字節(jié))和NULL。見下面關(guān)于NULL處理的規(guī)則。
總結(jié)
為數(shù)據(jù)庫裝載數(shù)據(jù)是管理員的重要職責(zé)之一,正因為重要,所以MySQL提供的方法也是非常繁多。其中主要的在本節(jié)已經(jīng)列舉:
1、使用INSERT、REPLACE語句
2、使用INSERT/REPLACE…SELECT語句
3、使用LOADDATAINFILE語句
4、使用實用程序mysqlimport
關(guān)于mysql中如何使用LOAD語句批量錄入數(shù)據(jù)就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學(xué)到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
網(wǎng)頁名稱:mysql中如何使用LOAD語句批量錄入數(shù)據(jù)
鏈接分享:http://www.rwnh.cn/article38/pgecpp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供企業(yè)建站、靜態(tài)網(wǎng)站、定制開發(fā)、ChatGPT、網(wǎng)站排名、微信公眾號
聲明:本網(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)