表的导出和导入 === 除了整库备份与恢复,实际工作中也经常需要导出或导入单张表的数据,例如导出报表、做数据交换、迁移部分数据等。 ### 用SELECT...INTO OUTFILE导出文本文件 可以使用 `SELECT ... INTO OUTFILE` 把查询结果导出为文本文件: ```sql SELECT id, name, mobile INTO OUTFILE '/tmp/user.txt' FROM user; ``` 这种方式适合: - 导出查询结果 - 生成文本报表 - 向外部系统传输数据 ### 用mysqldump命令导出文本文件 如果要导出整张表结构和数据,也可以使用 `mysqldump`: ```bash mysqldump -u root -p test user > user.sql ``` 这会导出一份可用于恢复的 SQL 文件。 ### 用mysql命令导出文本文件 在命令行环境中,也可以结合查询和重定向导出结果: ```bash mysql -u root -p -e "SELECT * FROM user" test > user.txt ``` 这种方式适合快速导出查询结果,但格式控制通常不如专门导出方案灵活。 ### 用LOAD DATA INFILE方式导入文本文件 如果已经有结构化文本文件,可以用 `LOAD DATA INFILE` 快速导入: ```sql LOAD DATA INFILE '/tmp/user.txt' INTO TABLE user; ``` 它适合大批量文本数据导入,通常效率较高。 ### 用mysqlimport命令导入文本文件 也可以使用 `mysqlimport` 从文本文件快速导入: ```bash mysqlimport -u root -p test /tmp/user.txt ``` 它本质上也是一种快速导入文本文件的工具。 ### 小结 导出和导入不一定总是围绕“整库备份”,很多时候更关注单表或文本数据交换。导出可用 `SELECT ... INTO OUTFILE`、`mysqldump`、`mysql`,导入可用 `LOAD DATA INFILE` 和 `mysqlimport`。