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