https://www.cnblogs.com/selene/p/4483612.html
视图
要把视图看做是一张表,包含了一张表的部分数据或者多个表的综合数据,视图的使用和普通表一样;
视图建立并存储在服务器,有效减少网络数据流量,提高安全性;
视图中不存放数据,数据依然存放在视图引用的原始数据表中;
可以根据需求来提前创建不同的视图。
企业管理器创建视图:
T-SQL创建视图:
USE DBName go IF EXISTS(SELECT * FROM sysobjects WHERE name=view_Name) DROP VIEW view_Name CREATE VIEW view_Name AS <SELECT语句>
代码示例:
存储过程
啥是存储过程?
就是事先存储好的SQL语句,放在数据库端,需要使用时直接调用存储过程就可以执行相应的SQL语句。存储过程可带参数,也可返回结果。
存储过程有啥优势呢?
执行速度更快;允许模块化设计;提高系统安全性;减少网络流量。
传统SQL语句与存储过程执行效率的对比:
跟视图有啥区别呢?
视图仅仅用来查询,而存储过程可以用来增删查改;视图是数据库的一张虚拟表,可以像表一样使用,而存储过程本质来说还是在执行SQL语句。
如何查看存储过程?
存储过程分类:
三种:系统存储过程、扩展存储过程、自定义存储过程
系统存储过程:由“sp_"开头,由系统定义与维护,需要学会使用。
扩展存储过程:“xp_”开头,以DLL形式单独存在,至今不知道有啥鸟用!
自定义存储过程:根据需要自定义,类似C#里面的“方法”的存在。
存储过程调用方法:
EXECUTE 过程名 【参数】 简写:EXEC 过程名 【参数】
代码示例:
重点!自定义存储过程!!!
1 use DB 2 go 3 create procedure(缩写:proc) 存储过程名 4 @参数1 数据类型=默认值 OUTPUT 5 …… 6 @参数n 数据类型=默认值 OUTPUT 7 as 8 SQL语句 9 go
自定义存储过程的内容全在上面规范里面,其中:
第3行,procedure可以缩写为proc;
第4~6行的参数定义可有可无,若有,在调用存储过程时需要一起传递过来;默认值可有可无,若有,在调用存储过程时可以不传递参数值;OUTPUT关键字可有可无,若有在调用时需要有一个变量来接受它的返回值
什么时候使用存储过程?
当一个事务涉及到多个SQL语句时或者涉及到对多个表的操作时就要考虑用存储过程;当在一个事务的完成需要很复杂的商业逻辑时(比如,对多个数据的操作,对多个状态的判断更改等)要考虑;还有就是比较复杂的统计和汇总也要考虑,但是过多的使用存储过程会降低系统的移植性。