zoukankan      html  css  js  c++  java
  • (八大方法、逐层深入,有你一定没见过的)使用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 ;

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


  • 相关阅读:
    redis状态与性能监控
    redis-stat 安装
    Redis-stat is not found
    查看Redis信息和状态
    查看、分析memcached使用状态
    Memcache内存分配策略
    memcached server LRU 深入分析
    Memcached常用命令及使用说明
    Web-超大文件上传-如何上传文件-大文件上传
    PHP-超大文件上传-如何上传文件-大文件上传
  • 原文地址:https://www.cnblogs.com/huyong/p/2685722.html
Copyright © 2011-2022 走看看