web开发中,我们经常需要将一个表的数据插入到另外一个表,有时还需要指定导入字段,设置只需要导入目标表中不存在的记录,虽然这些都可以在程序中拆分成简单sql来实现,但是用一个sql的话,会节省大量代码。下面我以mysql数据库为例分情况一一说明:
两张表:insertTest和insertTest2,前者中有测试数据
create table insertTest(id int(4),name varchar(12));
insert into insertTest values(100,'liudehua');
insert into insertTest values(101,'zhourunfa');
insert into insertTest values(102,'zhouhuajian');
1.如果2张表的字段一致,并且希望插入全部数据,可以用这种方法:
INSERT INTO 目标表 SELECT * FROM 来源表;
insert into insertTest select * from insertTest2;
2.如果只希望导入指定字段,可以用这种方法:
INSERT INTO 目标表 (字段1, 字段2, ...) SELECT 字段1, 字段2, ... FROM 来源表;
注意字段的顺序必须一致。
insert into insertTest2(id) select id from insertTest2;
3.如果您需要只导入目标表中不存在的记录,可以使用这种方法:
INSERT INTO 目标表
(字段1, 字段2, ...)
SELECT 字段1, 字段2, ...
FROM 来源表
WHERE not exists (select * from 目标表
where 目标表.比较字段 = 来源表.比较字段);
1>.插入多条记录:
insert into insertTest2
(id,name)
select id,name
from insertTest
where not exists (select * from insertTest2
where insertTest2.id=insertTest.id);
2>.插入一条记录:
insert into insertTest
(id, name)
SELECT 100, 'liudehua'
FROM dual
WHERE not exists (select * from insertTest
where insertTest.id = 100);
使用 dual 作表名,select 语句后面直接跟上要插入的字段的值。
引自:
http://yangfei520.blog.51cto.com/1041581/381568
分享到:
相关推荐
其实我在插入1000万条数据的时候遇到了一些问题,现在先来解决他们,一开始我插入100万条数据时候报错,控制台的信息如下: com.mysql.jdbc.PacketTooBigException: Packet for query is too large (4232009 > ...
1. 插入数据:使用`INSERT INTO`命令将数据插入到表中。 2. 删除数据:使用`DELETE FROM`命令删除满足特定条件的记录。 3. 修改数据:使用`UPDATE`命令更新表中已存在的记录。 五、表联系的创建与修改 1. 多对多...
MySQL数据库是世界上最受欢迎的开源关系型...通过本课程的学习,你应该能够自信地使用Navicat进行数据插入、修改和删除,从而更好地管理和维护你的MySQL数据库。感谢你的学习,祝你在数据库管理的道路上越走越远!
要将DataFrame中的数据插入MySQL数据库,首先需要安装`mysql-connector-python`库,它提供了连接MySQL数据库的接口。安装命令如下: ``` pip install mysql-connector-python ``` 接下来,你可以创建数据库连接...
在C#编程中,连接MySQL数据库并显示数据表是一个常见的任务,尤其对于初学者来说,了解这个过程至关重要。本文将详细讲解如何使用C#连接MySQL数据库,并将数据映射到界面上显示。 首先,我们需要安装必要的库。在C#...
- 创建MySQL数据库和表:在MySQL环境中,创建一个新的数据库并定义一个表结构,确保字段类型与Excel中的数据类型相匹配。 - 导入CSV数据:使用MySQL的`LOAD DATA INFILE`命令,将CSV文件导入到已创建的表中。这一...
这个库允许我们通过ADO.NET接口与Mysql数据库进行通信。在Visual Studio 2008中,可以通过NuGet包管理器来安装这个库,或者手动下载并添加到项目的引用中。 创建数据库的过程通常涉及到建立一个连接字符串,连接到...
本项目"java实现Excel数据导入到mysql数据库"旨在利用Java技术将Excel表格中的数据高效地导入到MySQL数据库,并且在数据库中存在相同数据时进行更新,同时也支持将数据库中的数据导出到Excel表中。这个过程涉及到多...
总的来说,“串口数据采集入MySQL数据库V2.0”是一个集成串口通信和数据库管理的解决方案,旨在帮助用户高效地收集、存储和分析来自各种串口设备的数据。通过理解并充分利用这一系统,用户能够更好地利用现场数据,...
实验中,学生将学习使用 Insert 语句进行数据插入、Delete 语句删除数据、TRUNCATE TABLE 语句清空表数据、Update 语句修改数据。 1. 数据插入操作 在实验中,学生将学习使用 Insert 语句插入数据,包括单记录插入...
【标题】"美国城市地区Mysql数据库"是一个包含详尽美国城市和地区信息的数据库,它在MySQL环境中运行,提供了一种高效的方式来存储和查询美国各地的地理数据。 【描述】这个数据库涵盖了美国51个行政区(包括50个州...
SELECT` SQL语句,将筛选后的数据插入历史表。 5. **定时任务**:为了实现定时迁移,可以结合`cron`服务来安排脚本定期执行。这需要设置一个cron作业,指定迁移的频率(如每天、每周等)。 6. **日志记录**:为了...
本文将详细介绍如何将数据从一个数据库导入到另一个数据库中,同时也会涉及到“源码”和“工具”这两个标签所涵盖的相关内容。 首先,我们需要理解数据库的基本概念。数据库是存储和管理数据的系统,它允许我们组织...
接下来,我们需要创建一个与TXT文件结构匹配的MySQL数据库表。假设我们的TXT文件有三列:ID(整数)、Name(字符串)和Date(日期),那么可以创建如下表结构: ```sql CREATE TABLE `import_data` ( `ID` INT NOT...
只要学我一样编写这么一个工具类便可以实现批量插入多条数据,百条,千条,万条,后期还会继续优化增加数据时的速度!有点代码基础的保证能看懂,此项目已经有了前端界面你可以直接的导入然后运行测试既可以了,表...
在本文中,我们将深入探讨如何使用Java开发一个串口助手应用程序,该程序能接收来自串行端口的数据并将其解析后存储到MySQL数据库中。首先,我们需要了解串口通信的基本概念,然后学习Java如何处理串口输入,接着是...
标题 "pbootcms数据sqlite转mysql数据库" 涉及的是一个常见的数据库迁移过程,从SQLite数据库系统转换到MySQL数据库系统。这个过程在网站或应用的开发和维护中经常遇到,尤其是在更换数据库服务或者需要更强大的...
"MySQL数据库创建和表创建" 本教程将指导您在MySQL中创建数据库和表,首先需要安装和配置MySQL数据库。 1. MySQL的安装和配置 在安装MySQL之前,需要下载MySQL安装文件,例如mysql-5.5.12-win32.msi。运行该程序...
MySQL数据库概览 MySQL是由瑞典MySQL AB公司开发的小型数据库管理系统,它属于开源软件范畴,意味着其源代码是开放的,可以被公众查看和修改。MySQL广泛应用于从大型企业系统到专用的嵌入式应用系统中,支持各种不同...