您的位置:首页 > 数据库

SQLserver视图、存储过程、事务的简单介绍和使用

2019-05-31 09:38 85 查看
版权声明:Copyright:@@个人所有 https://blog.csdn.net/y20_20/article/details/90707548

SQLserver视图、存储过程、事务

目录

一、视图
二、存储过程
三、事务

一、视图

1、视图的基本知识:

  1. 视图概念:根据应用程序业务需要编写并保存到数据库服务器端的查询,不用再网络上传输SQL语句,所以在 一定程度上对数据安全有保障作用,也可以直接对视图修改,使用灵活
  2. 视图和普通的应用程序端SQL查询的区别:区别一:视图本身就是查询,保存到数据库服务器端,应用程序通过调用命令来执行视图;区别二:普通查询保存在应用程序端,需要 通过网络来传输SQL语句到数据库端执行查询;区别三:视图和普通SQL查询在后期维护有很大的不同,如果需要变化查询内容的话,普通的应用程序端查询需要修改程序,很麻烦,而视图只需要在数据库 端修改即可。
  3. 创建视图的语法(视图就像查询数据表一样):
create view view_视图名称
as
select查询语句块
go
--代码示例(使用SMDB数据库)
create view view_QueryScore
as
SELECT   dbo.StudentClass.ClassName, dbo.Students.StudentName, dbo.Students.Gender, dbo.ScoreList.CSharp,
dbo.ScoreList.SQLServerDB
FROM      dbo.StudentClass INNER JOIN
dbo.Students ON dbo.StudentClass.ClassI
4000
d = dbo.Students.ClassId INNER JOIN
dbo.ScoreList ON dbo.Students.StudentId = dbo.ScoreList.StudentId
go
  1. 表和视图的区别:视图是一系列的查询结果汇总成一张虚拟表。两者的区别如下:视图是提前预编译好的查询,视图本身不存储数据。然而数据表是用来存储胡数据的
  2. 视图的两种创建方法:第一种:使用脚本创建。第二种:使用可视化创建视图。但是我们经常使用的方法是:利用脚本写出框架,使用可视化方法创建出查询语句并把查询语句复制到脚本框架中删除一些没用的修饰,提高可读性然后编译保存。
  3. 视图的使用小技巧:在视图中尽量不要使用order by语句,因为要配合top等使用很不方便,我们可以在查询视图的后面再加上需要的类似order by字句。

2、存储过程的创建和使用:

  1. 写到SQLServer服务器端的SQL语句,不仅可以实现查询,也可实现CRUD同时使用,增删改等。
  2. 存储过程分类:系统存储过程(对于程序员一般我们只需要使用即可),用户自定义存储过程(我们根据应用程序需要自己编写的SQL语句块)。
  3. 使用存储过程的好处:
    好处一:已经编译并保存到sqlserver服务器端,执行效率很高;
    好处二:应用程序端调用,只需要发送指令即可,SQL语句不用再网络上传输,再一定程度上保证了数据的安全;
    好处三:维护方便,若后续业务有改动,我们直接在SQLserver服务器端对存储郭晨进行修改,而不必修改应用程序,在一定程度上体现了应用程序的高可扩展性;
    好处四:对于程序员来说,减轻了编写代码的压力;
    好处五:一个存储过程可以被不同的程序共享,一次编写,好多处使用。
  4. 存储过程和应用程序端SQL语句的执行步骤:
    应用程序端SQL语句:传送SQL语句—》语法检查—》语句优化—》编译—》执行
    存储过程:调用命令—》执行
  5. 存储过程的创建
create procedure usp_存储过程名称
存储过程参数(普通参数,输出参数,输入参数默认值)--参数的数据类型长度不能大于原来的数据的大小,参数前加上@符号
as
业务需要的SQL语句块
go

--存储过程调用
exec usp_存储过程名称 ‘参数1,参数2........’--参数要一一对应

还有:带参数默认值的存储过程,必须放在最后
3.事务:

  1. 概念:为了完成一个任务,而这个任务有多个步骤,为了保证这些步骤要么全部成功,要么全部失败。和银行取钱很类似:客户取出钱后,对应银行因扣除账户上的余额一样。
  2. 如果事务中有一个步骤出错:事务采用事务回滚rollback的方式回到执行前
  3. 事务的应用:如果一个存储过程需要2个或者2个以上的增删改操作时,我们就应该使用事务
  4. 事务的特点:原子性(要么都成功执行,要么都不执行);隔离性;一致性(保证数据的一致)
  5. 事务创建的方法:
--此处待重新装上数据库后再修改,此处不全
Create Procedure usp_demo
@aname nvarchar(20),
@bstu  nvarchar(20),
@bkm   nvarchar(20),
@bcj    nvarchar(20),
@cid int,
@cname nvarchar(20)
begin transaction
begin
insert into a (name)values(@aname)
insert into b (stuid,km,cj)values(@bstu,@bkm,@bcj)
insert into c(id,name) values(@cid,@cname)
commit transaction
rollback transaction
end
go
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐