MySQL Load Data 的多种用法
一、LOAD 基本背景
我们在数据库运维过程中难免会涉及到需要对文本数据进行处理,并导入到数据库中,本文整理了一些导入导出时常见的场景进行示例演示。
二、LOAD 基础参数
文章后续示例均使用以下命令导出的 csv 格式样例数据(以 , 逗号做分隔符,以 ” 双引号作为界定符)
三、LOAD 示例数据及示例表结构
以下为示例数据,表结构及对应关系信息
四、LOAD 场景示例
场景1. LOAD 文件中的字段比数据表中的字段多
只需要文本文件中部分数据导入到数据表中
场景 2. LOAD 文件中的字段比数据表中的字段少
表字段不仅包含文本文件中所有数据,还包含了额外的字段
场景3. LOAD 生成自定义字段数据
从场景 2 的验证可以看到,emp 表中新增的字段
fullname,modify_date,delete_flag
字段在导入时并未做处理,被置为了 NULL 值,如果需要对其进行处理,可在 LOAD 时通过MySQL支持的函数
或给定固定值
自行定义数据,对于文件中存在的字段也可做函数处理,结合导入导出,实现简单的 ETL 功能,如下所示:
场景4. LOAD 定长数据
定长数据的特点如下所示,可以使用函数取出字符串中固定长度来生成指定列数据
定长数据导入需要明确每列数据占用的字符个数,以下直接使用 rpad 对现有的表数据填充空格的方式生成定长数据用作示例使用
五、LOAD 总结
1.默认情况下导入的顺序以文本文件 列-从左到右,行-从上到下
的顺序导入
2.如果表结构和文本数据不一致,建议将文本文件中的各列依次顺序编号并与表中字段建立 mapping 关系,以防数据导入到错误的字段
3.对于待导入的文本文件较大的场景,建议将文件 按行拆分
为多个小文件,如用 split 拆分
4.对文件导入后建议执行以下语句验证导入的数据是否有 Warning
,ERROR
以及导入的数据量
GET DIAGNOSTICS @p1=NUMBER,@p2=ROW_COUNT;
select @p1 AS ERROR_COUNT,@p2 as ROW_COUNT;
5.文本文件数据与表结构存在过大的差异或数据需要做清洗转换,建议还是用专业的 ETL 工具或先粗略导入 MySQL 中再进行加工转换处理
以上就是 MySQL Load Data 数据的多种用法的详细内容,更多关于MySQL Load Data 的用法的资料请关注我是攻城狮其它相关文章!,希望大家以后多多支持我是攻城狮!