MySql中LOAD DATA INFILE函数的使用
LOAD DATA INFILE
有时候我们需要将大量数据批量写入数据库,直接使用程序语言和Sql写入往往很耗时间,其中有一种方案就是使用MySql Load data infile导入文件的形式导入数据到数据库,这样可大大缩短数据导入时间。利用这个函数,在渗透的时候会对测试人员有帮助。
LOAD DATA INFILE 是 SELECT ... INTO OUTFILE 的相对语句。只能导出或导入数据的内容,不包括表的结构,如果表的结构文件损坏,则必须先恢复原来的表的结构。
- LOAD DATA INFI 导入数据到数据库
- SELECT ... INTO OUTFILE 把表中的数据导出
load data [low_priority] [local] infile 'file_name txt' [replace | ignore] into table table_name
[fields
[terminated by't']
[OPTIONALLY] enclosed by '']
[escaped by'\' ]]
[lines terminated by'n']
[ignore number lines]
[(col_name, )]
(1) fields关键字指定了文件记段的分割格式,如果用到这个关键字,MySQL剖析器希望看到至少有下面的一个选项:
terminated by分隔符:意思是以什么字符作为分隔符,如 '\n'
1. 查看功能是否开启
LOAD DATA INFILE这个功能默认是关闭的,当我们没有开启这个功能时执行LOAD DATA INFILE会报错,我们可以通过如下命令查看功能状态。
show global variables like 'local_infile';
这里是开启的状态

如果没有开启,可以通过如下命令进行开启
set global local_infile=1;
2. 从文件读取行信息到表中
我在数据库中新建一个表,默认的id字段的类型改为varchar即字符串类型,这样才能写进去。其他字段就不需要了。主要这里路径是左斜杠
load data local infile 'C:/Users/Administrator/Desktop/2.txt' into table userlist fields terminated by '\n';

执行语句后查看表,发现内容已经被写入

如果我们表中有两个字段时,写入后就是如下的样子。从左往右,从上到下写。

相关推荐
-
PHP8种变量类型的详细讲解2025-02-22 00:32:24
-
php+apache 和 php+nginx的区别2025-02-22 00:21:27
-
PHP:与workerman结合实现定时任务2025-02-22 00:15:57
-
Nginx的Rewrite规则与实例2025-02-22 00:15:39
-
MySql中身份证字段的简单脱敏介绍2025-02-22 00:15:36