You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SQL新手求高效插入600条4列数据到表的方法

高效批量插入600条SQL数据的实用方法

嘿,作为SQL新手,手动敲600条单条INSERT确实太折磨人了!我刚学SQL的时候也干过这傻事,后来发现了几个超级好用的提速技巧,分享给你:

1. 多行VALUES批量插入(最易上手)

这是最直接的改进,把所有数据行放到同一个INSERT语句里,减少数据库的执行次数,效率提升不止一点点。比如:

INSERT INTO myTable(col1, col2, col3, col4)
VALUES
('value 1', 'value 2', 'value 3', 'value 4'),
('value 5', 'value 6', 'value 7', 'value 8'),
-- 这里继续粘贴剩下的行,一次放600条完全没问题(大部分数据库默认支持单次插入上千条)
('value 2397', 'value 2398', 'value 2399', 'value 2400');

小技巧:不用手动敲每一行!把数据放到Excel里,用公式拼接成('值1','值2','值3','值4'),的格式,比如在Excel单元格里写:

="('"&A1&"','"&B1&"','"&C1&"','"&D1&"'),"

然后下拉填充所有行,复制粘贴到SQL语句里就行,5分钟搞定600行。

2. 从CSV/Excel文件直接导入(最快方案)

如果你的数据已经在Excel或者CSV文件里了,直接用数据库的导入工具,比写SQL快10倍!举几个常用数据库的例子:

MySQL

用LOAD DATA INFILE命令(注意文件路径权限):

LOAD DATA INFILE '/你的文件路径/data.csv'
INTO TABLE myTable
FIELDS TERMINATED BY ','  -- CSV的分隔符
ENCLOSED BY '"'           -- 字符串的包裹符
LINES TERMINATED BY '\n'  -- 行分隔符
IGNORE 1 ROWS;            -- 如果CSV有表头,忽略第一行

PostgreSQL

用COPY命令:

COPY myTable(col1, col2, col3, col4)
FROM '/你的文件路径/data.csv'
DELIMITER ','
CSV HEADER;  -- 表示第一行是表头

新手友好版:直接用Navicat、DBeaver、phpMyAdmin这些图形化工具,找“导入数据”的功能,跟着向导选文件、匹配列,点几下就完成了,完全不用写代码。

3. 用循环/存储过程生成数据(适合有规律的数据)

如果你的数据是有规律的(比如col1是1到600的数字,col2是固定前缀加序号),可以让数据库自动生成插入语句,比如MySQL的存储过程:

DELIMITER //
CREATE PROCEDURE Insert600Rows()
BEGIN
    DECLARE rowNum INT DEFAULT 1;
    WHILE rowNum <= 600 DO
        INSERT INTO myTable(col1, col2, col3, col4)
        VALUES(
            CONCAT('item_', rowNum),
            CONCAT('desc_', rowNum),
            rowNum * 10,
            NOW()  -- 比如插入当前时间
        );
        SET rowNum = rowNum + 1;
    END WHILE;
END //
DELIMITER ;

-- 调用这个存储过程,直接插入600条
CALL Insert600Rows();

其他数据库比如SQL Server可以用WHILE循环,Oracle用FOR循环,原理都是一样的,适合数据有规律的场景。


内容的提问来源于stack exchange,提问作者morgh

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 07:05:59