SQL(8):INSERT INTO SELECT与SELECT INTO,选数据出来,放到另一个表中
INSERT INTO SELECT 语句从一个表复制数据,然后把数据插入到一个已存在的表中;
SELECT INTO 语句从一个表复制数据,然后把数据插入到另一个新表中
想象一下你有两个本子(数据库里的表):
本子A(源头):里面记录了很多信息,比如所有朋友的电话号码。本子B(目的地):可能是空的,也可能已经有一些信息了。
现在来看这两个操作:
1. INSERT INTO SELECT (往 已有的 本子里 加 内容)
- 作用:从一个表(
本子A)里选出一些数据,然后把这些选出来的数据 插入 到 另一个已经存在 的表(本子B)里。 - 通俗理解:你觉得
本子A里记录的“老同学”的电话很有用,想把他们 也 记录到你 已经有 的本子B(比如叫“重要联系人”)里。你不会扔掉本子B,只是在后面 追加 这些老同学的电话。 - 关键点:
本子B(目标表)必须提前存在。- 通常是往
本子B里 增加 数据行,原有数据一般不动。 - 你需要确保从
本子A选出来的数据格式(列的数量、类型)能对应放到本子B的列里。
2. SELECT INTO (直接 新建 一个本子并 装满 内容)
- 作用:从一个表(
本子A)里选出一些数据,然后用这些选出来的数据 创建一个全新的表(我们叫它本子C),并把数据 直接放进去。 - 通俗理解:你想把
本子A里所有“北京”的朋友单独整理出来。于是你 拿出一个全新的、空白的本子(本子C),然后把本子A里所有北京朋友的信息 抄写 到这个 新本子 里。操作完成后,你就多了一个专门记录北京朋友的本子C。 - 关键点:
本子C(目标表)在操作前不能存在,这个命令会 自动创建 它。- 新创建的
本子C的结构(列名、数据类型)通常是根据你从本子A选择的数据来决定的。 - 重要提示:
SELECT INTO的语法在不同的数据库系统里可能不一样!- 在 SQL Server 或 MS Access 里,就用
SELECT ... INTO 新表 FROM ...。 - 在 MySQL, PostgreSQL, Oracle 等数据库里,通常用
CREATE TABLE 新表 AS SELECT ... FROM ...来实现类似的功能。虽然名字不同,但做的事情(根据查询结果创建新表并填充数据)是一样的。
- 在 SQL Server 或 MS Access 里,就用
关系和区别总结
- 关系:两者都涉及到从一个地方(源表/查询)选择 (SELECT) 数据,然后把数据放到另一个地方。
- 核心区别:
- 目标是否存在:
INSERT INTO SELECT的目标表 必须已存在;SELECT INTO(或CREATE TABLE AS SELECT) 的目标表 必须不存在,它会帮你创建。 - 主要用途:
INSERT INTO SELECT主要用于 追加数据、合并数据到现有结构中、数据归档(把旧数据移到另一个已存在的归档表)。SELECT INTO(或CREATE TABLE AS SELECT) 主要用于 创建新表、快速备份表的某个子集、创建临时表用于复杂查询或报表。
- 目标是否存在:
生动形象的例子
例子一:用 INSERT INTO SELECT 整理会员等级
- 场景:你有一个网店,有一个
Customers表记录所有顾客信息,还有一个 已经存在 的VIP_Customers表,专门存放 VIP 顾客信息。现在你想把Customers表里消费额超过 5000 元的顾客,加入 到VIP_Customers表里。 - 操作 (类似
INSERT INTO SELECT):- 你拿出 已经有 的
VIP_Customers会员名册(目标表已存在)。 - 你翻看
Customers总顾客名单(源表),找出消费超过 5000 的人。 - 你把这些人的信息 抄写/添加 到
VIP_Customers名册的 后面。
- 你拿出 已经有 的
- 数据库语句 (概念性):
INSERT INTO VIP_Customers (CustomerID, Name, JoinDate) SELECT CustomerID, Name, RegistrationDate FROM Customers WHERE TotalSpent > 5000;
例子二:用 SELECT INTO (或 CREATE TABLE AS SELECT) 制作临时活动名单
- 场景:你要为下个月过生日的顾客举办一个特别活动。你需要 临时创建一个新名单,只包含这些顾客的姓名和邮箱,方便发送邀请邮件。
- 操作 (类似
SELECT INTO/CREATE TABLE AS SELECT):- 你 拿出一张全新的白纸 (目标表不存在,将被创建)。
- 你翻看
Customers总顾客名单(源表),找出下个月过生日的人。 - 你把这些人的姓名和邮箱 抄写 到这张 新白纸 上,形成一个独立的“下月生日顾客活动名单”。
- 数据库语句 (SQL Server 概念性):
SELECT Name, Email INTO BirthdayCampaignList FROM Customers WHERE MONTH(BirthDate) = MONTH(GETDATE() + INTERVAL '1' MONTH); - 数据库语句 (MySQL/PostgreSQL 概念性):
CREATE TABLE BirthdayCampaignList AS SELECT Name, Email FROM Customers WHERE MONTH(BirthDate) = MONTH(CURDATE() + INTERVAL 1 MONTH);
相关文章:
SQL(8):INSERT INTO SELECT与SELECT INTO,选数据出来,放到另一个表中
INSERT INTO SELECT 语句从一个表复制数据,然后把数据插入到一个已存在的表中; SELECT INTO 语句从一个表复制数据,然后把数据插入到另一个新表中 想象一下你有两个本子(数据库里的表): 本子A (源头)&…...
DeepSeek 与开源:肥沃土壤孕育 AI 硕果
当 DeepSeek 以低成本推理、多模态能力惊艳全球时,人们惊叹于国产AI技术的「爆发力」,却鲜少有人追问:这份爆发力的根基何在? 答案,藏在中国开源生态二十余年的积淀中。 从倪光南院士呼吁「以开源打破垄断」…...
2025高频面试算法总结篇【动态规划】
文章目录 直接刷题链接直达编辑距离最长回文子串完全平方数最长递增子序列正则表达式匹配零钱兑换鸡蛋掉落单词拆分 直接刷题链接直达 动态规划(Dynamic Programming, DP)是一种通过拆解子问题并利用子问题的最优解来构建整体问题的最优解的方法&#x…...
Maven中clean、compil等操作介绍和Pom.xml中各个标签介绍
文章目录 前言Maven常用命令1.clean2.vaildate3.compile4.test5.package6.verify7.install8.site9.deploy pom.xml标签详解格式<?xml version"1.0" encoding"UTF-8"?>(xml版本和编码)modelVersion(xml版本)groupIdÿ…...
力扣刷题-热题100题-第35题(c++、python)
146. LRU 缓存 - 力扣(LeetCode)https://leetcode.cn/problems/lru-cache/?envTypestudy-plan-v2&envIdtop-100-liked 双向链表哈希表 内置函数 对于c有list可以充当双向链表,unordered_map充当哈希表;python有OrderedDic…...
Nautilus 正式发布:为 Sui 带来可验证的链下隐私计算
作为 Sui 安全工具包中的强大新成员,Nautilus 现已上线 Sui 测试网。它专为 Web3 开发者打造,支持保密且可验证的链下计算。Nautilus 应用运行于开发者自主管理的可信执行环境(Trusted Execution Environment,TEE)中&a…...
云服务器CVM标准型S5实例性能测评——2025腾讯云
腾讯云服务器CVM标准型S5实例具有稳定的计算性能,CPU采用采用 Intel Xeon Cascade Lake 或者 Intel Xeon Cooper Lake 处理器,主频2.5GHz,睿频3.1GHz,CPU内存配置2核2G、2核4G、4核8G、8核16G等配置,公网带宽可选1M、3…...
优化方法介绍(二)——BFGS 方法介绍
优化方法介绍(二) 本博客是一个系列博客,主要是介绍各种优化方法,使用 matlab 实现,包括方法介绍,公式推导和优化过程可视化 1 BFGS 方法介绍 BFGS 的其实就是一种改良后的牛顿法,因为计算二阶导数 Hessian 矩阵所需的计算资源是比较大的,复杂度为 O ( 2 ⋅ n 2 ) …...
leetcode面试经典算法题——2
链接:https://leetcode.cn/studyplan/top-interview-150/ 20. 有效的括号 给定一个只包括 ‘(’,‘)’,‘{’,‘}’,‘[’,‘]’ 的字符串 s ,判断字符串是否有效。 有效字符串需满足&#x…...
Ubuntu20.04安装企业微信
建议先去企业微信官网看一下有没有linux版本,没有的话在按如下方式安装,不过现在是没有的。 方案 1、使用docker容器 2、使用deepin-wine 3、使用星火应用商店 4. 使用星火包deepin-wine 5、使用ukylin-wine 本人对docker不太熟悉,现…...
在Ubuntu服务器上部署xinference
一、拉取镜像 docker pull xprobe/xinference:latest二、启动容器(GPU) docker run -d --name xinference -e XINFERENCE_MODEL_SRCmodelscope -p 9997:9997 --gpus all xprobe/xinference:latest xinference-local -H 0.0.0.0 # 启动一个新的Docker容…...
异步编程——微信小程序
1. 前言 引用来自:微信小程序开发中的多线程处理与异步编程_微信小程序 多线程-CSDN博客 微信小程序是基于JavaScript开发的,与浏览器JavaScript不同,小程序运行在WebView内部,没有多线程的概念。小程序的 JavaScript 是单线程的…...
Hive null safe的用法
总结: null safe 是用<> 代表比较,而不是用 。null <> null 返回 true, 而 null null 代表 false。 NULL 和任意字符比较都返回 NULL,而不是 true 或者 false。如 SELECT 1 1, NULL NULL, 1 NULL;输出 true NULL NULL如果我…...
STM32 四足机器人常见问题汇总
文章不介绍具体参数,有需求可去网上搜索。 特别声明:不论年龄,不看学历。既然你对这个领域的东西感兴趣,就应该不断培养自己提出问题、思考问题、探索答案的能力。 提出问题:提出问题时,应说明是哪款产品&a…...
鸿蒙NEXT开发文件预览工具类(ArkTs)
import { uniformTypeDescriptor } from kit.ArkData; import { filePreview } from kit.PreviewKit; import { FileUtil } from ./FileUtil; import { AppUtil } from ./AppUtil; import { WantUtil } from ./WantUtil;/*** 文件预览工具类* 提供文件预览、加载、判断等功能。…...
Windows 下实现 PHP 多版本动态切换管理(适配 phpStudy)+ 一键切换工具源码分享
🚀 Windows 下实现 PHP 多版本动态切换管理(适配 phpStudy) 一键切换工具源码分享 📦 工具特点🧪 效果展示🧱 环境要求🧑💻 源码展示:php_switcher.py🛠 打…...
ReportLab 导出 PDF(图文表格)
ReportLab 导出 PDF(文档创建) ReportLab 导出 PDF(页面布局) ReportLab 导出 PDF(图文表格) 文章目录 1. Paragraph(段落)2. Table(表格)3. VerticalBarChart࿰…...
【Kubernetes基础--Service深入理解】--查阅笔记4
目录 Service 的用法docker 对外提供服务service 对外提供服务 从集群外部访问 Pod 或 Service将容器应用的端口号映射到物理机将 Service 的端口号映射到物理机 Ingress:HTTP 7层路由机制创建Ingress Controller和默认的backend服务 k8s 通过创建 Serviceÿ…...
蓝桥杯 5. Excel地址
原题目链接 题目描述 Excel 单元格的地址表示很有趣,它使用字母来表示列号。例如: A 表示第 1 列B 表示第 2 列...Z 表示第 26 列AA 表示第 27 列AB 表示第 28 列BA 表示第 53 列... Excel 的最大列号是有限的,但本题将这种表示法一般化&…...
yolov8复现
Yolov8的复现流程主要包含环境配置、下载源码和验证环境三大步骤: 环境配置 查看电脑状况:通过任务管理器查看电脑是否有独立显卡(NVIDIA卡)。若有,后续可安装GPU版本的pytorch以加速训练;若没有࿰…...
C#学习第15天:泛型
什么是泛型? 定义:泛型允许您在类、接口和方法中定义占位符,这些占位符在使用时可以指定为具体的类型。作用:通过减少重复代码和提供更强的类型检查,提高了代码的可重用性和性能。 泛型的核心概念 1.泛型类 泛型类能…...
WPF ObjectDataProvider
在 WPF(Windows Presentation Foundation)中,ObjectDataProvider 是一个非常有用的类,用于将非 UI 数据对象(如业务逻辑类或服务类)与 XAML 绑定集成。它允许在 XAML 中直接调用方法、访问属性或实例化对象,而无需编写额外的代码。以下是关于 ObjectDataProvider 的详细…...
Windows系统安装RustDesk Server的详细步骤和客户端设置
Windows系统安装RustDesk Server的详细步骤 在Windows系统上安装RustDesk Server涉及几个关键步骤,包括安装必要的依赖、下载RustDesk Server程序、配置并启动服务。以下是详细的步骤: 1. 安装Node.js和PM2 RustDesk Server的某些版本可能需要Node.js环境来运行,而PM2是一…...
RestSharp和Newtonsoft.Json结合发送和解析http
1.下载RestSharp和Newtonsoft.Json 2编写ApiRequest和ApiResponse和调用工具类HttpRestClient 请求模型 /// <summary>/// 请求模型/// </summary>public class ApiRequest{/// <summary>/// 请求地址/api路由地址/// </summary>public string Route {…...
《基于 RNN 的股票预测模型代码优化:从重塑到直接可视化》
在深度学习领域,使用循环神经网络(RNN)进行股票价格预测是一个常见且具有挑战性的任务。本文将围绕一段基于 RNN 的股票预测代码的改动前后差别展开,深入剖析代码的优化思路和效果。 原始代码思路与问题 原始代码实现了一个完整…...
【Pytorch之一】--torch.stack()方法详解
torch.stack方法详解 pytorch官网注释 Parameters tensors:张量序列,也就是要进行stack操作的对象们,可以有很多个张量。 dim:按照dim的方式对这些张量进行stack操作,也就是你要按照哪种堆叠方式对张量进行堆叠。dim的…...
半导体设备通信标准—secsgem v0.3.0版本使用说明文档(3)之SECS(SEMI E4,SEMI E5)
文章目录 1、变量1.1、数组类型1.2、获取数据1.3、设置数据1.4、编码/解码1.5、Array1.6、List1.7、动态变量 2、Items2.1、 Item types2.2、 Creating items2.1.1、 From value2.1.2、From SML text2.1.3、 From protocol text 2.3、 Getting data2.3.1、 Python value2.3.2、…...
数据中台(大数据平台)之数据资源目录
数据资源目录是数据管理的账本,是数据应用的基础,更是是数据治理成果的体现,因此数据中台产品应提供数据资源目录编制、发布、资源挂载、下架的管理能力。 1.数据资源目录分类 资源目录能够支持基于业务特点创建和维护基础目录分类和特色目…...
【随身WiFi】随身WiFi Debian系统优化教程
0.操作前必看 本教程基于Debian系统进行优化,有些操作对随身WiFi来说可能会带来负优化,根据需要选择。 所有操作需要在root用户环境下运行,否则都要加sudo 随身wifi Debian系统,可以去某安的随声WiFi模块自行搜索刷机 点赞&am…...
【WORD】批量将doc转为docx
具体步骤进行: 打开Word文档,按下AltF11快捷键,打开VBA编辑器。在VBA编辑器中,左侧的“项目资源管理器”窗口会显示当前打开的Word文档相关项目。找到您要添加代码的文档项目(通常以文档名称命名)…...
