要将表导出为 CSV 文件,我们将使用SELECT INTO....OUTFILE语句。该语句是对LOAD DATA命令的补充,该命令用于从表中写入数据,然后将其导出为服务器主机上的指定文件格式。这是为了确保我们有使用这种语法的文件权限。

SELECT column_lists  
INTO OUTFILE 'C:/ProgramData/MySQL/MySQL Server 8.0/Uploads/filename.csv'     
FIELDS TERMINATED BY ','    
OPTIONALLY ENCLOSED BY '"'    
LINES TERMINATED BY '\r\n';

我们还可以将此语法与 values 语句一起使用,将数据直接导出到文件中。以下语句更清楚地解释了它:

SELECT * FROM (VALUES ROW(1,2,3,4),ROW(5,6),ROW(7,8)) AS table1  
    INTO OUTFILE '/tmp/selected_values.txt';

如果我们要导出所有表列,我们将使用以下语法。使用此语句,行的顺序和数量将由ORDER BY控制和LIMIT子句。

TABLE table_name ORDER BY lname LIMIT 1000  
INTO OUTFILE '/path/filename.txt'  
FIELDS ENCLOSED BY '"'   
TERMINATED BY ';'   
ESCAPED BY '"'   
LINES TERMINATED BY '\r\n';;

参数说明

LINES TERMINATED BY ',':用于指示文件中以逗号运算符终止的行。每行包含文件中每一列的数据。

FIELDS ENCLOSED BY '"' : 用于指定用双引号括起来的文件的字段。它防止包含逗号分隔符的值。如果包含在双引号中的值,它不识别逗号作为分隔符。