【MySQL】将表导出CSV(可以使用excel打开)

1、准备工作

查看数据库:

复制代码
show databases;

切换数据库:

复制代码
use 数据库名;

查看表名字

复制代码
show tables;

2、单个表导出

需要替换导出csv文件目录和表名

sql 复制代码
SELECT *
INTO OUTFILE '目录/文件名.csv'
FIELDS TERMINATED BY ','
ENCLOSED BY '"'
LINES TERMINATED BY '\n'
FROM 表名;

如果表太大,excel无法打开,可以显示导出的行数,例如10000行

sql 复制代码
SELECT *
INTO OUTFILE '目录/文件名.csv'
FIELDS TERMINATED BY ','
ENCLOSED BY '"'
LINES TERMINATED BY '\n'
FROM 表名
LIMIT 10000;

3、导出全部表

当表太多的时候,可以使用下面的方法,一次性导出全部表;

需要替换数据库名。

sql 复制代码
DELIMITER //
 
CREATE PROCEDURE ExportAllTablesToCSV()
BEGIN
    DECLARE done INT DEFAULT FALSE;
    DECLARE tName VARCHAR(255);
    DECLARE tCursor CURSOR FOR SELECT table_name FROM information_schema.tables WHERE table_schema = '数据库名';
    DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE;
 
    OPEN tCursor;
        read_loop: LOOP
            FETCH tCursor INTO tName;
            IF done THEN
                LEAVE read_loop;
            END IF;
 
            SET @stmt = CONCAT('SELECT * FROM ', tName, ' INTO OUTFILE \'', tName, '.csv\' FIELDS TERMINATED BY \',\' OPTIONALLY ENCLOSED BY \'"\' LINES TERMINATED BY \'\n\'');
            PREPARE s1 FROM @stmt;
            EXECUTE s1;
            DEALLOCATE PREPARE s1;
        END LOOP;
    CLOSE tCursor;
END //
 
DELIMITER ;
 
CALL ExportAllTablesToCSV();

4、修复

如果在导出时,报错:

复制代码
Table '表名' is marked as crashed and should be repaired

检查表:

复制代码
check table 表名;

修复表:

复制代码
repair table 表名;
相关推荐
我是一颗柠檬2 小时前
【MySQL全面教学】MySQL备份与恢复Day14(2026年)
数据库·后端·mysql
渣渣盟2 小时前
MySQL DDL操作全解析:从入门到精通,包含索引视图分区表等全操作解析
大数据·数据库·mysql
mN9B2uk173 小时前
为mysql数据库建立索引
数据库·mysql·oracle
流星白龙3 小时前
【MySQL高阶】7.MySQL日志
数据库·mysql·adb
Irene19913 小时前
SQL示例:正确理解题意(隐藏分组键)严格SQL模式下,ORDER BY中的列必须出现在GROUP BY中或作为聚合函数
mysql
流星白龙3 小时前
【MySQL高阶】0.MySQL的安装
数据库·mysql·adb
Rick19933 小时前
联合索引是按顺序排好序的
数据库·mysql
身如柳絮随风扬4 小时前
MySQL 存储引擎深度解析:InnoDB vs MyISAM vs Memory,行锁实现与索引奥秘
数据库·mysql
灰阳阳5 小时前
MySQL-Innodb-表空间数据组织方式
数据库·mysql·innodb
Rick19935 小时前
只要条件字段在联合索引里,MySQL8.0+ 默认都会触发 索引下推(ICP)
mysql·索引下推