首页 最新 热门 推荐

  • 首页
  • 最新
  • 热门
  • 推荐

MySQL系列之数据导入导出

  • 25-02-22 00:21
  • 4650
  • 6461
blog.csdn.net

前言

大数据与云计算作为当今时代,数据要素发展的“动力引擎”,已经走进了社会生活的方方方面。而背后承载的云服务或数据服务的高效运转,起了决定作用。

作为数据存储的重要工具,数据库的品类和特性也日新月异。从树型、网络型到关系型,从集中式到分布式,均可胜任不同的业务场景和数据存储要求。

在这个云时代(Cloud Age),作为“轻、快、高”的代表,MySQL作为RDB的优等生,备受各行各业的青睐。从今天开始,博主也谈一谈MySQL的相关话题。

在这里插入图片描述

那么,首先聊聊什么呢? 博主先从一个文件讲起。

当你遇到数据库迁移时,最可能遇到哪些困难?(温馨提示:文末有投票环节,欢迎有兴趣的同学参与)。

比如文件太大,导入太慢了;
比如编码不一致,导入导出乱码了;
比如数据跨区,导入重复了;
比如…等等,不胜枚举。

而今天,我们先看看文件太大怎么办,博主可为大家支一招,希望有所帮助。


Q:如何导入导出

数据的导入导出是我们日常工作的常见操作,那么我们又该掌握其中的必杀技呢?

一、mysqldump和source

当我们在做数据的导入导出时,可能会想到一组常用的命令:

操作工具操作简介
mysqldump负责将数据从数据库导出或导入,支持对SQL文件的处理
source负责将数据导入数据库,支持对SQL文件的处理
1. mysqldump

mysqldump是MySQL自带的逻辑备份工具,可供选择的操作有:

1.mysqldump [选项] 数据库名 [表名] > 导出文件名
2.mysqldump [选项] --数据库名 [选项 表名] > 导出文件名
3.mysqldump [选项] --all-databases [选项] > 导出文件名

2. source

mysql source命令主要用来导入较大的文件。
执行命令形如:

连接 MySQL Server
>source  /usr/local/test.sql
  • 1
  • 2

二、select …into outfile和load data infile

一般我们通过以上一组操作,可满足日常的数据导入导出的需要。不过还有一种选择,可支持大文件的导入导出,当然该方式一般针对excel/csv/txt处理(是不是太常见了?)。

1. select …into outfile
SELECT ... INTO OUTFILE '文件路径' //导出文件的绝对路径
[CHARACTER SET 字符集] //指定文件编码
[FIELDS [TERMINATED BY '分隔符']
         [ENCLOSED BY '括号字符']
         [ESCAPED BY '转义字符']
]
[LINES [STARTING BY '行首字符']
      [TERMINATED BY '行尾字符']
]
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

使用时,需开通mysql的文件处理权限,一般使用secure_file_priv指定的目录,可通过以下命令查看:

show variables like '%secure_file_priv%';
  • 1
2. load data infile

导出后,即可进行导入了,此刻,load data infile派上用场了。

LOAD DATA
    [LOW_PRIORITY | CONCURRENT] [LOCAL] //一般选择local,意味着从本地导入
    INFILE '文件路径' //绝对路径
    [REPLACE | IGNORE]
    INTO TABLE tbl_name //导入的表名
    [PARTITION (partition_name [, 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']
    ]
    [IGNORE number {LINES | ROWS}]
    [(col_name_or_user_var
        [, col_name_or_user_var] ...)]
    [SET col_name={expr | DEFAULT}
        [, col_name={expr | DEFAULT}] ...]

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22

通过以上命令,我们可以实现非SQL文件的导入了。


结语

数据库的导入导出是必修课,作为经常用来实现数据备份和恢复的工具,以上两组命令各有特色,且支持不同类型的文件操作,所以各位盆友可按需选择。

好了,今日话题到此为止,下一篇是啥,继续期待!


在这里插入图片描述

文章知识点与官方知识档案匹配,可进一步学习相关知识
MySQL入门技能树SQL高级技巧CTE和递归查询95486 人正在系统学习中
注:本文转载自blog.csdn.net的一叶飞舟的文章"https://blog.csdn.net/splendid_java/article/details/135547087"。版权归原作者所有,此博客不拥有其著作权,亦不承担相应法律责任。如有侵权,请联系我们删除。
复制链接
复制链接
相关推荐
发表评论
登录后才能发表评论和回复 注册

/ 登录

评论记录:

未查询到任何数据!
回复评论:

分类栏目

后端 (14832) 前端 (14280) 移动开发 (3760) 编程语言 (3851) Java (3904) Python (3298) 人工智能 (10119) AIGC (2810) 大数据 (3499) 数据库 (3945) 数据结构与算法 (3757) 音视频 (2669) 云原生 (3145) 云平台 (2965) 前沿技术 (2993) 开源 (2160) 小程序 (2860) 运维 (2533) 服务器 (2698) 操作系统 (2325) 硬件开发 (2491) 嵌入式 (2955) 微软技术 (2769) 软件工程 (2056) 测试 (2865) 网络空间安全 (2948) 网络与通信 (2797) 用户体验设计 (2592) 学习和成长 (2593) 搜索 (2744) 开发工具 (7108) 游戏 (2829) HarmonyOS (2935) 区块链 (2782) 数学 (3112) 3C硬件 (2759) 资讯 (2909) Android (4709) iOS (1850) 代码人生 (3043) 阅读 (2841)

热门文章

101
推荐
关于我们 隐私政策 免责声明 联系我们
Copyright © 2020-2025 蚁人论坛 (iYenn.com) All Rights Reserved.
Scroll to Top