mysql load data 命令和 SELECT ... INTO OUTFILE 命令 完成数据导入导出

一、load data 命令

点击查看代码
# 官网的语法格式:
LOAD DATA
    [LOW_PRIORITY | CONCURRENT] [LOCAL]
    INFILE 'file_name'
    [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、[LOW_PRIORITY | CONCURRENT] 
当指定LOW_PRIORITY时,该命令执行的数据导入操作将会被降级为低优先级任务。在存在其他高优先级写入请求的情况下,MySQL服务器会优先处理那些非LOW_PRIORITY插入或更新操作,然后再处理LOAD DATA INFILE的低优先级加载任务。

CONCURRENT关键字仅适用于InnoDB存储引擎,从MySQL 5.6版本开始支持。使用CONCURRENT进行数据导入时,InnoDB会在加载数据的同时允许其他客户端对表进行读取操作,并尽可能减少对写入操作的影响。

默认情况下,既不是LOW_PRIORITY也不是CONCURRENT。如果不指定任何优先级选项,则数据加载操作按照正常(中等)优先级执行。
这意味着在执行LOAD DATA INFILE时不考虑其他写入请求的优先级,数据库会立即开始处理该数据导入任务,并且在导入过程中,对于使用InnoDB存储引擎的表,可能会影响到其他客户端对该表的读写操作。

2、local
数据文件和mysqld服务器不在同一台主机上,此时要使用local关键字,如果数据文件和mysql在同一台主机上,则不需要指定,注意mysql要对数据文件有权限

3、[REPLACE | IGNORE]
replace表示遇到主键重复或唯一索引重复的数据,把原有数据删除,插入新数据
ignore表示遇到主键重复或唯一索引重复的数据会保留原有数据,忽略新数据

4、TERMINATED BY
指定字段之间的分隔符,比如逗号(,)或者是制表符(\t),默认是\t

5、ENCLOSED BY
ENCLOSED BY选项用于指定字段值是否被特定字符包围(如单引号、双引号或括号等),当数据文件中的字段值周围有特殊的定界符时,数据写入到数据库时会忽略这些定界符,比如指定 fields ENCLOSED BY '"',数据是"1","小明","23",插入数据到数据库时会把双引号都省略掉

6、ESCAPED BY
ESCAPED BY选项用于指定一个转义字符,该字符用于在数据文件中对特殊字符或定界符进行转义处理。不写时使用反斜杠(\)作为默认的转义字符

7、LINES TERMINATED BY
该选项表示换行符,默认是\r\n

8、IGNORE number {LINES | ROWS}
忽略最上面的number行,一般是数据文件中把字段名称也带上了,则需要忽略第一行,如 ignore 1 lines

9、col_name_or_user_var
如果数据文件中字段数量和表中字段数量不是一一对应的,则需要指定是哪些字段,就像insert into table(col1,col2,col3,...)


# 一般情况使用以下格式即可,关键字根据自身情况修改:
LOAD DATA INFILE '/home/mysql/data.txt' INTO TABLE tbl_name
  FIELDS TERMINATED BY ',' 
  ENCLOSED BY '"'
  LINES TERMINATED BY '\r\n'
  IGNORE 1 LINES
  (col1,col2,col3...);


二、 SELECT ... INTO OUTFILE

posted @   有形无形  阅读(39)  评论(0编辑  收藏  举报
编辑推荐:
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
阅读排行:
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
点击右上角即可分享
微信分享提示