服务器之家:专注于VPS、云服务器配置技术及软件下载分享
分类导航

Mysql|Sql Server|Oracle|Redis|MongoDB|PostgreSQL|Sqlite|DB2|mariadb|Access|数据库技术|

服务器之家 - 数据库 - Mysql - SQL INSERT及批量的几种方式总结

SQL INSERT及批量的几种方式总结

2023-03-23 14:01风气云曦 Mysql

SQL提供了INSERT语句,用于将一行或多行插入表中,下面这篇文章主要给大家介绍了关于SQL INSERT及批量的几种方式,文中通过实例代码介绍的非常详细,需要的朋友可以参考下

1、常规INSERT写法

INSERT INTO ...  VALUES (...);

?
1
INSERT INTO 表名( `字段1`, `字段2`) VALUES ('字段1的值', '字段2的值');

2、SELECT语句返回值INSERT

INSERT INTO ...VALUES (..., (select ...));

INSERT INTO 表名1(`字段1`, `字段2`) 
VALUES (字段1的值, (select 查询字段 from 表名2 where 条件));

也可以变化为查询多个字段,再新增数据

INSERT INTO ...VALUES (select ...);

?
1
2
3
4
5
6
7
8
INSERT IGNORE INTO `表名1` (
  `字段1`,
  `字段2`
)
SELECT
  `字段3` AS 字段1,
  '字段4' AS 字段2
FROM `表名2` WHERE 条件

注意:查询出来必须只有一个行

3、批量多行INSERT

INSERT INTO ... VALUES (...), (...),(...);

?
1
2
3
4
INSERT INTO 表名(字段1, 字段2)
VALUES (字段1数据, 字段2数据),
       (字段1数据, 字段2数据),
       (字段1数据, 字段2数据);

或者多行查询后新增,

INSERT INTO ... VALUES (...,select...), (...,select...),(...,select...);

?
1
2
3
4
5
INSERT INTO 表名1(`字段1`, `字段2`)
VALUES
(字段1的值, (select 查询字段 from 表名2 where 条件)),
(字段1的值, (select 查询字段 from 表名3 where 条件)),
(字段1的值, (select 查询字段 from 表名4 where 条件));

或者使用union all:

INSERT INTO ... 

(SELECT ...,(select ...) ) union all
(SELECT ...,(select ...) ) union all
(SELECT ...,(select ...) );

?
1
2
3
4
INSERT INTO 表名1 (`字段1`, `字段2`)
(SELECT 字段1的值,(select 查询字段 from 表名2 where 条件) FROM 表名3 WHERE 条件) union all
(SELECT 字段1的值,(select 查询字段 from 表名2 where 条件) FROM 表名3 WHERE 条件) union all
(SELECT 字段1的值,(select 查询字段 from 表名3 where 条件) FROM 表名4 WHERE 条件);

分享一下、日常使用到几种写法,如有错误,欢迎指正。

附:插入检索出的数据

?
1
2
3
4
5
6
7
8
9
10
11
INSERT INTO Customers(ID,
name,
address,
city,
country)
SELECT ID,
name,
address,
city,
country
from Custnew;

总结

到此这篇关于SQL INSERT及批量的几种方式的文章就介绍到这了,更多相关SQL INSERT批量方式内容请搜索服务器之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持服务器之家!

原文链接:https://blog.csdn.net/star_flush/article/details/127205393

延伸 · 阅读

精彩推荐
  • MysqlMySQL优化SQL语句的技巧

    MySQL优化SQL语句的技巧

    这篇文章主要介绍了常见优化SQL语句的技巧,帮助大家更好的提高数据库的性能,感兴趣的朋友可以了解下...

    xcbeyond11612021-01-27
  • Mysql阿里巴巴Druid,轻松实现MySQL数据库加密!

    阿里巴巴Druid,轻松实现MySQL数据库加密!

    本文我们使用阿里巴巴开源的 Druid 实现了 MySQL 的密码加密,Druid 的加密过程非常方便,无需编写任何代码,只需要添加 Druid 依赖,再通过 Druid 的工具类生...

    Java中文社群6102021-03-02
  • Mysql解决阿里云ECS服务器下安装MySQL无法远程连接的问题

    解决阿里云ECS服务器下安装MySQL无法远程连接的问题

    这篇文章介绍了解决阿里云ECS服务器安装MySQL无法远程连接的方法,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学...

    taadis9202022-07-13
  • MysqlMySQL中数据库优化的常见sql语句总结

    MySQL中数据库优化的常见sql语句总结

    这篇文章主要为大家总结了一些MySQL中数据库优化的常见sql语句,文中的示例代码讲解详细,对我们学习MySQL有一定帮助,需要的可以参考一下...

    刘Java11922022-08-24
  • Mysql一条sql语句完成MySQL去重留一

    一条sql语句完成MySQL去重留一

    在使用mysql时,有时需要查询出某个字段不重复的记录,虽然mysql提供 有distinct这个关键字来过滤掉多余的重复记录只保留一条,但往往只用它来返回不重复...

    命中水2992020-08-21
  • MysqlMySQL8.0中binlog的深入讲解

    MySQL8.0中binlog的深入讲解

    这篇文章主要给大家介绍了MySQL8.0中binlog的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们...

    JavaEdge在掘金11602021-02-20
  • Mysqlmysql 锁表锁行语句分享(MySQL事务处理)

    mysql 锁表锁行语句分享(MySQL事务处理)

    下面这个语句是锁定一行数据,开始读取,一直到删除后都不会有第二个人也读到这条数据 ...

    MYSQL教程网6512019-11-25
  • Mysql9种 MySQL数据库优化的技巧

    9种 MySQL数据库优化的技巧

    这篇文章小编主要给大家介绍的是 MySQL数据库优化的正确姿势,九种方法呢!!!需要的小伙伴赶快收藏起来吧...

    IT老哥9212021-11-15