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

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

posted on 2012-09-05 16:45 yonghu86 阅读(...) 评论(...) 编辑 收藏

转载于:https://www.cnblogs.com/huyong/archive/2012/09/05/2685722.html

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

  1. c# 向mysql插入数据_C#连接mysql数据库 及向表中插入数据的方法

    mysql 语句操作: 创建数据库:create database hotelATMDb; use hotelATMDb; C#连接mysql 1.引用 dll MySql.Data.dll 下载地址 ...

  2. 向MySQL数据库中插入数据,sql语句没问题,但插入失败也不报错?

             这几天在做一个Javaweb的图书商城项目,在操作数据库的过程中,遇到一个问题? 向数据库中的order数据表中插入数据时,一直插入数据失败.没有报SQL语句语法错误,Eclipse ...

  3. SQL Server数据库表的基本操作(批量插入、删除、查询数据,删除表中重复数据方法)

    实验名称:数据库表的基本操作与表内数据操作 实验目的: 掌握数据库表创建方法(交互式.T-SQL法) 掌握修改数据库表结构的方法 掌握删除数据库表的方法 掌握交互式EXCEL文件录入数据至数据库表的方 ...

  4. python亿级mysql数据库导出_Python实现将MySQL数据库表中的数据导出生成csv格式文件的方法...

    本文实例讲述了python实现将MySQL数据库表中的数据导出生成csv格式文件的方法.分享给大家供大家参考,具体如下: #!/usr/bin/env python # -*- coding:utf- ...

  5. MYSQL修改编码为utf8无效往表中插入汉字还是失败的解决方法

    调了很久才发现核心错误所在,很坑!! 1.错误现象 Incorrect string value: '\xE7\xA8\x8B\xE5\xBA\x8F-' for column 'course' at ...

  6. mysql删除表中所有数据_MySQL删除或清空表中数据的方法

    原标题:MySQL删除或清空表中数据的方法 要想把MySQL中的数据删除或清空,可以通过两种方法来实现:DELETE语句和TRUNCATE TABLE语句. DELETE语句可以将表中所有记录都删除, ...

  7. oracle 两表去除重复的数据,Oracle数据库删除两表中相同数据的方法

    在Oracle数据库中删除两表中相同数据的方法是用到in语句,本文通过实例来讲解删除两表中相同数据的方法. 软件环境: 1.Windows NT4.0+ORACLE 8.0.4. 2.Oracle安装 ...

  8. mysql 复制表中的数据_MySQL中快速复制数据表方法汇总

    本文将着重介绍两个MySQL命令的组合,它将以原有数据表为基础,创建相同结构和数据的新数据表. 这可以帮助你在开发过程中快速的复制表格作为测试数据,而不必冒险直接操作正在运行 的数据表. 示例如下: ...

  9. oracle怎么把数据跑进视图里,在Oracle中向视图中插入数据的方法

    在Oracle中向视图中插入数据的方法 插入视图的条件: 1.如果视图是基于一个基础表产生的,那么这就称为非连接视图,所有的非连接视图都是可以更新的,也就是说可以在该视图上进行,INSERT,UPDA ...

最新文章

  1. Flask-RESTful的简单使用
  2. bzoj-1026 windy数
  3. LeetCode 206. 反转链表(Reverse Linked List) 16
  4. 谈谈varnish、squid、apache、nginx缓存的对比
  5. squid 的配置详解 (转)--SeriesI 收藏
  6. Spring Boot(十二)单元测试JUnit
  7. 使用springboot集成jseesite
  8. maven jar包冲突
  9. 【Acm】算法之美—Fire Net
  10. Ubuntu14.04下配置固定IP
  11. 关于在mysql和oracle中编码对varchar等类型的影响
  12. Quick Batch File Compiler(BAT转EXE工具)bat文件转换成exe文件(启动jar包和自动打开浏览器)
  13. Android ListView notifyDataSetChanged()不刷新数据
  14. 店铺淘口令怎么生成, 怎么生成店铺淘口令
  15. Manjaro找不到默认键盘布局
  16. scipy.ndimage.measurements label理解
  17. Vue3 - Suspense 组件介绍及使用方法
  18. 超详细注释NLP Question answering竞赛(印度语和泰米尔语)
  19. 关于移位密码的破解问题
  20. Elasticsearch 8.X 集群无响应,怎么办?

热门文章

  1. 网站部署后Parser Error Message: Could not load type 的解决方案
  2. android中影藏状态栏和标题栏的几种方法
  3. 将桌面文件动态保存到D盘
  4. iOS学习之NSBundle介绍和使用
  5. Linux多任务编程(三)---exec函数族及其基础实验
  6. Arcpy报错及解决——持续补充中
  7. unix和linux命令_Linux vs. Unix,在命令行中清理数据,为儿童准备的15本书,以及更多必读内容
  8. 电气通用规范_与通用电气的对话使我了解到有关开放式组织的知识
  9. TypeScript 之泛型
  10. Bootstrap 两端对齐的导航