📜  mariadb LOAD DATA INFILE - SQL (1)

📅  最后修改于: 2023-12-03 14:44:09.034000             🧑  作者: Mango

MariaDB LOAD DATA INFILE - SQL

简介

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:要导入的文件名,可以是相对路径或绝对路径。
  • REPLACEIGNORE:可选参数,指定导入时如果遇到重复的主键或唯一索引值时应该采取的操作。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 表中。

注意事项
  • 要导入的文件必须是在 MariaDB 服务器上可访问的。
  • 确保文件的权限设置正确,以允许数据库服务器读取文件。
  • 确保文件的格式与表中的列相匹配,以避免导入错误的数据。
  • 对于大型数据集,可以通过使用 SET foreign_key_checks = 0;SET unique_checks = 0; 来禁用外键约束和唯一性检查,以提高导入的速度。

以上就是关于 MariaDB 中 LOAD DATA INFILE SQL 语句的介绍。根据自己的需求,可以灵活运用该语句来高效地导入大量数据到数据库中。