创建视图 存储过程 触发器的基本语法
2015-11-01 22:35
281 查看
--视图
--视图和临时表的区别:视图存储的是sql语句,占用存储空间小,而临时表存储的是结果集,占用的存储空间大,所以视图更加好
--创建视图存储一个结果
drop view v1
create view v1 as
select * from sc where cno=1
--查询视图中的数据
select * from v1
--创建视图存储两个结果
drop view v2
create view v2 as
select * from sc where cno=1
union
select * from sc where sno=1
--查询视图中的数据
select * from v2
--存储过程
--创建单一存储过程
drop procedure p1
create procedure p1 as
begin
select *from sc where cno=1
select * from sc where sno=1
end
--查询存储过程中的数据
p1
--创建带参数的存储过程
drop procedure p2
create procedure p2 @x int,@y int as
begin
select *from sc where cno=@x
select * from sc where sno=@y
end
--查询存储过程中的数据
--p2 1 只有一个参数@x=1
p2 1,2 --有两个参数 @x=1,@y=2
---------------------------------------------------------
----触发器:创建触发器之前先删除表中关联的外键
--触发器的功能:删除没有外键映射的两个表中同一个字段的数据 功能与外键功能一样
select * from dept
select * from emp
--在部门表里面创建修改触发器
drop trigger tri_dept_emp_update
go
create trigger tri_dept_emp_update on dept for update
as
begin
update emp set emp.deptno = i.deptno
from deleted d, inserted i
where emp.deptno = d.deptno
end
go
update dept set deptno=12 where deptno=10
select * from dept
select * from emp
--在部门表里面创建删除触发器
drop trigger tri_dept_emp_delete
create trigger tri_dept_emp_delete on dept for delete
as
begin
delete emp
from deleted d
where emp.deptno = d.deptno
end
--在课程表里面创建修改触发器
drop trigger tri_course_sc_update
create trigger tri_course_sc_update on course for update
as
begin
update sc set sc.cno=i.cno
from deleted d,inserted i
where sc.cno=d.cno
end
--在学生表里面创建修改触发器
drop trigger tri_student_sc_update
create trigger tri_student_sc_update on student for update
as
begin
update sc set sc.sno=h.sno
from deleted e,inserted h
where sc.sno=e.sno
end
--视图和临时表的区别:视图存储的是sql语句,占用存储空间小,而临时表存储的是结果集,占用的存储空间大,所以视图更加好
--创建视图存储一个结果
drop view v1
create view v1 as
select * from sc where cno=1
--查询视图中的数据
select * from v1
--创建视图存储两个结果
drop view v2
create view v2 as
select * from sc where cno=1
union
select * from sc where sno=1
--查询视图中的数据
select * from v2
--存储过程
--创建单一存储过程
drop procedure p1
create procedure p1 as
begin
select *from sc where cno=1
select * from sc where sno=1
end
--查询存储过程中的数据
p1
--创建带参数的存储过程
drop procedure p2
create procedure p2 @x int,@y int as
begin
select *from sc where cno=@x
select * from sc where sno=@y
end
--查询存储过程中的数据
--p2 1 只有一个参数@x=1
p2 1,2 --有两个参数 @x=1,@y=2
---------------------------------------------------------
----触发器:创建触发器之前先删除表中关联的外键
--触发器的功能:删除没有外键映射的两个表中同一个字段的数据 功能与外键功能一样
select * from dept
select * from emp
--在部门表里面创建修改触发器
drop trigger tri_dept_emp_update
go
create trigger tri_dept_emp_update on dept for update
as
begin
update emp set emp.deptno = i.deptno
from deleted d, inserted i
where emp.deptno = d.deptno
end
go
update dept set deptno=12 where deptno=10
select * from dept
select * from emp
--在部门表里面创建删除触发器
drop trigger tri_dept_emp_delete
create trigger tri_dept_emp_delete on dept for delete
as
begin
delete emp
from deleted d
where emp.deptno = d.deptno
end
--在课程表里面创建修改触发器
drop trigger tri_course_sc_update
create trigger tri_course_sc_update on course for update
as
begin
update sc set sc.cno=i.cno
from deleted d,inserted i
where sc.cno=d.cno
end
--在学生表里面创建修改触发器
drop trigger tri_student_sc_update
create trigger tri_student_sc_update on student for update
as
begin
update sc set sc.sno=h.sno
from deleted e,inserted h
where sc.sno=e.sno
end
相关文章推荐
- Android中canvas和paint的关系及使用
- 智能导航短信告警的一个逻辑处理
- 如何查看电脑硬盘是gpt分区还是MBR分区
- 资深操盘手独家总结隐藏在K线背后的奥秘
- 有1、2、3、4四个数字,能组成多少个互不相同且无重复数字的三位数?打印出来
- C语言版通讯录
- aws简单开发之ec2定时开关机
- MvvmLight框架使用入门(三)
- 大道至简第五章阅读笔记
- 20135304刘世鹏——信息安全系统设计基础第八周期中总结
- Android中SurfaceView的使用详解
- bzoj1612 【Usaco2008 Jan】Cow Contest 奶牛的比赛
- m个苹果放入n个盘子问题
- pull生成、解析xml
- Daily Scrum 11.1
- 【C语言】【面试题】【笔试题】.字符串替换空格:请实现一个函数,把字符串中的每个空格替换成“%20”。
- android手机加速度传感器
- mysql字符串查询大小写问题2
- Python解析json数据结构范例
- 超级简单的java WebService示例