📅  最后修改于: 2023-12-03 14:44:09.034000             🧑  作者: Mango
LOAD DATA INFILE
是 MariaDB (MySQL) 中的一个 SQL 语句,用于将文件中的数据插入到数据库表中。这个语句非常有效地处理大量数据的导入,能够提高数据插入的速度。
以下是 LOAD DATA INFILE
语句的基本语法:
LOAD DATA INFILE 'file_name'
[REPLACE | IGNORE]
INTO TABLE table_name
[CHARACTER SET charset_name]
[FIELDS
[TERMINATED BY 'field_terminator']
[ENCLOSED BY 'enclosure_character']
[ESCAPED BY 'escape_character']
]
[LINES
[STARTING BY 'line_starting']
[TERMINATED BY 'line_terminator']
]
[IGNORE number_lines]
(col1, col2, ..., coln);
file_name
:要导入的文件名,可以是相对路径或绝对路径。REPLACE
或 IGNORE
:可选参数,指定导入时如果遇到重复的主键或唯一索引值时应该采取的操作。REPLACE
将替换掉已存在的记录,IGNORE
则忽略重复的记录。table_name
:目标表的名称。charset_name
:可选参数,指定字符集。field_terminator
:可选参数,字段的分隔符,默认是 \t
(制表符)。enclosure_character
:可选参数,字段的封闭字符,默认是双引号 "
。escape_character
:可选参数,转义字符,默认是反斜杠 \
。line_starting
:可选参数,行的起始字符。line_terminator
:可选参数,行的终止字符,默认是换行符。number_lines
:可选参数,要忽略的行数。col1, col2, ..., coln
:列的列表,用来指定将文件中的数据插入到那些列中。以下是一个示例,演示如何使用 LOAD DATA INFILE
从一个 CSV 文件中导入数据到表 products
:
LOAD DATA INFILE '/path/to/products.csv'
INTO TABLE products
FIELDS TERMINATED BY ','
ENCLOSED BY '"'
LINES TERMINATED BY '\n'
IGNORE 1 LINES
(product_name, price, quantity);
上面的示例假设 products.csv
文件中的每一行数据格式为 "产品名称, 价格, 数量"。通过指定适当的分隔符、封闭字符、行终止符和忽略行数,可以正确地导入数据到 products
表中。
SET foreign_key_checks = 0;
和 SET unique_checks = 0;
来禁用外键约束和唯一性检查,以提高导入的速度。以上就是关于 MariaDB 中 LOAD DATA INFILE
SQL 语句的介绍。根据自己的需求,可以灵活运用该语句来高效地导入大量数据到数据库中。