关于存储过程的相关

存储过程

1.什么是存储过程?用什么来调用?

存储过程是一个预编译的SQL语句,优点是允许模块化的设计,就是说只需创建一次,以后在程序中就可以调用多次。如果某次操作需要执行多次SQL,使用存储过程比单纯SQL语句执行要快。可以用一个“execute 存储过程名 参数”命令来调用存储过程。

2.存储过程的作用是什么?

1.存储过程具有对数据库立即访问的功能。
2.使用存储过程可以加快程序的运行速度。
3.使用存储过程可以减少网络流量。
4.使用存储过程可以提高数据库的安全性。

3.存储过程及其优缺点。

存储过程是一个预编译的sql语句 ,编译后可多次使用
优势:响应时间上来说有优势,可以给我们带来运行效率提高的好处,且使用存储过程的系统更加稳定
缺点:维护性较差,相对于简单sql,存储过程并没有什么优势,并且在进行调试时比较困难。

4.存储过程的使用

首先创建一个测试表
IDNameRemark
1JavaScript
2斗罗大陆
3三国演义
4水浒传
5红楼梦
6斗破苍穹
1.不带参数的存储过程的创建和调用

需求:利用存储过程查询表
1)语法

------存储过程的创建方法
create proc --创建存储过程
proc_Name --存储过程名称
as
select * from Table_Name --相关sql语句代码
------存储过程的调用方法
exec(调用方法) proc_Name(存储过程) 

2)使用代码

create proc cp_select_book 
as 
select *  from Books
--调用
exec cp_select_book

3)执行结果
在这里插入图片描述

2.带输入参数的存储过程的创建和调用

需求:利用存储过程通过书本名称查询表
1)语法

------存储过程的创建方法
create proc --创建存储过程
proc_Name --存储过程名称
(
   @parameter_Name varchar(50) --参数名
) 
as
select * from Table_Name like '%'+@name+'%' --相关sql语句代码
------存储过程的调用方法
exec(调用方法) proc_Name(存储过程)   parameter_Name.value(输入参数的值) 

2)使用代码

create proc cp_select_book_ByName(
	@name nvarchar(50)
) 
as 
select * from Books where Name like '%'+@name+'%'
--调用
exec cp_select_book_ByName '大陆'

3)执行结果
在这里插入图片描述

3.带输出参数的存储过程的创建和调用

需求:利用存储过程通过书本名称查询表,并显示总数据数量
1)语法

------存储过程的创建方法
create proc --创建存储过程
proc_Name --存储过程名称
(
   @parameter_Name varchar(50) --参数名
   @parameter_Name int out --参数名 out为输出关键字
) 
as
select * from Table_Name like '%'+@name+'%' --相关sql语句代码
------存储过程的调用方法
exec(调用方法) proc_Name(存储过程)  parameter_Name.value(输入参数的值)   @parameter_Name.value(输出参数的值) 

2)使用代码

create proc cp_select_book_ByNameExt(
	@Name varchar(50),
	@recordRows int out
)
as
select * from Books where Name like '%'+@name+'%'
select @recordRows=COUNT(*) from Books
--调用
declare @row int --定义一个变量,接收返回的值
exec cp_select_book_ByNameExt '大陆',@row out
print '查询的数量:'+convert(varchar(50),@row)

3)执行结果
在这里插入图片描述
在这里插入图片描述

4.简单的分页的存储过程的创建和调用

需求:利用存储过程通过分页查询书本表
1)语法

------存储过程的创建方法
create proc --创建存储过程
proc_Name --存储过程名称
(
   @parameter_Name varchar(50) --参数名
   @parameter_Name int out --参数名 out为输出关键字
) 
as
select * from Table_Name like '%'+@name+'%' --相关sql语句代码
------存储过程的调用方法
exec(调用方法) proc_Name(存储过程)  parameter_Name.value(输入参数的值)   @parameter_Name.value(输出参数的值) 

2)使用代码

create proc cp_select_book_Pages(
	@pageCount int out,     --定义接收总个数的参数
	@pageIndex int,   --定义第几页的参数
	@pageSize int  --定义一页多少条数据的参数
)
as
select @pageCount=COUNT(*) from Books
select top (@pageSize) * from Books 
where id not in (select top ((@pageIndex-1)*@pageSize) ID from Books order by ID) 
declare @row int     --定义一个变量,接收返回的值
exec cp_select_book_Pages @row out,2,3      --查询第二页的三条数据
print '查询的数量:'+convert(varchar(50),@row)

3)执行结果
在这里插入图片描述
在这里插入图片描述

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值