MySQL技能完整学习列表10、数据导入和导出——1、数据导入(LOAD DATA, mysqldump)——2、数据导出(SELECT ... INTO OUTFILE, mysqldump)

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS PostgreSQL,集群系列 2核4GB
简介: MySQL技能完整学习列表10、数据导入和导出——1、数据导入(LOAD DATA, mysqldump)——2、数据导出(SELECT ... INTO OUTFILE, mysqldump)



 

数据导入(LOAD DATA, mysqldump)

MySQL提供了多种数据导入和导出的方法,其中LOAD DATAmysqldump是两个常用的命令。下面将详细说明这两个命令的使用方法,并提供具体的示例。

1. 使用LOAD DATA导入数据

LOAD DATA语句用于从文本文件或其他数据源中快速导入大量数据到MySQL表中。它可以高效地将数据加载到表中,比使用多个INSERT语句要快得多。

语法
LOAD DATA [LOW_PRIORITY | CONCURRENT] [LOCAL] INFILE 'file_name'
[REPLACE | IGNORE]
INTO TABLE table_name
[CHARACTER SET charset_name]
[FIELDS
    [TERMINATED BY 'string']
    [[OPTIONALLY] ENCLOSED BY 'char']
    [ESCAPED BY 'char']
]
[LINES
    [STARTING BY 'string']
    [TERMINATED BY 'string']
]
[IGNORE number {LINES | ROWS}]
[(col_name_or_user_var,...)]
[SET col_name = expr,...]
示例

假设我们有一个名为employees.txt的文本文件,包含员工的数据,每行表示一个员工,字段之间使用制表符(\t)分隔。文件内容如下:

1   John Doe    john.doe@example.com    45000
2   Jane Smith  jane.smith@example.com  50000
3   Bob Johnson bob.johnson@example.com 48000

要将这些数据导入到名为employees的MySQL表中,可以使用以下LOAD DATA语句:

LOAD DATA LOCAL INFILE 'employees.txt'
INTO TABLE employees
FIELDS TERMINATED BY '\t'
LINES TERMINATED BY '\n'
(id, name, email, salary);

这会将数据从employees.txt文件导入到employees表中。

2. 使用mysqldump导出数据

mysqldump是一个命令行工具,用于导出MySQL数据库的结构和数据为SQL脚本文件。它可以导出整个数据库或指定的表,并且导出的数据可以用于备份或在其他MySQL服务器上恢复数据。

语法
mysqldump [options] db_name [tbl_name ...]
mysqldump [options] --databases db_name ...
mysqldump [options] --all-databases
示例

假设我们要导出名为mydatabase的数据库的结构和数据,并将其保存到一个名为backup.sql的文件中,可以使用以下命令:

mysqldump -u username -p mydatabase > backup.sql

数据导出(SELECT ... INTO OUTFILE, mysqldump)

MySQL提供了多种数据导出的方法,其中SELECT ... INTO OUTFILEmysqldump是两个常用的命令。下面将详细说明这两个命令的使用方法,并提供具体的示例。

1. 使用SELECT ... INTO OUTFILE导出数据

SELECT ... INTO OUTFILE语句用于将查询结果导出到一个文本文件中。这种方法可以方便地将表中的数据导出为文件格式,以供其他程序或系统使用。

语法
SELECT column1, column2, ...
INTO OUTFILE 'file_name'
[CHARACTER SET charset_name]
[EXPORT_OPTIONS]
FROM table_name
[WHERE condition];
  • column1, column2, ...:要导出的列名。
  • 'file_name':导出文件的名称和路径。
  • [CHARACTER SET charset_name]:可选,指定导出文件的字符集。
  • [EXPORT_OPTIONS]:可选,导出选项,如字段分隔符、行终止符等。
  • table_name:要导出数据的表名。
  • [WHERE condition]:可选,导出满足条件的记录。
示例

假设我们有一个名为employees的表,包含员工的信息,现在我们要导出所有员工的姓名和电子邮件地址到一个名为employees.txt的文本文件中,每行一个记录,字段之间使用逗号(,)分隔。可以使用以下语句:

SELECT name, email
INTO OUTFILE 'employees.txt'
FIELDS TERMINATED BY ','
LINES TERMINATED BY '\n'
FROM employees;

这会将查询结果导出到employees.txt文件中。

2. 使用mysqldump导出数据

除了SELECT ... INTO OUTFILE,MySQL还提供了mysqldump命令行工具,用于导出数据库的结构和数据为SQL脚本文件。与SELECT ... INTO OUTFILE不同,mysqldump可以导出整个数据库或指定的表,并且导出的数据可以用于备份或在其他MySQL服务器上恢复数据。

语法
mysqldump [options] db_name [tbl_name ...]
mysqldump [options] --databases db_name ...
mysqldump [options] --all-databases
  • db_name:要导出的数据库名。
  • tbl_name:可选,要导出的表名。可以指定多个表名,用空格分隔。
  • options:可选,导出选项,如用户名、密码、导出格式等。#### 示例

假设我们要导出名为mydatabase的数据库的结构和数据,并将其保存到一个名为backup.sql的文件中,可以使用以下命令:

mysqldump -u username -p mydatabase > backup.sql
相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
2月前
|
人工智能 小程序 关系型数据库
【MySQL】黑悟空都掌握的技能,数据库隔离级别全攻略
本文以热门游戏《黑神话:悟空》为契机,深入浅出地解析了数据库事务的四种隔离级别:读未提交、读已提交、可重复读和串行化。通过具体示例,展示了不同隔离级别下的事务行为差异及可能遇到的问题,如脏读、不可重复读和幻读等。此外,还介绍了在MySQL中设置隔离级别的方法,包括全局和会话级别的调整,并通过实操演示了各隔离级别下的具体效果。本文旨在帮助开发者更好地理解和运用事务隔离级别,以提升数据库应用的一致性和性能。
118 2
【MySQL】黑悟空都掌握的技能,数据库隔离级别全攻略
|
2月前
|
存储 关系型数据库 MySQL
在 MySQL 中使用 Insert Into Select
【8月更文挑战第11天】
144 0
在 MySQL 中使用 Insert Into Select
|
2月前
|
关系型数据库 MySQL Shell
MySQL 备份:从mysqldump全备中 匹配出某几个表
MySQL 备份:从mysqldump全备中 匹配出某几个表
|
2月前
|
SQL 关系型数据库 MySQL
如何在 MySQL 或 MariaDB 中导入和导出数据库
如何在 MySQL 或 MariaDB 中导入和导出数据库
221 0
|
2月前
|
安全 关系型数据库 MySQL
如何在 MySQL 中导入和导出数据库以及重置 root 密码
如何在 MySQL 中导入和导出数据库以及重置 root 密码
32 0
|
3月前
|
SQL 关系型数据库 MySQL
Mysql:如何自定义导出表结构
通过以上方法,你可以灵活地自定义导出MySQL中的表结构,以满足不同的需求和场景。在进行操作的时候要注意权限问题以及路径问题,确保MySQL用户有权限写入指定的文件路径。在执行导出任务之前,还应确保你对数据库及其内容有足够的了解,以避免不必要的数据丢失或损坏。
27 1
|
2月前
|
SQL 存储 关系型数据库
运维笔记.MySQL.基于mysqldump数据备份与恢复
运维笔记.MySQL.基于mysqldump数据备份与恢复
42 0
|
2月前
|
关系型数据库 MySQL Shell
pandas读取mysql并导出为excel
pandas读取mysql并导出为excel
|
3月前
|
Cloud Native 关系型数据库 MySQL
云原生数据仓库使用问题之如何将ADB中的数据导出到自建的MySQL数据库
阿里云AnalyticDB提供了全面的数据导入、查询分析、数据管理、运维监控等功能,并通过扩展功能支持与AI平台集成、跨地域复制与联邦查询等高级应用场景,为企业构建实时、高效、可扩展的数据仓库解决方案。以下是对AnalyticDB产品使用合集的概述,包括数据导入、查询分析、数据管理、运维监控、扩展功能等方面。
|
15天前
|
NoSQL 关系型数据库 MySQL
微服务架构下的数据库选择:MySQL、PostgreSQL 还是 NoSQL?
在微服务架构中,数据库的选择至关重要。不同类型的数据库适用于不同的需求和场景。在本文章中,我们将深入探讨传统的关系型数据库(如 MySQL 和 PostgreSQL)与现代 NoSQL 数据库的优劣势,并分析在微服务架构下的最佳实践。