`

(八大方法、逐层深入,有你一定没见过的)使用INSERT语句向表中插入数据

阅读更多

 

(八大方法、逐层深入,有你一定没见过的)

使用INSERT语句向表中插入数据(MSSQLSERVER版)

 

 

做开发的同仁对于向数据库中插入数据可谓是太普通不过了,也没什么说的,一般都是采用常用的INSERT INTO [(字段列表)] VALUES(字段值列表),这样的方式进行操作。今天,我要给大家介绍的是其他一些非常规的方式,一定会让你耳目一新,眼前一亮。

进入今天的主题,以了便于操作,我们首先建立一个实例数据表:

USE tempdb ;

GO

CREATE TABLE Fruit

(

Id INT NOT NULL ,

Name VARCHAR(100) NOT NULL ,

Color VARCHAR(100) NULL ,

Quantity INT DEFAULT 1

) ;

 

方式一:传统方式

 

语法:INSERT (column_list) VALUES (value_list);

 

我们插入一条数据到数据表中。

INSERT INTO Fruit

( Id, Name, Color, Quantity )

VALUES ( 1, 'Banana', 'Yellow', 1 ) ;

这种方式是我们常用的一种插入数据的方式,给出所有的列名集合与值集合。

 

方式二:省略列集合

 

INSERT INTO Fruit

VALUES ( 2, 'Grapes', 'Red', 15 ) ;

 

这种方式我们省略了列名集合,这种方式值集合必须与数据表定义时列的顺序相一至,必须赋的值不能省略

 

方式三:插入部分字段

 

INSERT INTO Fruit

( Id, Name )

VALUES( 3, 'Apples') ;

这种方式,我们不必给出所有字段列表,只插入我们需要的字段即可。

以上三种方式是我们在实际使用中最为常见的插入数据的方式,下面给出的也许会让你眼前一亮。

 

方式四:一条插入语句插入多条数据

 

INSERT INTO Fruit

( Id, Name, Color, Quantity )

VALUES( 4, 'Apples', 'Red', 10 ),

( 5, 'Peaches', 'Green', 7 ),

( 6, 'Pineapples', 'Yellow', 5 ) ;

 

在这儿,我用一条插入语句同时插入了三条不同的数据到Fruit数据表中。

 

方式五:使用SELECT语句同时插入多条数据。

 

INSERT INTO Fruit

( Id ,

Name ,

Color,

Quantity

)

SELECT 7 +( 6 - Id ) ,

Name,

'White',

Quantity

FROM Fruit

WHERE Id > 3

ORDER BY Id DESC ;

 

在方式五中,我通过选择Fruit表中 Id 大于 3 记录插入到Fruit表中。这是从水果表中现有的值派生出来的。

 

方式六:使用存储过程插入数据。

 

首先、我们建立一个存储过程如下:

CREATE PROC HybridFruit

AS

SELECT b.Id + 9 ,

a.Name + b.name

FROM Fruit a

INNERJOIN Fruit b ON a.Id = 9 - b.Id ;

GO

 

现在我们使用上面建立的存储过程进行数据的插入,方法如下:

INSERT INTO Fruit

( Id, Name )

EXECUTE HybridFruit;

 

 

方式七:使用OUTPUT子句输出插入的数据以供外部使用。

 

INSERT INTO Fruit

( Id, Name )

OUTPUT INSERTED.*

VALUES( 18, 'PieCherries' ) ;

 

在这儿,我们通过使用OUTPU子句输出了同步插入的数据。

 

方式八:通过OUTPUT子句把结果返回给客户端。

 

为了方便演示,我先把Fruit表的Id列设为自动增长列。

ALTER TABLE Fruit

DROP COLUMN Id ;

ALTER TABLE Fruit

ADD Id INTIDENTITY ;

现在我们来通过OUTPUT子句插入值并把结果返回给客户端。

DECLARE @INSERTED AS TABLE ( Id INT, Name VARCHAR(100) ) ;

 

--使用OUTPUT插入

INSERT INTO Fruit

( Name,Color )

OUTPUT INSERTED.Id, INSERTED.Name

INTO @INSERTED

VALUES( 'Bing Cherries', 'Purple' ),

( 'Oranges', 'Orange' ) ;

-- 显示插入的值

SELECT *

FROM @INSERTED ;

 

 

以上就是八种方式,也许对你有用,仅作参考使用,谢谢~!

 

分享到:
评论

相关推荐

    使用sql语句查询的数据按时间递增累加

    接着,我们通过几条插入数据的例子来进一步理解表的用途。例如: - 第一条记录:`REGION_NAME`为空,`ܺķ`为“һ”,`ƻʱ`为“2013-01-01”,`Ԥ`为300,`ʵʷ`为60,`ò`为-240,`ò컯`为-0.8。 - 第二条记录:`...

    【数据结构】——搜索二叉树的插入,查找和删除(递归&非递归)

    【数据结构】——搜索二叉树的插入,查找和删除(递归&非递归) 在计算机科学中,数据结构是存储和组织数据的方式,它直接影响到数据的处理效率。搜索二叉树(BST,Binary Search Tree)是一种特殊类型的数据结构,...

    数据分层汇总交叉报表SQL语句实现方法

    数据分层汇总交叉报表是数据分析领域中常见的需求,主要用于管理层获取多维度的业务洞察。在管理系统中,这种报表通常需要处理复杂的数据结构,以便展示不同层次的汇总信息。本文将探讨如何利用SQL语句实现这样的...

    本项目使用C++实现基于跳表实现的轻量级键值型存储引擎,其主要功能有:插入数据、查询数据、删除数据、数据展示、数据库.zip

    1. 插入数据:在键值型存储引擎中,插入数据涉及到为给定键创建一个新的记录,并将其插入到跳表的适当位置。这需要对键进行排序,然后根据跳表的层级结构,从顶层开始逐层找到合适的位置,最后在底层插入新的键值对...

    数据结构 三叉链表表示的二叉树

    在计算机科学中,数据结构是组织和存储数据的方式,它直接影响到程序的效率和性能。本文将深入探讨一种特殊的数据结构表示——三叉链表表示的二叉树。这种表示方式在C++语言中尤为常见,它允许我们高效地创建、插入...

    C#将Lambda表达式转成Sql语句

    Lambda表达式通常用于LINQ(Language Integrated Query)查询,它允许程序员使用类似SQL的语法在内存中的数据集上进行操作。然而,在某些情况下,我们需要将这些表达式转换为实际的SQL语句,以便在数据库中执行。...

    算法-数据结构之链表合并算法.rar

    链表合并算法是数据结构与算法领域中的一个重要话题,它主要涉及到如何将两个或多个已排序的链表高效地合并成一个有序链表。在处理大量数据时,链表因其动态内存分配和高效的插入、删除操作,常被用于实现各种算法。...

    数据库上机实验报告.docx

    在更改主键数据前,必须检查是否存在依赖关系,如有,需先更新依赖表中的相关数据。 SQL Server的安全认证模式 SQL Server支持两种主要的认证模式:混合模式和Windows集成身份验证。混合模式允许使用Windows账户或...

    如何展开存储在数据库中的树形数据结构.pdf

    通过建立临时表并初始化,逐层处理当前层次的节点,并将处理结果插入#zk表,同时从#stack表中移除处理过的数据。这种方法能够减少网络传输的次数,提高遍历效率。 文章还提到了在数据库表中存储树形数据结构的具体...

    数据结构广义表所有操作

    广义表(Generalized List)是数据结构中的一种重要形式,它是一种更通用的列表结构,可以表示各种复杂的数据组合。广义表不仅可以包含元素,还可以包含其他列表,这使得它能灵活地表达多层次的数据。 一、广义表的...

    生物医学数据分析中的深度学习方法应用.pdf

    深度学习方法是从人工神经网络发展而来,通过非线性处理层对原始数据进行逐层抽象,提取出不同层面的特征,用于数据分类和预测。 深度学习模型最显著的特点在于它的“深层”架构,即具有多个隐层的结构,这使得模型...

    echarts国家、省份、城市、区域 js geo json 数据 支持逐层下钻

    在本主题中,我们关注的是ECharts的地理图表,特别是如何利用js和geo json数据实现国家、省份、城市到区域的逐层下钻效果。 首先,Geo JSON是一种开放的地理空间数据格式,用于表示地理特征,如点、线和多边形。在...

    Delaunay三角剖分 采用插入法 可以显示

    在C++实现中,通常会使用数据结构如邻接表或kd树来高效地存储和查找相邻的三角形,以及快速找到最近的邻居。注释的详细性将有助于理解代码逻辑,包括如何处理边界情况,如何优化查找最近邻点的效率,以及如何有效地...

    6位层次编码逐层即需加载TreeView

    - 使用SQL语句从数据库中查询第一层级的数据。 - 遍历查询结果,创建`TreeNode`对象并将其添加到`TVWZDM`控件的根节点集合中。 #### 3. `ADDNodeTwo`和`ADDNodeThree`方法 - **作用**:动态加载第二层和第三层的...

    java数据结构 全套java版的数据结构

    - **冲突解决**:处理不同键映射到同一位置的问题,常见的方法有开放地址法和链地址法。 #### 九、排序 **9.1 排序的基本概念** - **排序**:按照某种顺序重新排列一组数据。 **9.2 插入类排序** - **直接插入...

    通过 B-树在图书管理中的应用,掌握B-树的建立、数据插入、数据删除、数据查询

    在B-树中插入数据的关键在于找到合适的插入位置并维护树的平衡。步骤如下: 1. 遍历B-树,找到合适的位置,如果该位置所在节点未满,则直接插入。 2. 如果节点已满,需要分裂节点,将中间键提升到父节点,同时创建...

    wicket组织树带checkbox可逐层加载数据示例

    本示例“wicket组织树带checkbox可逐层加载数据”聚焦于如何利用Wicket实现一个具备层级结构、带有复选框(checkbox)的树形视图,并支持按需动态加载数据。 首先,我们要理解“组织树”。在Web应用中,组织树通常...

    数据结构和算法Java

    - **有向图的强连通分量**:有向图中是否存在一个路径可以从任何顶点到达另一个顶点。 - **最小生成树**:寻找加权图中的最小生成树。 - **最短距离** - **单源最短路径**:从一个起点到图中所有其他顶点的最短...

    数据结构 图 邻接表

    本主题将深入探讨“图”的一种高效表示方法——邻接表。 邻接表是图数据结构的一种高效实现,特别适用于稀疏图(边的数量远小于顶点数量的平方)。在邻接表中,每个顶点都有一个链表或数组,存储与之相连的所有顶点...

    SQL语句嵌套的实例.rar_SQL语句_sql 语句_sql嵌套

    嵌套SQL语句是数据库操作中的高级技巧,能够帮助我们处理多表关联、分组统计等复杂数据问题。下面我们将详细探讨SQL语句嵌套的相关知识点。 1. **子查询**:子查询是嵌套SQL的核心概念,它是一个独立的查询语句,...

Global site tag (gtag.js) - Google Analytics