INSERT 语句 (For MySQL)

本文介绍了SQL插入的不同方法及其优缺点,包括基本句法、插入多行数据及利用INSERT SELECT一次性导入多条数据等技巧,并强调了正确的使用方法能有效提升性能。

基本句法

  1. 不被提倡的基本句法
INSERT INTO table_name
Values(NULL,'','',....);

不被提倡的原因: 这种插入方式不方便,而且很不安全。如果表格的结构改变,则该SQL语句失效。

2.提倡的基本句法

INSERT INTO table_name(First Column, Second Column,...)
Values(First Value, Second Value, ...);

优点:这种插入方式可以自定义插入列的顺序,而且,表格结构变化后,SQL语句不失效。

注意事项⚠️

  1. 两种错误情况
    1.不可省略的列 的值为空。
    2.使用不被提倡的方法进行插入,插入时忽略了一些列的值,导致错误。
  2. 性能
    INSERT操作可能很耗时(特别是许多索引更新时),特可能降低等待处理的SELECT语句的性能。
    如果数据检索更重要,你可以通过以下方式提高性能:
    INSERT LOW_PRIORITY INTO
    注意 该方法亦适用于UPDATE 和 DELETE。

插入多行

当需要插入多行值的时候,可以采用一下方法。

INSERT INTO table_name(First Column, Second Column,...)
VALUES(First Value, Second Value, ...);
INSERT INTO table_name(First Column, Second Column,...)
VALUES(First Value, Second Value, ...);
...

如果,插入的多行数据中,列值插入顺序一致,则可以:

INSERT INTO table_name(First Column, Second Column,...)
VALUES
(First Value, Second Value, ...),
(Next Value, Next Value,...),
(......);

上述方法,将每一组值用圆括号括起来,逗号隔开。
⚠️:使用单条*INSERT语句插入多条数据 快于 使用多条*INSERT语句插入多条数据。

利用INSERT SELECT 一次性导入多条数据

语法结构:

INSERT INTO table_name(First Column, Second Column,...)
SELECT First_Column, Second_Column,...
From another_table;
[Where ...]

上面的语句,可以实现“将另一个表中的数据,导入到现有表中”。
该语句对列名没有要求,只要内容对应即可。
⚠️:如果不能保证主键不重复,则可以忽略“主键”列,MySQL会自动填充新的主键。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值