mysql数据库中,通过一条insert into语句,同时插入多个值

本文介绍了在MySQL中如何使用一条`INSERT INTO`语句高效地插入多行数据,对比了传统的多条`INSERT INTO`语句方式,并强调了这种方式的便利性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

需求描述

  今天在看一本mysql的书籍,发现一个mysql中insert into好用的技巧,就是通过

  1条insert into语句,插入多行数据,而不是多个insert into语句。在此记录下。

测试过程

1.常规的通过多个insert into语句插入多行数据

create table tab_ts01(id int,num01 int);
insert into tab_ts01 values (1,2);
insert into tab_ts01 values (2,3);
insert into tab_ts01 values (5,55);
insert into tab_ts01 values (40,22);

执行过程

mysql> drop table if exists tab_ts01;
Query OK, 0 rows affected (0.08 sec)

mysql> create table tab_ts01(id int,num01 int);
Query OK, 0 rows affected (0.03 sec)

mysql> insert into tab_ts01 values (1,2);
Query OK, 1 row affected (0.02 sec)

mysql> insert into tab_ts01 values (2,3);
Query OK, 1 row affected (0.01 sec)

mysql> insert into tab_ts01 values (5,55);
Query OK, 1 row affected (0.01 sec)

mysql> insert into tab_ts01 values (40,22);
Query OK, 1 row affected (0.01 sec)

mysql> select * from tab_ts01;
+------+-------+
| id   | num01 |
+------+-------+
|    1 |     2 |
|    2 |     3 |
|    5 |    55 |
|   40 |    22 |
+------+-------+
4 rows in set (0.00 sec)

2.通过一条insert into语句,插入多行值

drop table if exists tab_ts01;
create table tab_ts01(id int,num01 int);
insert into tab_ts01 values (1,2),(2,3),(5,55),(40,22);

执行过程

mysql> drop table if exists tab_ts01;
Query OK, 0 rows affected (0.01 sec)

mysql> create table tab_ts01(id int,num01 int);
Query OK, 0 rows affected (0.12 sec)

mysql> insert into tab_ts01 values (1,2),(2,3),(5,55),(40,22);
Query OK, 4 rows affected (0.01 sec)
Records: 4  Duplicates: 0  Warnings: 0

mysql> select * from tab_ts01;
+------+-------+
| id   | num01 |
+------+-------+
|    1 |     2 |
|    2 |     3 |
|    5 |    55 |
|   40 |    22 |
+------+-------+
4 rows in set (0.00 sec)

 

备注:发现通过一条insert into语句能够达到与多个insert into语句同样的效果,而且更加的方便,可以作为一个小技巧。

 

文档创建时间:2018年3月21日15:02:39

转载于:https://www.cnblogs.com/chuanzhang053/p/8617092.html

INSERT INTO 语句是 SQL 中用于向数据库表中插入新记录的核心命令之一。其基本语法可以分为两种主要形式:一种是不指定列名而插入所有列的,另一种是指定列名并为这些列提供对应的。 ### 插入所有列的数据 如果要插入一行到表中,并且提供了该行所有列的,则可以省略列名列表。在这种情况下,VALUES 子句中的必须按照表定义中列的顺序来提供[^3]。 ```sql INSERT INTO table_name VALUES (value1, value2, value3, ...); ``` ### 指定列插入数据 当只需要为表中的某些列插入数据时,应该明确指定列名和相应的。这种方式更加灵活,也推荐在大多数情况下使用[^3]。 ```sql INSERT INTO table_name (column1, column2, column3, ...) VALUES (value1, value2, value3, ...); ``` ### 从一个表复制数据到另一个表 在 MySQL 数据库中,可以通过 `INSERT INTO SELECT` 语句将一个表中的数据复制到另一个已存在的表中。这对于数据迁移或者创建备份非常有用[^2]。 ```sql INSERT INTO target_table (column1, column2, column3, ...) SELECT column1, column2, column3, ... FROM source_table WHERE condition; -- 可选条件限制 ``` ### 自动递增字段处理 对于设置了 AUTO_INCREMENT 属性的列(如主键),无需手动为其赋。如果未指定该字段MySQL 会自动分配一个唯一的递增给它[^4]。例如,在创建用户表时,通常会让数据库自动生成用户的唯一标识符: ```sql CREATE TABLE users ( id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(100), email VARCHAR(150) ); -- 插入新的用户记录而不显式设置id INSERT INTO users (name, email) VALUES ('张三', 'zhangsan@example.com'); ``` 在这个例子中,尽管没有给出 `id` 的,但每新增一条记录,`id` 字段都会自动增加以确保每条记录都有唯一的标识符。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值