插入数据是数据库使用中的常用操作,在对数据库进行操作时,更经常使用的是用T-SQL语句进行数据插入,可视化界面的操作较少,因此这篇博客在介绍数据插入的时候侧重于使用T-SQL语句进行。其语法格式如下。
1.insert……value语句
insert value是基本的新增数据语句,在新增时需要对表中的每一列进行添加,
数据格式不能出错。在这里以AdventureWorks2012中的Production.Culture为例,这个数据表如下左图,添加时,输入
insert into Production.Culture values ('bc','Fujian','2002-06-01 00:00:00.000')
即可,刷新后可在表中看到新增的列,如下右图所示
注意,如果只需要插入部分列,如CultureID和Name,需要在insert into后进行限定,如下所示。
insert into Production.Culture(CultureID,Name) values ('cd','Fuzhou')
其中,没有进行修改的列需要有一个默认值或者NULL值。否则会出错。添加结果如下图
2.insert……select语句
第一种insert……value语句的方法需要我们对每个列数据进行手动输入,而在实际情况中,在插入的数据中部分数据是从别的数据表进行计算得来的,这是采用insert……select将更为高效。
语法格式如下
本节中,创建一个空表进行操作,表的格式与Production.Culture一样。
创建方法:Production.Culture右键——>编写表脚本为——>create到——>新查询编辑器窗口
将其中代码更改为
USE
[AdventureWorks2012]
GO
/****** Object: Table [Production].[Culture] Script Date: 2017/11/24 20:48:37 ******/
SET
ANSI_NULLS
ON
GO
SET
QUOTED_IDENTIFIER
ON
GO
CREATE
TABLE
[Production]
.
[Culture1]
( //表名为
Culture1
[CultureID]
[nchar]
(
6
)
NOT
NULL,
[Name]
[dbo]
.
[Name]
NOT
NULL,
[ModifiedDate]
[datetime]
NOT
NULL,
)
ON
[PRIMARY]
GO
即可。这段代码与原代码的差别就是删除了约束条件。最终得到了一个与Culture格式一样的空表,如下左图。之后可以进行insert……select语句的操作,输入
insert Production.Culture1
select * from Production.Culture
即可,此时Culture1中就添加进了Culture中的所有数据,如下右图
3.select……into语句
select……into语句是第三种插入数据的方法,语法格式如下。与insert相比,用select……into语句会新建一个数据表,而不是在原有数据表的基础上进行插入。
例:对Culture表中Name为‘Fujian’的一行数据插入一个新表。输入
select *
into #Culture_temporary //如果不想新建一个真实存在的表,可以创建一个临时表#Culture_temporary
from Production.Culture where Name='Fujian' //即第二节中的右图第三行数据
即可,可以在临时表中查到该行数据,临时表的创建见
创建和修改数据表
筛选数据存储到临时表是一个常见的方法,需要牢牢掌握。
4.update语句
4.1基本的update语句
update语句主要作用是对数据表中的数据进行修改,其语法格式如下
例:下左图中需要将红圈部分的内容进行修改,这时就需要用到update语句。输入
select * from Production.Culture
update Production.Culture set CultureID='cc' //将原先的'bb'修改为'cc'
where Name='Fujian' //设置具体的行,否则会将所有的CultureID修改为cc
即可
4.2 update……from子句
update……from子句可以在修改数据表中数据的时候使用其他数据表中的数据,使操作更为便捷。
例:对Culture1中的'bb' 用Culture中刚刚修改过的‘cc’代替。输入
update Production.Culture1 set Name=b.Name,ModifiedDate=b.ModifiedDate //set后的语句作用是令除了需要修改的数据以外,别的数据都相等
from Production.Culture1 a join Production.Culture b on a.CultureID=b.CultureID //用join语句把两个数据库连接起来,a代表要修改的数据库,b是提供修改值的数据库
where b.Name='Fujian'
即可
5.Delete语句
delete语句可以对数据进行删除,语法格式如下
例:要删除下左图中Name='Fujian'的这行数据,输入
delete from Production.Culture
where Name='Fujian'
即可,结果如下右图所示