在实际应用中,经常需要向 SQL 数据库快速输入大量数据。以下是一些常用的 :
使用 INSERT 语句
INSERT 语句是将数据插入数据库最直接的方式。其语法如下:
INSERT INTO table_name (column1, column2, ...)
VALUES (value1, value2, ...);
例如,将以下数据插入 "users" 表中:
INSERT INTO users (name, email, age)
VALUES ('John Doe', 'john.doe@example.com', 30);
使用 COPY 命令
COPY 命令用于从外部文件快速导入数据到数据库中。其语法如下:
COPY table_name FROM 'file_path'
(
format = format,
delimiter = delimiter,
header = header,
null = null_value
);
例如,从 CSV 文件 "users.csv" 中导入数据:
COPY users FROM 'users.csv'
(
format = 'csv',
delimiter = ',',
header = TRUE,
null = 'NULL'
);
使用 BULK INSERT
BULK INSERT 是 SQL Server 中一种专门用于快速导入数据的操作。其语法如下:
BULK INSERT table_name
FROM 'file_path'
WITH (
DATAFILETYPE = 'file_type',
FIELDTERMINATOR = 'field_terminator',
ROWTERMINATOR = 'row_terminator'
);
例如,从文本文件 "users.txt" 中导入数据:
BULK INSERT users
FROM 'users.txt'
WITH (
DATAFILETYPE = 'char',
FIELDTERMINATOR = '|',
ROWTERMINATOR = '\n'
);
批量插入
对于需要插入大量数据的场景,可以将数据分批插入。将数据分批处理可以提高插入效率,避免内存不足等问题。
例如,使用以下代码批量插入 100 条数据:
for i in range(1, 101):
sql = "INSERT INTO users (name, email, age) VALUES (%s, %s, %s);"
cursor.execute(sql, (f'User {i}', f'user{i}@example.com', i))
connection.commit()
通过使用上述技巧,可以显著提高向 SQL 数据库输入数据的速度。根据具体场景选择合适的 ,可以最大限度地减少数据导入时间。