SQL视图与触发器

时间:2022-03-24 05:10:29

视图(虚拟的表)

select查询出来的结果集可以用as起别名当作虚拟表来使用

视图只能添加使用不能添加修改

视图不能建在其他视图上,只能一其他实体表作为基础

视图表的数据会随实体表的变动而变动


视图的作用:

省去写表链接的过程

可以将两道三个表链接到一起,查询的更形象化一点

/*============================代码演示=========================*/

--代码创建视图

create view shitu2
as
 select *from Score,grade where Score.Degree between low and upp
go
select *from shitu2  --  查询视图里面的数据

--修改视图
alter view shitu--修改视图相当于在此创建
as
 select *from Student
go

--删除视图
drop view shitu

 

--触发器---特殊的存储过程,通过增删改数据库表来自动引发
create trigger TR_Student_Insert
on student--在那个表上建立触发器
for insert--insect是添加的意思
as
begin
 select *from student
end
go

insert into Student values(303,'杨某','男','19901115','95033')--在次往表里添加数据的时候会自动触发 select *from student 查询语句

 

create trigger TR_Student_Delete
on student
instead of delete   --delete是删除的意思
as

begin
 print '不能删'
end
go
delete from Student --删除student表 (由于触发器的原因没有删除)

 

create trigger TR_Student_inseted
on student
instead of update--update是修改
as
begin
     --大同小异 这里没有写请见谅
end
go 

 

inserted --只是一个可以临时储存数据的数据表

deleted--只是一个可以临时储存数据的数据表

instead of-- 是命令之前触发

for--是命令之后触发,for还可以写成after