中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

mysql中如何使用LOAD語句批量錄入數據

發布時間:2021-07-24 17:22:24 來源:億速云 閱讀:341 作者:Leah 欄目:數據庫

這篇文章將為大家詳細講解有關mysql中如何使用LOAD語句批量錄入數據,文章內容質量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關知識有一定的了解。

  mysql怎么使用LOAD語句批量錄入數據

  1、基本語法

  語法:LOADDATA[LOCAL]INFILE'file_name.txt'[REPLACE|IGNORE]INTOTABLEtbl_nameLOADDATAINFILE語句從一個文該篇文章件中以很高的速度讀入一個表中。如果指定LOCAL關鍵詞,從客戶主機讀文件。如果LOCAL沒指定,文件必須位于服務器上。(LOCAL在MySQL3.22.6或以后版本中可用。)

  為了安全原因,當讀取位于服務器上的文該篇文章件時,文件必須處于數據庫目錄或可被所有人讀取。另外,為了對服務器上文件使用LOADDATAINFILE,在服務器主機上你必須有file的權限。見第七章數據庫安全。

  REPLACE和IGNORE關鍵詞控制對現有的唯一鍵記錄的重復的處理。如果你指定REPLACE,新行將代替有相同的唯一鍵值的現有行。如果你指定IGNORE,跳過有唯一鍵的現有行的重復行的輸入。如果你不指定任何一個選項,當找到重復鍵鍵時,出現一個錯誤,并且文該篇文章件的余下部分被忽略時。

  如果你使用LOCAL關鍵詞從一個本地文件裝載數據,服務器沒有辦法在操作的當中停止文件的傳輸,因此缺省的行為好像IGNORE被指定一樣。

  2、文件的搜尋原則

  當在服務器主機上尋找文件時,服務器使用下列規則:

  如果給出一個絕對路徑名,服務器使用該路徑名。

  如果給出一個有一個或多個前置部件的相對路徑名,服務器相對服務器的數據目錄搜索文件。

  如果給出一個沒有前置部件的一個文件名,服務器在當前數據庫的數據庫目錄尋找文件。

  注意這些規則意味著一個像“./myfile.txt”給出的文件是從服務器的數據目錄讀取,而作為“myfile.txt”給出的一個文件是從當前數據庫的數據庫目錄下讀取。也要注意,對于下列哪些語句,對db1文件從數據庫目錄讀取,而不是db2:

  mysql>USEdb1;

  mysql>LOADDATAINFILE"./data.txt"INTOTABLEdb2.my_table;

  mysql怎么使用LOAD語句批量錄入數據

  3、FIELDS和LINES子句的語法

  如果你指定一個FIELDS子句,它的每一個子句(TERMINATEDBY,[OPTIONALLY]ENCLOSEDBY和ESCAPEDBY)也是可選的,除了你必須至少指定他們之一。

  如果你不指定一個FIELDS子句,缺省值與如果你這樣寫的相同:

  FIELDSTERMINATEDBY'\t'ENCLOSEDBY''ESCAPEDBY'\\'

  如果你不指定一個LINES子句,缺省值與如果你這樣寫的相同:

  LINESTERMINATEDBY'\n'

  換句話說,缺省值導致讀取輸入時,LOADDATAINFILE表現如下:

  在換行符處尋找行邊界

  在定位符處將行分進字段

  不要期望字段由任何引號字符封裝

  將由“\”開頭的定位符、換行符或“\”解釋是字段值的部分字面字符

  LOADDATAINFILE能被用來讀取從外部來源獲得的文件。例如,以dBASE格式的文件將有由逗號分隔并用雙引號包圍的字段。如果文件中的行由換行符終止,下面顯示的命令說明你將用來裝載文件的字段和行處理選項:

  mysql>LOADDATAINFILE'data.txt'INTOTABLEtbl_name

  FIELDSTERMINATEDBY','ENCLOSEDBY'"'

  LINESTERMINATEDBY'\n';

  任何字段或行處理選項可以指定一個空字符串('')。如果不是空,FIELDS[OPTIONALLY]ENCLOSEDBY和FIELDSESCAPEDBY值必須是一個單個字符。FIELDSTERMINATEDBY和LINESTERMINATEDBY值可以是超過一個字符。例如,寫入由回車換行符對(CR+LF)終止的行,或讀取包含這樣行的一個文件,指定一個LINESTERMINATEDBY'\r\n'子句。

  FIELDS[OPTIONALLY]ENCLOSEDBY控制字段的包圍字符。對于輸出(SELECT...INTOOUTFILE),如果你省略OPTIONALLY,所有的字段由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字符的出現通過用ESCAPEDBY字符作為其前綴來轉義。也要注意,如果你指定一個空ESCAPEDBY值,可能產生不能被LOADDATAINFILE正確讀出的輸出。例如,如果轉義字符為空,上面顯示的輸出顯示如下。注意到在第四行的第二個字段包含跟隨引號的一個逗號,它(錯誤地)好象要終止字段:

  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(實際上將后續轉義字符寫成ASCII'0',而不是一個零值字節)

  如果FIELDSESCAPEDBY字符是空的,沒有字符被轉義。指定一個空轉義字符可能不是一個好主意,特別是如果在你數據中的字段值包含剛才給出的表中的任何字符。

  對于輸入,如果FIELDSESCAPEDBY字符不是空的,該字符的出現被剝去并且后續字符在字面上作為字段值的一個部分。例外是一個轉義的“0”或“N”(即,\0或\N,如果轉義字符是“\”)。這些序列被解釋為ASCII0(一個零值字節)和NULL。見下面關于NULL處理的規則。

  總結

  為數據庫裝載數據是管理員的重要職責之一,正因為重要,所以MySQL提供的方法也是非常繁多。其中主要的在本節已經列舉:

  1、使用INSERT、REPLACE語句

  2、使用INSERT/REPLACE…SELECT語句

  3、使用LOADDATAINFILE語句

  4、使用實用程序mysqlimport

關于mysql中如何使用LOAD語句批量錄入數據就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

罗田县| 古浪县| 石棉县| 都江堰市| 武定县| 社旗县| 北京市| 雅江县| 山西省| 全州县| 海晏县| 汕头市| 蓬莱市| 三门峡市| 三河市| 枣庄市| 汽车| 孟津县| 时尚| 隆化县| 高雄市| 高碑店市| 文成县| 镇雄县| 龙南县| 望江县| 西丰县| 孟村| 尼木县| 江西省| 建阳市| 沛县| 天津市| 三亚市| 临邑县| 高青县| 定陶县| 钦州市| 准格尔旗| 沙坪坝区| 霸州市|