load out mysql,快速的mysql导入导出数据(load data和outfile)
當讀取位于服務器上的文本文件時,文件必須處于數據庫目錄或可被所有人讀取。
1? 指定關鍵詞low_priority,MySQL將會等到沒有其他人讀這個表的時候,才把插入數據。可以使用如下的命令:
load?data??low_priority?infile?"/home/mark/data?sql"?into?table table_name;
2? 指定local關鍵詞,則表明從客戶主機讀文件。如果local沒指定,文件必須位于服務器上。
3? 指定replace,新行將代替有相同的唯一鍵值的現有行。
指定ignore,和唯一鍵值相同行的數據不會插入。如果你不指定任何一個選項,當找到重復鍵時,出現一個錯誤,并且文本文件的余下部分被忽略。例如:
load?data??low_priority?infile?"/home/mark/data?sql"?replace?into?table table_name;
4?分隔符
(1)?fields關鍵字指定了文件記段的分割格式,如果用到這個關鍵字,MySQL剖析器希望看到至少有下面的一個選項:
terminated?by分隔符:以什么字符作為分隔符
enclosed?by字段括起字符
terminated?by描述字段的分隔符,默認情況下是tab字符(\t)
escaped?by描述的轉義字符。默認的是反斜杠(backslash:\?)
例如:load?data?infile?"/home/mark/Orders?txt"?replace?into?table?Orders?fields?terminated?by','?enclosed?by?'"';
(2)lines?關鍵字指定了每條記錄的分隔符默認為'\n'即為換行符
如果兩個字段都指定了那fields必須在lines之前。如果不指定fields關鍵字缺省值與這樣寫的相同:?fields?terminated?by'\t'?enclosed?by?’?''?‘?escaped?by'\\'
如果你不指定一個lines子句,缺省值與如果你這樣寫的相同:?lines?terminated?by'\n'
例如:load?data?infile?"/jiaoben/load.txt"?replace?into?table?test?fields?terminated?by?','?lines?terminated?by?'/n';
5? 按指定的列把文件導入到數據庫中。
當我們要把數據的一部分內容導入的時候,,需要加入一些欄目(列/字段/field)到MySQL數據庫中
load?data?infile?"/home/Order?txt"?into?table?Orders(field1, field2, filed3);
如果一個行有很少的字段,對于不存在輸入字段的列被設置為缺省值。
如果字段值缺省,空字段值有不同的解釋:
對于字符串類型,列被設置為空字符串。
對于數字類型,列被設置為0。
對于日期和時間類型,列被設置為該類型的適當“零”值。
如果列有一個NULL,或(只對第一個TIMESTAMP列)在指定一個字段表時,如果TIMESTAMP列從字段表省掉,TIMESTAMP列只被設置為當前的日期和時間。
6??當在服務器主機上尋找文件時,服務器使用下列規則:
(1)如果給出一個絕對路徑名,服務器使用該路徑名。
(2)如果給出一個有一個或多個前置部件的相對路徑名,服務器相對服務器的數據目錄搜索文件。
(3)如果給出一個沒有前置部件的一個文件名,服務器在當前數據庫的數據庫目錄尋找文件。
例如:?/myfile?txt”給出的文件是從服務器的數據目錄讀取,而作為“myfile?txt”給出的一個文件是從當前數據庫的數據庫目錄下讀取。
2.outfile
select * from Table into outfile '/路徑/文件名'
fields terminated by ','
enclosed by '"'
lines terminated by '\r\n'
如果指定了FIELDS子句,則這三個亞子句中至少要指定一個。
terminated by指定字段值之間的符號,例如,“terminated by ','”指定了逗號作為兩個字段值之間的標志。
enclosed by指定包裹文件中字符值的符號,例如,“enclosed by '?"?'”表示文件中字符值放在雙引號之間,若加上關鍵字OPTIONALLY表示所有的值都放在雙引號之間。
escaped by指定轉義字符,例如,“ESCAPED?BY?'*'”將“*”指定為轉義字符,取代“\”,如空格將表示為“*N”。
LINES子句:在LINES子句中使用TERMINATED?BY指定一行結束的標志,如“LINES?TERMINATED?BY?'?'”表示一行以“?”作為結束標志。
總結
以上是生活随笔為你收集整理的load out mysql,快速的mysql导入导出数据(load data和outfile)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: pythonhtml生成word_pyt
- 下一篇: shell开启飞行模式_原来手机飞行模式