SELECT...INTO OUTFILE 'file_name'形式的SELECT可以把被選擇的行寫入一個文件中。該文件被創建到服務器主機上,因此您必須擁有FILE權限,才能使用此語法。file_name不能是一個原有的文件。原有文件會阻止例如“/etc/passwd”的文件和數據庫表被銷毀。
SELECT...INTO OUTFILE語句的主要作用是讓您可以非常快速地把一個表轉儲到服務器機器上。如果您想要在服務器主機之外的部分客戶主機上創建結果文件,您不能使用SELECT...INTO OUTFILE。在這種情況下,您應該在客戶主機上使用比如“mysql –e "SELECT ..." > file_name”的命令,來生成文件。
LOAD DATA INFILE是SELECT ... INTO OUTFILE的逆操作,SELECT句法。為了將一個數據庫的數據寫入一個文件,使用SELECT ... INTO OUTFILE,為了將文件讀回數據庫,使用LOAD DATA INFILE。
將查詢結果保存到文件裡, 注意 如果已經存在同名文件,則不會創建。
SELECT…INTO OUTFILE
例子:
代碼如下 復制代碼select name,ctfid,birthday,mobile,tel,email from info where ctfid like '130000%' into outfile '/tmp/fuping-of-rujia';
同時可以指定分隔符等
代碼如下 復制代碼SELECT a,b,a+b INTO OUTFILE '/tmp/result.text'
FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'
LINES TERMINATED BY '\n'
FROM test_table;
從文件讀取的語法為
LOAD DATA INFILE
同樣可以指定分隔符等,例如從csv文件導入:
代碼如下 復制代碼load data local infile '1-200W.csv' into table `info` fields terminated by ',' lines terminated by '\n';