SQL Server 2012 更新数据(添加数据、修改数据、删除数据)




说明

    使用SSMS界面方式进行数据的添加修改删除操作比较简单,因此只在此进行介绍,内容分主要使用SQL方式讲解。
    展开“数据库”,打开相应的数据库,然后再展开“表”,,右击需要操作的数据表,选择“编辑前200行”,进入表数据编辑面板,就可以对表中的数据进行添加、修改和删除操作了。
在这里插入图片描述
需要说明的是,如果对数据进行修改,需要右击,点击“执行SQL”
在这里插入图片描述

添加数据

    SQL数据插入语句INSERT通常有三种形式,插入一个元组,插入多个元组,还有一种是通过插入子查询结果来插入多个元组。
1.插入一个元组
语法格式:

INSERT
INTO <表名> [(<属性列1>[,<属性列2>]...)]
VALUES(<常量1>[,<常量2>]...)

在INTO子句中指出需要插入数据的表名,属性列表是可选的,如果写了属性列表,则是指出了新增加的元组在哪些属性上要赋值,属性的顺序可以跟数据表的顺序不一样。VALUES子句对新元组的各属性赋值,字符串常数以及日期时间要用单引号括起来。如果只指出了表名,没有指出属性名,那么新元组要在表的所有属性列上都指定值,并且需要注意值与属性列要一一对应。如果赋值的常量为空,那么需要明确给出空值。
例如:
数据表class结构如下:
在这里插入图片描述
可以使用如下方式插入:

use schoolDB
go
insert into class(ClassID,ClassName,SchoolID)
values(101,'软件1班',null)

或者

use schoolDB
go
insert into class
values(102,'软件2班',1)

在这里插入图片描述
表中的数据:
在这里插入图片描述


2.插入多个元组
语法格式:

INSERT
INTO <表名> [(<属性列1>[,<属性列2>]...)]
VALUES(<常量1>[,<常量2>]...),
	  (<常量1>[,<常量2>]...),
	  (<常量1>[,<常量2>]...)

示例代码:

use schoolDB
go
insert into class
values(103,'软件3班',null),
(104,'软件4班',1)

或者

use schoolDB
go
insert into class(ClassID,ClassName,SchoolID)
values(105,'软件5班',null),
(106,'软件6班',1)

3.通过子查询插入元组
语法格式:

INSERT
INTO <表名> [(<属性列1>[,<属性列2>]...)]
子查询

示例代码:

use schoolDB
go
create table class_total  --创建一个班级数量统计表,统计学校的班级数
(
	SchoolName int not null,
	ClassNum int not null
)
go
--子查询
insert into class_total(SchoolName,ClassNum)
select school.SchoolID,COUNT(class.ClassID)
from school,class
where school.SchoolID=class.SchoolID
group by school.SchoolID

执行代码后:
在这里插入图片描述
class_total数据:
在这里插入图片描述
class表数据:
在这里插入图片描述



修改数据

语法格式:

UPDATE <表名>
SET <列名>=<表达式>[,<列名>=<表达式>]...
[WHERE <条件>]

修改操作也叫更新操作,其功能是修改指定表中满足WHERE子句条件的元组。其中SET子句给出<表达式>的值用于取代相应的属性列值。如果省略WHERE子句,则表示要修改表中的所以有元组。

示例:

use schoolDB
go
update class
set ClassName='哈哈哈啊哈',SchoolID=1
where ClassID=102

运行:
在这里插入图片描述
结果:
在这里插入图片描述


删除数据
DELETE
FROM <表名>
[WHERE <条件>]

DELETE语句的功能是从指定表中删除满足WHERE子句条件的所有元组。如果省略WHERE子句则表示删除表中的全部元组,但表的定义仍在字典中。
示例:

use schoolDB
go
delete
from class
where ClassID=102

运行:
在这里插入图片描述
结果:
在这里插入图片描述



SQL Server触发器是一种特殊类型的存储过程,它会在指定的上发生特定事件时自动执行。当上发生更新操作时,可以通过触发器来更新数据。 触发器通常与INSERT、UPDATE和DELETE语句一起使用。当这些语句被执行时,触发器会自动调用并执行相关的操作。 在创建触发器时,需要指定触发器要绑定到的以及要触发的事件类型(INSERT、UPDATE、DELETE)。然后,可以编写触发器的主体部分,该部分包含在触发器被调用时要执行的SQL语句。 当触发器绑定的上发生与触发器事件类型匹配的操作时,触发器会自动执行。在执行过程中,可以使用内置的Inserted和Deleted来引用被修改数据。Inserted包含插入或更新操作所添加修改的行,而Deleted包含删除更新操作所删除修改的行。 通过在触发器的主体部分编写更新操作的SQL语句,可以实现对数据更新。这些更新可以是根据触发器事件导致的数据更改,也可以是根据其他或计算逻辑生成的数据。 使用触发器更新数据的好处是,在数据变更时自动执行相关操作,而无需手动干预。这可以保证数据的一致性和完整性,并减少人为错误的可能性。 需要注意的是,使用触发器更新数据时,应谨慎操作,避免造成循环触发和性能问题。同时,触发器的相关操作应经过充分的测试和验证,确保其正常运行并达到预期的效果。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值