SQL(8):INSERT INTO SELECT与SELECT INTO,选数据出来,放到另一个表中

news2025/4/18 22:27:38

INSERT INTO SELECT 语句从一个表复制数据,然后把数据插入到一个已存在的表中;
SELECT INTO 语句从一个表复制数据,然后把数据插入到另一个新表中

想象一下你有两个本子(数据库里的表):

  1. 本子A (源头):里面记录了很多信息,比如所有朋友的电话号码。
  2. 本子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 ServerMS Access 里,就用 SELECT ... INTO 新表 FROM ...
      • MySQL, PostgreSQL, Oracle 等数据库里,通常用 CREATE TABLE 新表 AS SELECT ... FROM ... 来实现类似的功能。虽然名字不同,但做的事情(根据查询结果创建新表并填充数据)是一样的。

关系和区别总结

  • 关系:两者都涉及到从一个地方(源表/查询)选择 (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)
    1. 你拿出 已经有VIP_Customers 会员名册(目标表已存在)。
    2. 你翻看 Customers 总顾客名单(源表),找出消费超过 5000 的人。
    3. 你把这些人的信息 抄写/添加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)
    1. 拿出一张全新的白纸 (目标表不存在,将被创建)。
    2. 你翻看 Customers 总顾客名单(源表),找出下个月过生日的人。
    3. 你把这些人的姓名和邮箱 抄写 到这张 新白纸 上,形成一个独立的“下月生日顾客活动名单”。
  • 数据库语句 (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);

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2337577.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

DeepSeek 与开源:肥沃土壤孕育 AI 硕果

当 DeepSeek 以低成本推理、多模态能力惊艳全球时,人们惊叹于国产AI技术的「爆发力」,却鲜少有人追问:这份爆发力的根基何在? 答案,藏在中国开源生态二十余年的积淀中。 从倪光南院士呼吁「以开源打破垄断」&#xf…

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&#xff08;xml版本&#xff09;groupId&#xff…

力扣刷题-热题100题-第35题(c++、python)

146. LRU 缓存 - 力扣&#xff08;LeetCode&#xff09;https://leetcode.cn/problems/lru-cache/?envTypestudy-plan-v2&envIdtop-100-liked 双向链表哈希表 内置函数 对于c有list可以充当双向链表&#xff0c;unordered_map充当哈希表&#xff1b;python有OrderedDic…

Nautilus 正式发布:为 Sui 带来可验证的链下隐私计算

作为 Sui 安全工具包中的强大新成员&#xff0c;Nautilus 现已上线 Sui 测试网。它专为 Web3 开发者打造&#xff0c;支持保密且可验证的链下计算。Nautilus 应用运行于开发者自主管理的可信执行环境&#xff08;Trusted Execution Environment&#xff0c;TEE&#xff09;中&a…

云服务器CVM标准型S5实例性能测评——2025腾讯云

腾讯云服务器CVM标准型S5实例具有稳定的计算性能&#xff0c;CPU采用采用 Intel Xeon Cascade Lake 或者 Intel Xeon Cooper Lake 处理器&#xff0c;主频2.5GHz&#xff0c;睿频3.1GHz&#xff0c;CPU内存配置2核2G、2核4G、4核8G、8核16G等配置&#xff0c;公网带宽可选1M、3…

leetcode面试经典算法题——2

链接&#xff1a;https://leetcode.cn/studyplan/top-interview-150/ 20. 有效的括号 给定一个只包括 ‘(’&#xff0c;‘)’&#xff0c;‘{’&#xff0c;‘}’&#xff0c;‘[’&#xff0c;‘]’ 的字符串 s &#xff0c;判断字符串是否有效。 有效字符串需满足&#x…

Ubuntu20.04安装企业微信

建议先去企业微信官网看一下有没有linux版本&#xff0c;没有的话在按如下方式安装&#xff0c;不过现在是没有的。 方案 1、使用docker容器 2、使用deepin-wine 3、使用星火应用商店 4. 使用星火包deepin-wine 5、使用ukylin-wine 本人对docker不太熟悉&#xff0c;现…

在Ubuntu服务器上部署xinference

一、拉取镜像 docker pull xprobe/xinference:latest二、启动容器&#xff08;GPU&#xff09; 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. 前言 引用来自&#xff1a;微信小程序开发中的多线程处理与异步编程_微信小程序 多线程-CSDN博客 微信小程序是基于JavaScript开发的&#xff0c;与浏览器JavaScript不同&#xff0c;小程序运行在WebView内部&#xff0c;没有多线程的概念。小程序的 JavaScript 是单线程的…

STM32 四足机器人常见问题汇总

文章不介绍具体参数&#xff0c;有需求可去网上搜索。 特别声明&#xff1a;不论年龄&#xff0c;不看学历。既然你对这个领域的东西感兴趣&#xff0c;就应该不断培养自己提出问题、思考问题、探索答案的能力。 提出问题&#xff1a;提出问题时&#xff0c;应说明是哪款产品&a…

Windows 下实现 PHP 多版本动态切换管理(适配 phpStudy)+ 一键切换工具源码分享

&#x1f680; Windows 下实现 PHP 多版本动态切换管理&#xff08;适配 phpStudy&#xff09; 一键切换工具源码分享 &#x1f4e6; 工具特点&#x1f9ea; 效果展示&#x1f9f1; 环境要求&#x1f9d1;‍&#x1f4bb; 源码展示&#xff1a;php_switcher.py&#x1f6e0; 打…

ReportLab 导出 PDF(图文表格)

ReportLab 导出 PDF&#xff08;文档创建&#xff09; ReportLab 导出 PDF&#xff08;页面布局&#xff09; ReportLab 导出 PDF&#xff08;图文表格) 文章目录 1. Paragraph&#xff08;段落&#xff09;2. Table&#xff08;表格&#xff09;3. VerticalBarChart&#xff0…

yolov8复现

Yolov8的复现流程主要包含环境配置、下载源码和验证环境三大步骤&#xff1a; 环境配置 查看电脑状况&#xff1a;通过任务管理器查看电脑是否有独立显卡&#xff08;NVIDIA卡&#xff09;。若有&#xff0c;后续可安装GPU版本的pytorch以加速训练&#xff1b;若没有&#xff0…

RestSharp和Newtonsoft.Json结合发送和解析http

1.下载RestSharp和Newtonsoft.Json 2编写ApiRequest和ApiResponse和调用工具类HttpRestClient 请求模型 /// <summary>/// 请求模型/// </summary>public class ApiRequest{/// <summary>/// 请求地址/api路由地址/// </summary>public string Route {…

【Pytorch之一】--torch.stack()方法详解

torch.stack方法详解 pytorch官网注释 Parameters tensors&#xff1a;张量序列&#xff0c;也就是要进行stack操作的对象们&#xff0c;可以有很多个张量。 dim&#xff1a;按照dim的方式对这些张量进行stack操作&#xff0c;也就是你要按照哪种堆叠方式对张量进行堆叠。dim的…

数据中台(大数据平台)之数据资源目录

数据资源目录是数据管理的账本&#xff0c;是数据应用的基础&#xff0c;更是是数据治理成果的体现&#xff0c;因此数据中台产品应提供数据资源目录编制、发布、资源挂载、下架的管理能力。 1.数据资源目录分类 资源目录能够支持基于业务特点创建和维护基础目录分类和特色目…

【随身WiFi】随身WiFi Debian系统优化教程

0.操作前必看 本教程基于Debian系统进行优化&#xff0c;有些操作对随身WiFi来说可能会带来负优化&#xff0c;根据需要选择。 所有操作需要在root用户环境下运行&#xff0c;否则都要加sudo 随身wifi Debian系统&#xff0c;可以去某安的随声WiFi模块自行搜索刷机 点赞&am…

JAVA Web_定义Servlet2_学生登录验证Servlet

题目 页面StudentLogin.html中有一HTML的表单代码如下&#xff1a; <form action"studentLogin" method"post">学生姓名&#xff1a;<input type"text" name"stuName" value""><br>登录密码&#xff1a;…

Unity入门笔记(缘更)

内容来源SiKi学院的Luna’s Fantasy 文章目录 一、基础知识1.准备2.基础知识1.层级(Layer)2.轴心点3.预制体(Prefab)4.刚体组件(Rigidbody)5.碰撞器组件(BoxCollider) 二、代码1.移动 一、基础知识 1.准备 Unity安装&#xff1a; https://unity.cn 2.基础知识 1.层级(Layer…

【Python】用Python写一个俄罗斯方块玩玩

【Python】用Python写一个俄罗斯方块玩玩 一、引言1.成品效果展示 二、思考准备1.思考设计2.代码设计2.1 游戏页面2.2 控件设计2.2.1 方块生成2.2.2 方块碰撞2.2.3 方块消融2.2.4 游戏主循环2.2.5 游戏窗口 三、游戏完整版 一、引言 今日看到侄子在玩游戏&#xff0c;凑近一看…