SQL (十四)插入数据(insert语句,把数据插入表中)

2023-05-16

文章目录

  • 插入完整的行:values子句
    • 不安全写法
    • 安全写法:在表名后的括号明确给出列名
    • 小结
  • 插入行的一部分:简单
  • 插入某些查询的结果(即检索出的数据):insert select
    • 示例:把另一个表的某几列合并到一个表中
  • 从一个表复制到另一个表:select into语句(不用insert语句实现数据的插入)
    • 示例
    • 小结
  • 总结

在这里插入图片描述

插入完整的行:values子句

不安全写法

在这里插入图片描述

insert into Customers
values('1000000006',
	   'Toy Land',
       '123 Any Street', 
       'New York', 
       'NY', 
       '11111', 
       'USA',
       NULL, 
       NULL);

在这里插入图片描述
总之就是次序很重要,但是次序很容易输入出错,所以这样写不安全

安全写法:在表名后的括号明确给出列名

也更繁琐,有个明确的对应关系,出错的概率就小很多
在这里插入图片描述

insert into Customers(cust_id, 
					  cust_name, 
                      cust_address,
                      cust_city, 
                      cust_state, 
                      cust_zip, 
                      cust_country, 
                      cust_contact,
                      cust_email)
values('1000000006',
       'Toy Land', 
       '123 Any Street', 
		'New York', 
        'NY', 
        '11111', 
        'USA', 
        null, 
        null);

由于我前面已经插入了这一行,所以这次插入同样的数据,出错了,但是代码本身没错哦
在这里插入图片描述

这种写法,可以换values列表的输入次序,只要把前面表名后括号中的项的顺序也改一改就好了,保证对应关系正确

insert into Customers(cust_id, 
					  cust_contact,
                      cust_email,
					  cust_name, 
                      cust_address,
                      cust_city, 
                      cust_state, 
                      cust_zip, 
                      cust_country)
values('1000000006',
		 null, 
         null,
       'Toy Land', 
       '123 Any Street', 
		'New York', 
        'NY', 
        '11111', 
        'USA');

当然还是报duplicate entry错误啦

小结

在这里插入图片描述

  • 不要用第一种不安全写法,因为表结构一旦变化,前面的代码就都完犊子。。。
  • 不管用第一种还是第二种,最起码的一点一定要保证:values列表的值的数目是对的,这样才是提供完整一行呀。否则就会出错。

插入行的一部分:简单

在这里插入图片描述
在这里插入图片描述
即只给某些列提供值,其他列不给值就行了。但是必须保证不给值的那些列允许是null值或者有默认值才可以

insert into Customers(cust_id, 
					  cust_contact,
                      cust_email,
					  cust_name, 
                      cust_address,
                      cust_city, 
                      cust_state)
values('1000000006',
		 null, 
         null,
       'Toy Land', 
       '123 Any Street', 
		'New York', 
        'NY');

当然还是报duplicate entry错误啦

插入某些查询的结果(即检索出的数据):insert select

在这里插入图片描述

示例:把另一个表的某几列合并到一个表中

示例代码

insert into Customers(cust_id, 
					  cust_contact, 
                      cust_email,
                      cust_name,
                      cust_address, 
                      cust_city, 
                      cust_state,
                      cust_zip,
                      cust_country)
select cust_id,
	   cust_contact, 
       cust_email,
       cust_name,
       cust_address, 
       cust_city, 
       cust_state, 
       cust_zip,
       cust_country
from CustNew;

这个代码会报错,因为我们的数据库没有CustNew这个表。但是不影响学习这个知识
在这里插入图片描述

在这里插入图片描述

  • insert select可以用一个select语句插入多行
  • 不要求insert into后表名括号中的列名和后面select后的列名一样,因为DBMS操作的是列的位置,列名只是给出位置而已,他可以正确解析。
  • insert select中的select语句可以包含where子句。

从一个表复制到另一个表:select into语句(不用insert语句实现数据的插入)

在这里插入图片描述

  • select into语句完全和insert无关,但也是用于实现数据插入的
  • select into 语句把数据导入到的新表是运行时创建的,之前并不存在
  • 而insert select是把一个表中导出的数据导入到另一个之前就存在的表。

示例

select * 
into CustCopy
from Customers;

mysql不支持这种语法。。。
在这里插入图片描述
它要这么写:

CREATE table CustCopy as
select * from Customers;

但我觉得还是select into更好,很易懂

小结

在这里插入图片描述

  • select inro可以用很多select选项,但是我这里用mysql不支持这种语法也没法做实验
  • 可以用联结从多个表插入数据,我觉得这个很难,两个复杂功能一起用,,,
  • 数据可以来自多个不同的表,但是去向只有一个,只能被插入到一个表

总结

在这里插入图片描述
关键字

  • into
  • values
  • select into:把行导入到一个
  • insert select:从其他表导入行
  • create table
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

SQL (十四)插入数据(insert语句,把数据插入表中) 的相关文章

  • mySQL中外键必须是索引吗?

    我刚刚自己创建了第一个 mySQL 表 除了使用 Joomla Wordpress 等 我是 MS SQL 开发人员多年 但通常我可以轻松地在 MS SQL 中创建外键 但我遇到了困难或这里缺乏知识 这是我的表格 users user id
  • C# 和 SQL Server 中嵌套 using 的用法

    这个线程是一个延续是否有理由在 C 中使用子句检查多个内部的 null https stackoverflow com questions 2220422 is there a reason to check for null inside
  • 消息传递功能创建 Sql 查询和数据库视图

    鉴于以下情况 我需要能够获取给定用户参与的所有线程的列表 首先按最新消息排序 仅显示最新消息 每个线程 1 条消息 这是上面的 SQL 查询 SELECT Message MessageId Message CreateDate Messa
  • 为什么这个简单的 MySQL 查询不返回该行?

    我在表中有一行users与用户名test 但由于某种原因 此查询返回空结果集 SELECT id FROM users WHERE username test AND id null 但是 如果我删除 id null段 查询返回结果id 1
  • sql server中基于分区的Min()和Max()

    我想使用最小和最大函数 但要符合某些标准 Create Table Test Id Int Identity 1 1 Category Varchar 100 DateTimeStamp DateTime Insert into Test
  • 在源代码管理中维护存储过程

    你们如何维护存储过程 由于一些不同的原因 我想保留它们的版本 本周末我还将设置 Cruisecontrol net 和 nant 来自动化构建 我正在考虑编写一些代码 为我的开发数据库中的所有表 sprocs udf xml 模式生成创建脚
  • Oracle 求两个时间戳的平均值

    我不明白这有多难 但我似乎无法在任何地方找到解决方案 它是针对日期完成的 但我看不到让它适用于时间戳 我正在尝试做 select avg last timestmp ref timestmp as average from param 它一
  • 如何选择非“唯一”行

    我有下表 我必须从中获取非唯一行 id idA infos 0 201 1899 1 205 1955 2 207 1955 3 201 1959 我想获取该列的所有行infos 具有相同的idA至少有两行的值 上表的查询输出必须是 inf
  • ALL 的 SQL 参数

    我想知道SQL中是否有一个参数适用于所有 不是 例如 我现在正在编写一个搜索表 如果用户不在文本框中输入某些内容 则意味着忽略该特定参数并显示该字段的所有内容 我知道您可以为每种情况创建单独的 OLEDB 或 SQL 命令 并且它会起作用
  • Oracle - 为什么在存储过程中允许 EXECUTE IMMEDIATE?

    如果存储过程旨在减轻 SQL 注入攻击 为什么在存储过程中允许 EXECUTE IMMEDIATE 以下问题的公认答案将其视为针对此类攻击的一个步骤 什么是存储过程 https stackoverflow com a 459531 3163
  • 我可以计算 SQL Server 中两个日期之间有多少个周末吗?

    我正在计算为一份报告租用设备的收入 其中 周末的招聘成本会比平日增加10 那么我如何计算两个日期之间有多少个周末呢 在报告查询中 我也不能使用DECLARE 有人可以帮我做到这一点吗 太感谢了 这应该有效 DECLARE StartDate
  • 物化视图与表:有什么优点?

    我很清楚为什么物化视图比仅查询基表更可取 不太清楚的是与仅创建另一个具有与 MV 相同数据的表相比的优势 MV 的唯一优势真的只是易于创建 维护吗 MV 不是相当于具有匹配架构的表和使用 MV SELECT 语句的 INSERT INTO
  • 如何在不使用完整备份的情况下使用生产数据刷新 SQL Server 测试实例

    我有两台 MS SQL 2005 服务器 一台用于生产 一台用于测试 并且两台服务器的恢复模型均为 完整 我将生产数据库的备份恢复到测试服务器 然后让用户进行更改 我希望能够 回滚对测试 SQL 服务器所做的所有更改 应用自测试服务器最初恢
  • 如何使用 ODBC 检查数据库是否存在

    各位程序员大家好 我已经在互联网上搜索了几天 但找不到仅使用 ODBC 和 SQL 解决此问题的通用方法 有没有办法查看数据库是否已经存在 仅使用ODBC 它必须是标准 SQL 因为用户可以选择自己选择的 DSN 即他自己的 SQL Ser
  • GUID 是否及时订购?如果 ORDER BY 与 GUID 变量类型一起使用,最近创建的记录会晚吗?

    GUID 是否及时订购 我的意思是 如果您将 ORDER BY 与 GUID 变量类型一起使用 最近创建的记录会晚吗 在 Windows 上 GUID UUID 是使用 UuidCreate 从加密随机数生成器创建的 根据 RFC 4122
  • 在任何 PostgreSQL 语句(甚至不返回结果的语句)上调用 row_to_json(row)

    我正在寻找始终从 PostgreSQL 语句返回 JSON 表示的查询 即使没有returning 这是一个例子 WITH result AS insert into users name age values drew 42 select
  • SQLPLUS 保存到文件

    我必须为我的数据库类使用 SQLPLUS 我们的第一个作业是简单的保存 我按照说明进行操作 我正在使用 PuTTY 访问 sqlplus 在本练习中使用以下 SQL 命令 并尝试使用 SAVE 和 SPOOL 命令将 SQL 命令和输出保存
  • 如何根据某些条件跳过 MSSQL 游标中的一行(迭代)?

    如何根据某些条件在 MSSQL 游标中跳过一行 迭代 我有一个可迁移数千条记录的 DTS 并且根据某些条件 某些记录不需要迁移 因为它们是重复的并且想要跳过这些记录 知道如何在 MSSQL Cursor 中完成此操作吗 我想最简单的方法是在
  • 使用 MOVE 确定 DB RESTORE 的 SQL 数据路径

    我正在尝试编写一个自动恢复数据库备份的脚本 我知道我可以使用以下 RESTORE 命令 RESTORE DATABASE DBRestoredName FROM DISK N C path to backup bak WITH FILE 1
  • 将列从日期转换为日期时间

    我有一个名为Lastmodified 数据类型为Date 但本来应该是DateTime 有没有办法转换列 当我使用 SQL Server Management Studio 的 设计 功能时 出现以下错误 不允许保存更改 您所做的更改需要以

随机推荐

  • C# -- 实现WinForm程序的密码修改

    修改窗体程序密码的示例 实现分析 前台弹出修改窗体 编写后台方法 xff0c 调用通用数据访问类Update方法 数据验证 xff0c 判断原密码是否与旧密码符合 xff0c 俩次输入的新密码是否一致 更新程序全局变量 前台弹出修改窗体 编
  • C#--WinForm--表格数据控件DataGridView--绑定模式

    官方文档 DataGridView控件提供了一种强大而灵活的以表格形式显示数据的方式 用户可以使用DataGridView控件来显示少量数据的只读视图 xff0c 也可以对其进行缩放以显示特大数据集的可编辑视图 扩展DataGridView
  • ASP.NET--网站配置、发布与部署

    网站发布前的配置信息 配置文件下载 网站发布的基本步骤 写好的项目 在本机上发布 打开目录查看 xff1a 部署网站 安装IIs 打开控制面板 程序和功能 启用或关闭Windows功能 安装后 返回控制面板 管理工具 双击打开 xff1a
  • c/c++ hash表 (哈希表、字典表)

    表 1 表 存储数据 key gt value 2 表存储数据结构的困难 怎么查找 一个一个key去比较去查找 xff1f 61 61 效率不高 3 Hash算法加快查找 将字符串的key 转成整数 使用整数找到对应的value Hash算
  • c/c++ UDP通讯

    UDP通讯 1 无连接的 不需要反复的确认和握手等待 根本不关心对方是否存在 2 不可靠 可能有丢包 和先发后到 3 UDP通讯快速 占用系统资源少 4 UDP提供作为传输层协议的最基本功能 将其他的交给用户自己来管理 UDP服务端 1 创
  • c#程序流程控制与调试技术

    If选择结构 为什么要使用关系运算符 简单If 选择结构1 逻辑运算符
  • 特征融合之基于贝叶斯理论的特征融合算法

    参考文献 xff1a 1 刘渭滨 邹智元 邢薇薇 模式分类中的特征融合方法 J 北京邮电大学学报 2017 04 5 12 2 Ma A J Yuen P C Lai J H Linear Dependency Modeling for C
  • 初学者都能看懂的蒙特卡洛方法以及python实现

    项目github地址 xff1a bitcarmanlee easy algorithm interview and practice 经常有同学私信或留言询问相关问题 xff0c V号bitcarmanlee github上star的同学
  • postman安装包

    postman34位和64位安装包 xff0c 访问API 下载地址 xff1a 链接 xff1a https pan baidu com s 1p 830DPPKumXiwMPVtKYsw 提取码 xff1a 8p6k
  • STM32入门:STM32F401CDU6库函数工程文件搭建

    STM32F401CDU6库函数工程文件搭建 根据下图的结构进行复制粘贴操作 xff0c 代码部分在本文末有贴出来 xff0c STM32F4xx DSP StdPeriph Lib V1 8 0文件下载 xff08 使用part1即可 x
  • 减小vscode-cpptools的内存占用

    在VScode菜单栏文件 gt 首选项 gt 设置 搜索C Cpp intelliSenseCacheSize 修改默认的5120为512
  • Ubuntu20.04 安装tcp调试工具mNetAssist步骤

    概述 在Ubuntu20 04上安装一个比较好用的网络调试助手mNetAssist 下载链接 mNetAssist链接 提取码 vrsm 安装 进入文件 mNetAssist release amd64 deb的所在文件夹 xff0c 然后
  • 页面加载时,添加进度条,提高用户体验

    这几个月做了个项目 xff0c 在此对一些问题做一个记录 项目是前后端分离的 xff0c 前端用的 npm 43 webpack 问题 xff1a 由于系统某页面数据量过大或网络较差等原因 xff0c 导致页面还未完全加载出来 xff0c
  • matlab绘制三维图像,用ga工具箱求解有约束的优化问题(接力遗传算法)

    绘制目标函数图像 目标函数的图像绘制为 xff08 未考虑约束条件 xff09 画法1代码 有约束的三维函数图像绘制 x1 61 10 1 10 x2 61 6 1 6 x1 x2 61 meshgrid x1 x2 f 61 exp x1
  • 多元线性回归 stata

    文章目录 回归的思想 xff0c 任务 xff0c 使命 xff0c 分类线性回归一定只能用于有线性关系的变量吗数据的分类数据的标准化处理最小二乘法拟合一元线性回归方程的几个结论回归系数的解释遗漏变量会造成内生性 xff08 扰动项和变量相
  • C++编译报错:||error: ld returned 1 exit status|

    这个问题我遇到过三次了 xff0c 每次好像原因都不一样 xff0c 在网上看到很多博客都记录了这个问题 xff0c 每人原因也都不同 xff0c 所以可以有多种原因都引发这个错误 但我不懂ld returned 1 exit status
  • C++ day34 异常(三)异常规范,未捕获异常,意外异常,异常导致内存泄漏

    文章目录 异常规范 xff08 C 43 43 98添加 xff0c C 43 43 11已摒弃 xff0c 不建议使用 xff09 异常规范的作用 xff08 正是这俩作用的鸡肋和难办使它失去了粉丝 xff09 C 43 43 11支持的
  • C++ day37 标准模板库STL初识

    文章目录 简介是什么 xff1a 容器类模板 xff0c 迭代器类模板 xff0c 函数对象模板 xff0c 算法模板的集合STL不是面向对象编程 xff0c 而是泛型编程 xff01 历史 xff1a 1994年发布 模板类vector示
  • STM32烧录 Error:Flash Download Failed-“Cortex-M3“ 解决方案—ST-Link调试

    STM32烧录 Error Flash Download Failed 34 Cortex M3 34 解决方案 ST Link调试 开发环境介绍设置步骤1 于Device中选择与你的开发板相匹配的芯片 xff0c 一般主芯片上都有标注2
  • SQL (十四)插入数据(insert语句,把数据插入表中)

    文章目录 插入完整的行 xff1a values子句不安全写法安全写法 xff1a 在表名后的括号明确给出列名小结 插入行的一部分 xff1a 简单插入某些查询的结果 xff08 即检索出的数据 xff09 xff1a insert sel