MySQL 什么是MySQL LOAD DATA语句?
MySQL LOAD DATA语句是一种用于向MySQL数据库中插入数据的操作命令。通过使用LOAD DATA语句,我们可以将以逗号分隔或制表符分隔的数据文件导入到数据库表中。
阅读更多:MySQL 教程
语法
LOAD DATA语句的语法如下:
LOAD DATA [LOW_PRIORITY | CONCURRENT] [LOCAL] INFILE 'file_name'
[REPLACE | IGNORE]
INTO TABLE table_name
[FIELDS
[TERMINATED BY 'char']
[[OPTIONALLY] ENCLOSED BY 'char']
[ESCAPED BY 'char']
]
[LINES
[STARTING BY 'char']
[TERMINATED BY 'char']
]
[IGNORE number LINES]
[(col_name_or_user_var,...)]
[SET col_name = expr,...]
其中,LOAD DATA语句的关键字包括:
- LOW_PRIORITY / CONCURRENT:可选参数,表示插入数据的优先级。
- LOCAL:可选参数,表示读取文件时使用本地文件而不是服务器端文件。
- INFILE:要读取的数据文件名,必选参数。
- REPLACE / IGNORE:可选参数,指定当插入的数据与已有数据发生冲突时,应该替换还是忽略。
- INTO TABLE:指定要将数据插入的目标表,必选参数。
- FIELDS / LINES:指定数据文件中字段和行的分隔符。
- IGNORE number LINES:忽略数据文件中前几行。
- (col_name_or_user_var,…):指定要插入的字段名列表或用户变量列表。
- SET col_name = expr,…:指定要插入的字段和值,以等号分隔。
示例
下面是一个使用LOAD DATA语句将csv文件的数据导入MySQL表的示例:
假设我们有一个csv文件,其中包含以下数据:
name,age,gender
Tom,24,male
Lucy,22,female
John,25,male
首先,我们需要创建一个MySQL表来存储这些数据,可以使用如下DDL语句:
CREATE TABLE users (
name VARCHAR(50),
age INT,
gender VARCHAR(10)
);
接下来,我们使用LOAD DATA语句将数据导入到该表中:
LOAD DATA INFILE '/path/to/users.csv'
INTO TABLE users
FIELDS TERMINATED BY ','
LINES TERMINATED BY '\n'
IGNORE 1 LINES;
这些语句的含义是:
- 使用LOAD DATA语句读取名为「users.csv」的文件。
- 将从文件读取的数据插入到「users」表中。
- 每个字段之间使用「,」作为分隔符。
- 每行之间使用「\n」作为分隔符。
- 忽略文件中的第一行标题行。
结论
MySQL LOAD DATA语句是一种快捷方便的方法,可以将大量的数据快速导入到MySQL数据库中,从而在插入的速度上提高效率。当我们需要将数据从文件中读取并插入到数据库时,LOAD DATA语句是一个非常好用的工具。
极客笔记