MySQL表数据的导入导出方法

本文涉及的产品
云数据库 RDS SQL Server,独享型 2核4GB
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
简介: mysql的导入导出数据的方法有很多,这里简单介绍下select into file、mysqldump、load data 和mysqlimport方法
导出数据的方法:
一、select into outfile
将表数据导出到一个文本文件最简单的方法是使用select...into outfile语句的查询结果直接导出到OS层面上的文件中。
该语句默认的列于列之间的分隔符为tab,行与行之间的数据分隔符为换行符,通过参数可以改变分隔符:
fields terminated by '';
lines terminated by '';
注意:
用户必须要有file权限才能执行该语句;
由mysql服务器直接创建输出文件,输出文件必须不存在;
示例:
mysql> select * from jiang into outfile '/tmp/jiang.txt';
[root@jiang tmp]# cat jiang.txt 
0	ling
1	ni
2	ai
3	zhou
4	jiang
5	wo

mysql> select * from jiang into outfile '/tmp/jiang.txt'
    -> fields terminated by '#*#';
[root@jiang tmp]# cat jiang.txt 
0#*#ling
1#*#ni
2#*#ai
3#*#zhou
4#*#jiang
5#*#wo


二、mysqldump命令
mysqldump命令是逻辑备份中使用的命令,但是更常用mysqldump来导出一张表的数据。
常用格式:
导出一张完整的表(建表语句和表数据在同一文件中):
mysqldump -u** -p** db_name tb_name > filename
mysqldump -u** -p** --single-transaction db_name --tables tb >file
导出一个或多个表(表结构和表数据分离)
mysqldump -u** -p** -T directory --fields-terminated-by '*' db [tb];


导入数据的方法
一、Load data
mysql中创建一个新表,然后通过一个文件将表的数据导入到这个表中,而不用再手工通过insert输入。
Load data 完整语法:
LOAD DATA [LOW_PRIORITY | CONCURRENT] [LOCAL] INFILE 'file_name'
     [REPLACE | IGNORE]
     INTO TABLE tbl_name
     [PARTITION (partition_name,...)]
     [CHARACTER SET charset_name]
     [{FIELDS | COLUMNS}   #文件每一行的字段分隔符
         [TERMINATED BY 'string']   #指明每一行的字段分隔符是什么
         [[OPTIONALLY] ENCLOSED BY 'char']
         [ESCAPED BY 'char']
     ]
     [LINES   #文件中行与行之间的分隔符,默认回车
         [STARTING BY 'string']   #指明行之间的分隔符是什么
         [TERMINATED BY 'string']
     ]
Load data 示例:
创建一个新表 shi,文件shi在/mydata目录下,将/mydata/shi文件的数据导入到表shi中。
mysql> load data infile '/mydata/shi' into table shi fields terminated by ',';
Query OK, 83 rows affected (0.04 sec)
Records: 83  Deleted: 0  Skipped: 0  Warnings: 0
mysql> select count(*) from shi;
+----------+
| count(*) |
+----------+
|    83 |
+----------+


二、mysqlimport
mysqlimport是mysql的一个载入数据的一个非常有效的工具,有两个参数以及大量的选项可供选择。作用就是将纯数据的文本文件导入到指定的数据库和表中。
基本用法:
mysqlimport -u** -p** db_name data_file
注意: 要导入的数据文件data_file必须要在对应的数据库的目录下
常用选项:
-d or --delete 新数据导入表前删除表中原来的数据
-f or --force 不管是否遇到错误,都将强制插入数据
-i or --ignore 跳过或者忽略那些有相同唯一关键字的行
-l or --lock-tables 数据插入前锁住表
-r or --replace 与-i相反,此选项将替代表中有相同唯一关键字的记录


相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
1月前
|
关系型数据库 MySQL
解决MySQL无法插入中文的方法
解决MySQL无法插入中文的方法
15 0
|
1月前
|
设计模式 NoSQL Java
常用的设计模式以及操作Redis、MySQL数据库、各种MQ、数据类型转换的方法
常用的设计模式以及操作Redis、MySQL数据库、各种MQ、数据类型转换的方法
|
3月前
|
存储 Oracle 关系型数据库
mysql存储过程调试方法
mysql存储过程调试方法
200 0
|
4月前
|
缓存 关系型数据库 MySQL
MySQL索引原理与实践:优化数据库性能的有效方法3.0
全文索引,主键索引,唯一索引,覆盖索引,组合索引,普通索引,外键索引,空间索引,前缀索引,哈希索引等 在接下来MySQL索引原理与实践3.0中我会重点介绍mysql索引优化等一些方面相关的理论与实践,有小伙伴是从3.0开始看的,可以优先看一下1.0/2.0 http://t.csdnimg.cn/hHn9A
45 0
|
4月前
|
缓存 关系型数据库 MySQL
Django操作MySQL数据库的优化方法
Django操作MySQL数据库的优化方法
|
17天前
|
存储 监控 关系型数据库
mysql 主备延迟的原因及解决思路,优化方法
MySQL 主备延迟(replication delay)是指主服务器(master)上的数据更新操作与备服务器(slave)上相同数据更新操作之间的时间差。这种延迟可能会导致数据不一致,影响系统的可用性和可靠性。以下是主备延迟的常见原因、解决思路和优化方法: ### 常见原因 1. **网络延迟**:主备服务器之间的网络不稳定或带宽不足。 2. **硬件性能**:备服务器的硬件性能不足,如 CPU、内存、磁盘 I/O 等。 3. **大量数据写入**:主服务器上的大量数据写入操作导致备服务器难以同步。 4. **复杂的查询**:备服务器执行复杂的查询操作,影响同步速度。 5. **二进制
|
4月前
|
搜索推荐 算法 关系型数据库
【MYSQL高级】Mysql查询语句优化方法
【MYSQL高级】Mysql查询语句优化方法
38 1
|
1月前
|
SQL 关系型数据库 MySQL
MySQL优化:12种提升SQL执行效率的有效方法
在数据库管理和优化的世界里,MySQL作为一个流行的关系型数据库管理系统,其性能优化是任何数据密集型应用成功的关键。优化MySQL数据库不仅可以显著提高SQL查询的效率,还能确保数据的稳定性和可靠性。
|
2月前
|
SQL 关系型数据库 MySQL
【SQL编程】Greenplum 与 MySQL 数据库获取周几函数及函数结果保持一致的方法
【SQL编程】Greenplum 与 MySQL 数据库获取周几函数及函数结果保持一致的方法
21 0
|
2月前
|
关系型数据库 MySQL
MySQL【问题 02】报错 1709 - Index column size too large. The maximum column size is 767 bytes. 可能是最简单的方法
MySQL【问题 02】报错 1709 - Index column size too large. The maximum column size is 767 bytes. 可能是最简单的方法
34 0