(八大方法、逐层深入,有你一定没见过的)使用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 ;

 

 

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


  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
OSI参考模型是一个网络通信协议的框架,它将网络通信分为七个层次,每个层次负责不同的通信功能。下面是关于绘制OSI参考模型并标明数据传输过程中的封装和解封装过程的说明。 首先,在WORD或WPS中,我们可以利用图形工具绘制OSI参考模型。将文档的页面设置为适当的大小,并创建七个等大小的矩形框,分别标记为物理层、数据链路层、网络层、传输层、会话层、表示层和应用层。 接着,我们需要在模型中标明数据传输过程中的封装和解封装过程。在数据发送的一端,数据从应用层逐层封装,即从应用层到表示层,再到会话层,传输层,网络层,数据链路层,最后到物理层。在每个层次,添加一个简单的箭头标志着数据的封装进程。 在数据接收的一端,数据从物理层逐层解封装,即从物理层到数据链路层,再到网络层,传输层,会话层,表示层和应用层。同样,在每个层次,添加一个简单的箭头标志着数据的解封装过程。 需要注意的是,封装和解封装的过程实际上是通过添加和去除头部信息实现的。每个层次都会在数据上添加自己的头部信息,以提供所需的功能和服务。而解封装则是根据头部信息逐层去除,将数据恢复为原始的用户数据。 绘制完整的OSI参考模型并标明数据传输过程中的封装和解封装过程有助于理解每个层次的功能和作用,同时也能够清晰地展示数据在网络中的传输过程。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值