亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

mysql load操作

系統 1863 0

load的語法

          
            LOAD
          
           DATA 
          
            [
          
          
            LOW_PRIORITY | CONCURRENT
          
          
            ]
          
          
            [
          
          
            LOCAL
          
          
            ]
          
           INFILE 
          
            '
          
          
            file_name.txt
          
          
            '
          
          
            [
          
          
            REPLACE | IGNORE
          
          
            ]
          
          
            INTO
          
          
            TABLE
          
          
             tbl_name
    
          
          
            [
          
          
            FIELDS
        [TERMINATED BY 'string'
          
          
            ]
          
          
            [
          
          
            [OPTIONALLY
          
          
            ]
          
           ENCLOSED 
          
            BY
          
          
            '
          
          
            char
          
          
            '
          
          
            ]
        
          
          
            [
          
          
            ESCAPED BY 'char' 
          
          
            ]
          
          
            
    ]
    
          
          
            [
          
          
            LINES
        [STARTING BY 'string'
          
          
            ]
          
          
            [
          
          
            TERMINATED BY 'string'
          
          
            ]
          
          
            
    ]
    
          
          
            [
          
          
            IGNORE number LINES
          
          
            ]
          
          
            [
          
          
            (col_name_or_user_var,...)
          
          
            ]
          
          
            [
          
          
            SET col_name = expr,...)
          
          
            ]
          
        

LOAD DATA INFILE 語句用于高速地從一個文本文件中讀取行,并裝入一個表中。文件名稱必須為一個文字字符串。

character_set_database 系統變量指示的字符集被用于解釋文件中的信息。 SET NAMES character_set_client 的設置不會影響對輸入的解釋。

典型的示例

          
            LOAD
          
           DATA LOCAL INFILE 
          
            '
          
          
            data.txt
          
          
            '
          
          
            INTO
          
          
            TABLE
          
          
             tbl_name 
FIELDS TERMINATED 
          
          
            BY
          
          
            '
          
          
            ,
          
          
            '
          
          
             
OPTIONALLY ENCLOSED 
          
          
            BY
          
          
            '
          
          
            "
          
          
            '
          
          
             
LINES TERMINATED 
          
          
            BY
          
          
            '
          
          
            \n
          
          
            '
          
        

如果您只想載入一個表的部分列,則應指定一個列清單:

          
            LOAD
          
           DATA LOCAL INFILE 
          
            '
          
          
            persondata.txt
          
          
            '
          
          
            INTO
          
          
            TABLE
          
           persondata (col1,col2);
        

?

文件的路徑

如果指定了 LOCAL ,則被認為與連接的客戶端有關:

  • ? 如果指定了 LOCAL ,則文件會被客戶主機上的客戶端讀取,并被發送到服務器。文件會被給予一個完整的路徑名稱,以指定確切的位置。如果給定的是一個相對的路徑名稱,則此名稱會被理解為相對于啟動客戶端時所在的目錄。
  • ? 如果 LOCAL 沒有被指定,則文件必須位于服務器主機上,并且被服務器直接讀取。

當在服務器主機上為文件定位時,服務器使用以下規則:

  • 如果給定了一個絕對的路徑名稱,則服務器使用此路徑名稱。
  • 如果給定了帶有一個或多個引導組件的相對路徑名稱,則服務器會搜索相對于服務器數據目錄的文件。
  • 如果給定了一個不帶引導組件的文件名稱,則服務器會在默認數據庫的數據庫目錄中尋找文件。

注意,這些規則意味著名為 ./myfile.txt 的文件會從服務器數據目錄中被讀取,而名為 myfile.txt 的同樣的文件會從默認數據庫的數據庫目錄中讀取。

?

從客戶端使用絕對路徑load數據

          
            LOAD
          
           DATA LOCAL INFILE 
          
            '
          
          
            /import/data.txt
          
          
            '
          
          
            INTO
          
          
            TABLE
          
           db2.my_table;
        

?

從服務器里使用相對路徑load數據

下面的LOAD DATA語句會從db1數據庫目錄中讀取文件data.txt,因為db1是當前數據庫。即使語句明確把文件載入到db2數據庫中的表里,也會從db1目錄中讀取。

          
            USE
          
          
             db1;

          
          
            LOAD
          
           DATA INFILE 
          
            '
          
          
            data.txt
          
          
            '
          
          
            INTO
          
          
            TABLE
          
           db2.my_table;
        

?

IGNORE? number ?LINES選項

IGNORE? number ?LINES選項可以被用于在文件的開始處忽略行。

您可以使用IGNORE 1 LINES來跳過一個包含列名稱的起始標題行:

          
            LOAD
          
           DATA INFILE 
          
            '
          
          
            /tmp/test.txt
          
          
            '
          
          
            INTO
          
          
            TABLE
          
           test IGNORE 
          
            1
          
           LINES;
        

?

REPLACE和IGNORE

有些輸入記錄把原有的記錄復制到唯一關鍵字值上。 REPLACE IGNORE 關鍵字用于控制這些輸入記錄的操作。

如果您指定了 REPLACE ,則輸入行會替換原有行(換句話說,與原有行一樣,對一個主索引或唯一索引具有相同值的行)。

如果您指定 IGNORE ,則把原有行復制到唯一關鍵字值的輸入行被跳過。

?

如果您這兩個選項都不指定,則運行情況根據 LOCAL 關鍵詞是否被指定而定。不使用 LOCAL 時,當出現重復關鍵字值時,會發生錯誤,并且剩下的文本文件被忽略。使用 LOCAL 時,默認的運行情況和 IGNORE 被指定時的情況相同;這是因為在運行中間,服務器沒有辦法中止文件的傳輸。

?

索引的影響

如果您對一個空的 MyISAM 表使用 LOAD DATA INFILE ,則所有的非唯一索引會被創建在一個獨立批中(對于 REPAIR TABLE )。當您有許多索引時,這通常會使 LOAD DATA INFILE 大大加快。通常, LOAD DATA INFILE 的速度會非???,但是在某些極端情況下,您可以在把文件載入到表中之前使用 ALTER TABLE...DISABLE KEYS 關閉 LOAD DATA INFILE ,或者在載入文件之后使用 ALTER TABLE...ENABLE KEYS 再次創建索引,使創建索引的速度更快。

?

FIELDS和LINES的默認值

如果您不指定 FIELDS 子句,則默認值為假設您寫下如下語句時的值:

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

如果您不指定 LINES 子句,則默認值為假設您寫下如下語句時的值:

          LINES TERMINATED 
          
            BY
          
          
            '
          
          
            \n
          
          
            '
          
           STARTING 
          
            BY
          
          
            ''
          
        

換句話說,當讀取輸入值時,默認值會使 LOAD DATA INFILE 按如下方式運行:

          
            在新行處尋找行的邊界。
不會跳過任何行前綴。
在制表符處把行分解為字段。
不希望字段被包含在任何引號字符之中。
出現制表符、新行、或在‘\’前有‘\’時,理解為作為字段值一部分的文字字符。
          
        

相反的,當編寫輸出值時,默認值會使 SELECT...INTO OUTFILE 按如下方式運行:

          
            在字段之間寫入制表符。
不把字段包含在任何引號字符中。
當字段值中出現制表符、新行或‘\’時,使用‘\’進行轉義。
在行的末端寫入新行。
          
        

注意,要寫入 FIELDS ESCAPED BY? \\ ’,您必須為待讀取的值指定兩個反斜杠,作為一個單反斜杠使用。

備注: 如果您已經在 Windows 系統中生成了文本文件,您可能必須使用 LINES TERMINATED BY? \r\n ’來正確地讀取文件,因為 Windows 程序通常使用兩個字符作為一個行終止符。部分程序 ,當編寫文件時,可能會使用 \r 作為行終止符。要讀取這樣的文件,應使用 LINES TERMINATED BY? \r ’。

?

STARTING??LINES選項

如果所有您希望讀入的行都含有一個您希望忽略的共用前綴,則您可以使用 ' prefix_string ' 來跳過前綴(和前綴前的字符)。如果某行不包括前綴,則整個行被跳過。注釋: prefix_string 會出現在一行的中間。

以下面的test.txt為文件源

          xxx"row",
          
            1
          
          
            
something xxx"row",
          
          
            2
          
        

使用以下sql導入數據

          
            LOAD
          
           DATA INFILE 
          
            '
          
          
            /tmp/test.txt
          
          
            '
          
          
            INTO
          
          
            TABLE
          
           test LINES STARTING 
          
            BY
          
           "xxx";
        

最后 并只得到數據 ("row",1) ("row",2)

?

TERMINATED?LINES選項

如果 jokes 被由 %% 組成的行分隔, 要讀取包含 jokes 的文件,您可以這么操作:

          
            LOAD
          
           DATA INFILE 
          
            '
          
          
            /tmp/jokes.txt
          
          
            '
          
          
            INTO
          
          
            TABLE
          
           jokes FIELDS TERMINATED 
          
            BY
          
          
            ''
          
           LINES TERMINATED 
          
            BY
          
          
            '
          
          
            \n%%\n
          
          
            '
          
           (joke);
        

?

TERMINATED,ENCLOSED,ESCAPED FIELD選項

TERMINATED用于控制字段的分隔符,可以為多個字符。

ENCLOSED BY用于用于控制字段的引號, 必須為單一字符, 如果您忽略了詞語 OPTIONALLY ,則所有的字段都被包含在 ENCLOSED BY 字符串中, 如果您指定了 OPTINALLY ,則 ENCLOSED BY 字符只被用于包含具有字符串數據類型(比如 CHAR, BINARY, TEXT ENUM )的列中的值.

SELECT...INTO OUTFILE導出數據, ENCLOSED BY '"',忽略OPTIONALLY

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

SELECT...INTO OUTFILE導出數據,ENCLOSED BY '"',指定OPTIONALLY

          
            1
          
          ,"a string",
          
            100.20
          
        

ESCAPED BY用于轉義,FIELDS ESCAPED BY值必須為單一字符。

如果 FIELDS ESCAPED BY 字符為空字符,則沒有字符被轉義,并且 NULL 被作為 NULL 輸出,而不是 \N 。去指定一個空的轉義符不是一個好辦法,特別是如果數據的字段值包含任何剛給定的清單中的字符時,更不能這么做。

如果在字段值內出現 ENCLOSED BY 字符,則通過使用 ESCAPED BY 字符作為前綴,對 ENCLOSED BY 字符進行轉義。

?

轉自? http://dev.mysql.com/doc/refman/5.1/zh/sql-syntax.html#load-data

mysql load操作


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦?。。?/p>

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 久青草国产手机在线视频 | 激情综合五月亚洲婷婷 | 精品久久久久久中文字幕女 | 国产精品久久久久久久久kt | 欧美日本在线一区二区三区 | 在线韩日| 久久99影院| 四虎在线免费 | 亚州一级毛片在线 | 国产日产亚洲精品 | 成视频年人黄网站免费视频 | 一区二区日韩 | 欧美大屁股精品毛片视频 | 亚洲一区二区久久 | 国产一区福利 | 国产午夜精品久久久久 | 88国产经典欧美一区二区三区 | 国产精品99精品久久免费 | 青草青视频在线观看 | 99精品国产福利在线观看 | 天堂伊人网 | 女孕学护士一级毛片 | 久久国产欧美 | 久久天堂一区二区三区 | 亚洲国产精品一区二区久久 | 亚洲专区第一页 | 深夜网站在线 | 欧美一级特黄特黄毛片 | 六月婷婷中文字幕 | 亚洲国产精品不卡毛片a在线 | 欧美猛交xxxxx | 一级毛片高清大全免费观看 | 亚洲国产综合视频 | 日本三级11k影院在线 | 99视频国产精品 | 精品免费tv久久久久久久 | 成人夜色视频网站在线观看 | 91精品国产麻豆国产自产在线 | 大学生一级毛片免费看真人 | 亚洲欧美一区二区三区九九九 | 国产美女亚洲精品久久久毛片 |