LOAD DATA [LOW_PRIORITY | CONCURRENT] [LOCAL] INFILE 'file_name
'
??? [REPLACE | IGNORE]
??? INTO TABLE tbl_name
??? [CHARACTER SET charset_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 LOCAL INFILE 'C:\\stu.txt' INTO TABLE stu;
因為這是一條SQL語句,你同樣可以在你的JAVA程序序中用:
st.execute(“LOAD DATA LOCAL INFILE 'C:\\stu.txt' INTO TABLE stu”);
(st表示Statement的一個實例變量,假設(shè)數(shù)據(jù)庫連接,st的初使化已經(jīng)完成)
?
創(chuàng)建stu表:
create table stu_other(id int auto_increment primary key,stu_name varchar(50),age int);
?
然后創(chuàng)建一個文本文件“stu.txt”,每行包含一個記錄,放在C盤的根目錄下。默認的字段分隔符是(tab),你可以更改,下面說明。并且以CREATE TABLE語句中列出的列次序給出。對于丟失的值(例如未知的性別,或仍然活著的動物的死亡日期),你可以使用NULL值。為了在你的文本文件中表示這些內(nèi)容,使用\N(反斜線,字母N)。
?
如stu.txt的內(nèi)容如下:
100001??? FLB100001???? 100001
100002??? FLB100002???? 100002
100003??? FLB100003???? 100003
100004??? FLB100004???? 100004
100005??? FLB100005???? 100005
100006??? FLB100006???? 100006
100007??? FLB100007???? 100007
100008??? FLB100008???? 100008
…
這里我用的是table分開。
?
要想將文本文件“stu.txt”裝載到stu表中,使用這個命令:
mysql> LOAD DATA LOCAL INFILE 'c:\\stu.txt' INTO TABLE stu;
這里沒有指定字段分隔符,以及行的終止符,默認情況下是這樣的:
字段分隔符:
FIELDS TERMINATED BY '\t' ENCLOSED BY '' ESCAPED BY '\\'
其中的'\t'就表示是字段分隔符為tab鍵,如果不想更改,那就把FIELDS TERMINATED BY '\t'中的'\t'改在你自己的分隔符。將執(zhí)行命令改成這樣:
mysql> LOAD DATA LOCAL INFILE 'c:\stu.txt' INTO TABLE stu fields terminated by ‘ ‘;
這里我用的是空格。
行終止符:
LINES TERMINATED BY '\n' STARTING BY ''
?
請注意如果用Windows中的編輯器(使用\r\n做為行的結(jié)束符)創(chuàng)建文件,應(yīng)使用:
?
mysql> LOAD DATA LOCAL INFILE 'C:\\stu.txt' INTO TABLE stu
??? -> LINES TERMINATED BY '\r\n';
(在運行OS X的Apple機上,應(yīng)使用行結(jié)束符'\r'。)
?
如果你愿意,你能明確地在LOAD DATA語句中指出列值的分隔符和行尾標記,但是默認標記是定位符和換行符。這對讀入文件“stu.txt”的語句已經(jīng)足夠。
?
另外,還可以使用SELECT ... INTO OUTFILE
將數(shù)據(jù)導入到外部文件中,如下:
select * from stu_t into outfile "c:\\stu_t.txt";
不過,沒有按記錄自動分行
這樣才能夠換行:
select * from stu_t into outfile "c:\\stu_t.txt" lines terminated by '\r\n';
?
所有實例都是經(jīng)過測試的,運行成功。
?
?
Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=1820153
posted on 2008-02-26 12:39
想飛的魚 閱讀(2072)
評論(0) 編輯 收藏 所屬分類:
database