成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

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

數據庫 MySQL
如果你需要向一個表中添加許多條記錄,使用SQL語句輸入數據是很不方便的。幸運的是,MySQL提供了一些方法用于批量錄入數據,使得向表中添加數據變得容易了。

mysql數據庫在數據庫市場中雖然不是功能性最為強大的,但是mysql數據庫仍占據著一定的地位,是很受歡迎的,本文中將為大家介紹mysql使用LOAD語句批量錄入數據。

1、基本語法

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

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

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

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

2、文件的搜尋原則

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

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

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

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

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

mysql> USE db1;
mysql> LOAD DATA INFILE "./data.txt" INTO TABLE db2.my_table;

3、FIELDS和LINES子句的語法

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

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

FIELDS TERMINATED BY '\t' ENCLOSED BY '' ESCAPED BY '\\'

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

LINES TERMINATED BY '\n'

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

在換行符處尋找行邊界

在定位符處將行分進字段

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

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

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

mysql> LOAD DATA INFILE 'data.txt' INTO TABLE tbl_name

FIELDS TERMINATED BY ',' ENCLOSED BY '"'

LINES TERMINATED BY '\n';

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

FIELDS [OPTIONALLY] ENCLOSED BY控制字段的包圍字符。對于輸出(SELECT ... INTO OUTFILE),如果你省略OPTIONALLY,所有的字段由ENCLOSED BY字符包圍。對于這樣的輸出的一個例子(使用一個逗號作為字段分隔符)顯示在下面:

"1","a string","100.20"

"2","a string containing a , comma","102.20"

"3","a string containing a \" quote","102.20"

"4","a string containing a \", quote and comma","102.20"

如果你指定OPTIONALLY,ENCLOSED BY字符僅被用于包圍CHAR和VARCHAR字段:

1,"a string",100.20

2,"a string containing a , comma",102.20

3,"a string containing a \" quote",102.20

4,"a string containing a \", quote and comma",102.20

注意,一個字段值中的ENCLOSED BY字符的出現通過用ESCAPED BY字符作為其前綴來轉義。也要注意,如果你指定一個空ESCAPED BY值,可能產生不能被LOAD DATA INFILE正確讀出的輸出。例如,如果轉義字符為空,上面顯示的輸出顯示如下。注意到在第四行的第二個字段包含跟隨引號的一個逗號,它(錯誤地)好象要終止字段:

1,"a string",100.20

2,"a string containing a , comma",102.20

3,"a string containing a " quote",102.20

4,"a string containing a ", quote and comma",102.20

FIELDS ESCAPED BY控制如何寫入或讀出特殊字符。如果FIELDS ESCAPED BY字符不是空的,它被用于前綴在輸出上的下列字符:

FIELDS ESCAPED BY字符

FIELDS [OPTIONALLY] ENCLOSED BY字符

FIELDS TERMINATED BY和LINES TERMINATED BY值的第一個字符

ASCII 0(實際上將后續轉義字符寫成 ASCII'0',而不是一個零值字節)

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

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

總結

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

1、使用INSERT、REPLACE語句

2、使用INSERT/REPLACE…SELECT語句

3、使用LOAD DATA INFILE語句

4、使用實用程序mysqlimport

關于mysql使用LOAD語句批量錄入數據的知識就為大家介紹到這,知識是在不斷更新的,如果大家有更好的方法,歡迎與大家分享。

【編輯推薦】

  1. 理清mysql外鏈的含義和命令
  2. MySQL數據庫中數據被刪除后的恢復
  3. MySQL數據庫中的安全解決方案

 

責任編輯:迎迎 來源: 中國站長站綜合
相關推薦

2025-02-05 09:32:58

2010-10-12 13:55:41

MySQL EXPLA

2010-11-24 11:13:07

MySQL批量導入

2011-04-12 14:48:38

MySQL數據庫

2010-09-02 16:46:18

SQL刪除

2011-07-22 16:59:30

MySQL數據庫嵌套查詢

2021-06-28 10:25:47

MySQL語句接口

2021-06-28 10:00:32

JDBC數據庫MySQL

2010-09-25 14:59:54

SQL語句

2011-04-06 13:40:48

Delphi

2010-10-08 16:01:17

mysql UPDAT

2018-06-04 09:47:45

MES

2022-09-29 10:06:56

SQLMySQL服務端

2010-10-08 16:10:58

MySQL creat

2010-10-08 15:54:34

mysql中case

2016-12-15 09:17:30

easyui form數據方法

2022-04-10 19:55:09

OpenELB云原生

2021-04-08 10:55:53

MySQL數據庫代碼

2010-10-08 16:49:01

MySQL alter

2011-07-28 14:31:47

SQL Server數存儲過程
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 亚洲成人av | 免费一级黄色录像 | 91在线精品播放 | 久热精品免费 | 国产黄色在线观看 | 欧美一区不卡 | 美女久久视频 | 北条麻妃99精品青青久久 | 国产a视频| 美国一级黄色片 | 亚洲网站在线观看 | 国产成人精品免高潮在线观看 | 中文字幕在线视频观看 | 69精品久久久久久 | 青草久久免费视频 | 亚洲97| 麻豆久久久久久久 | 国产精品日韩欧美一区二区三区 | 一级黄色片一级黄色片 | av国产在线观看 | 日韩成人高清在线 | 完全免费在线视频 | 日本三级电影免费 | 成人国产精品久久久 | 国产精品久久久久久影院8一贰佰 | 欧美日韩久久 | 欧美精品成人一区二区三区四区 | 日本精品视频一区二区 | 欧美一区二区三区在线视频 | 免费久久99精品国产婷婷六月 | 亚洲精品视频一区 | 女女百合av大片一区二区三区九县 | 欧美中文字幕 | japanhd成人 | 国产成人网| 日韩高清一区 | 欧美成人久久 | 91视频网址 | 欧美一区二区三区 | 日本超碰 | 在线观看中文字幕dvd播放 |