存储过程基础知识

什么是存储过程呢?存储过程就是作为可执行对象存放在数据库中的一个或多个SQL命令。 通俗来讲:存储过程其实就是能完成一定操作的一组SQL语句。http://hovertree.com/h/

大家好,又见面了,我是全栈君,今天给大家准备了Idea注册码。

什么是存储过程呢?
存储过程就是作为可执行对象存放在数据库中的一个或多个SQL命令。 
通俗来讲:存储过程其实就是能完成一定操作的一组SQL语句。

http://hovertree.com/h/bjaf/b05uxijr.htm

那为什么要用存储过程呢?
1.存储过程只在创造时进行编译,以后每次执行存储过程都不需再重新编译,而一般SQL语句每执行一次就编译一次,所以使用存储过程可提高数据库执行速度。
2.当对数据库进行复杂操作时,可将此复杂操作用存储过程封装起来与数据库提供的事务处理结合一起使用。
3.存储过程可以重复使用,可减少数据库开发人员的工作量。
4.安全性高,可设定只有某些用户才具有对指定存储过程的使用权

那存储过程怎么用呢?
以下通过表Student 来了解存储过程,因为是要了解存储过程的简单用法,所以所有例子均很简单。
存储过程基础知识

无参数存储过程:
选出Student表中的所有信息,

create proc StuProc

as //此处 as 不可以省略不写

begin //begin 和 end 是一对,不可以只写其中一个,但可以都不写

select S#,Sname,Sage,Ssex from student

end

go

有参数存储过程:
全局变量
全局变量也称为外部变量,是在函数的外部定义的,它的作用域为从变量定义处开始,到本程序文件的末尾。
选出指定姓名的学生信息:

复制代码
create proc StuProc

@sname varchar(100) 

as 

begin

select S#,Sname,Sage,Ssex from student where sname=@sname

end

go

— 何问起 hovertree.com 

exec StuProc ‘赵雷’ //执行语句
复制代码

上面是在外部给变量赋值,也可以在内部直接给变量设置默认值

复制代码
create proc StuProc

@sname varchar(100)=’赵雷’

as 

begin

select S#,Sname,Sage,Ssex from student where sname=@sname

end

go

— 何问起 hovertree.com 

exec StuProc
复制代码

也可以把变量的内容输出,使用output

复制代码
create proc StuProc

@sname varchar(100),

@IsRight int output //传出参数

as 

if exists (select S#,Sname,Sage,Ssex from student where sname=@sname)

set @IsRight =1

else

set @IsRight=0

go

— 何问起 hovertree.com 

declare @IsRight int 

exec StuProc ‘赵雷’ , @IsRight output

select @IsRight
复制代码

以上是全局变量,下面来了解局部变量
局部变量也称为内部变量。局部变量是在函数内作定义说明的。其作用域仅限于函数内部,离开该函数后再使用这种变量是非法的。
局部变量的定义:必须先用Declare命令定以后才可以使用,declare{@变量名 数据类型}
局部变量的赋值方法:set{@变量名=表达式}或者select{@变量名=表达式}
局部变量的显示:select @变量名

复制代码
create proc StuProc

as 

declare @sname varchar(100)

set @sname=’赵雷’

select S#,Sname,Sage,Ssex from student where sname=@sname

go

— 何问起 hovertree.com 

exec StuProc
复制代码

那如果是要把局部变量的数据显示出来怎么办呢?

复制代码
create proc StuProc

as 

declare @sname varchar(100)

set @sname=(select Sname from student where S#=01)

select @sname

go

— 何问起 hovertree.com 

exec StuProc
复制代码

推荐:http://www.cnblogs.com/roucheng/p/3541165.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/120543.html原文链接:https://javaforall.net

(0)
上一篇 2021年12月23日 下午10:00
下一篇 2021年12月23日 下午11:00


相关推荐

  • 磁盘,硬盘,软盘,光盘的区别[通俗易懂]

    磁盘,硬盘,软盘,光盘的区别[通俗易懂]计算机存储器分为两大类:内存存储器和外部存储器(简称内存或内存条和外存)。内存容量小,存取速度快,只能临时保存信息(经cup处理后的数据),断电后信息就会消失。外存容量大,存取速度比内存慢,能永久

    2022年8月3日
    8
  • linux磁盘空间查看与清理

    linux磁盘空间查看与清理大早上 收到用户反馈 服务启动不了 明明昨天还好好的 今天这是怎么了呢 水土不服 经过分析排查发下 磁盘空间使用率已经是 100 了 磁盘满了 当然起不来了 下面记录一下 查看内容记录 1 查看 opt 当前可用磁盘空间 cd optdf h 发现已用 100 了 2 查看占用空间比较大的文件 du hmax depth 1 查找之后发下是 log 文件过大 发现问题 找到问题 那就不要客气了 下一步解决问题 3 rm frlog 清理完毕 结束 注意 如果

    2026年3月18日
    2
  • matlab读取txt文件为数组「建议收藏」

    matlab读取txt文件为数组「建议收藏」clc;clear;closeall;rows=[1180];%4行到17行。cols=[11];%3到8列。[FileName,PathName]=uigetfile(‘*.txt’,’SelecttheTxtfiles’);%弹出对话框,然后选择你要处理的文件fid=fopen([PathNameFileName]);temp=textscan(f…

    2025年9月18日
    11
  • oracle soap api,Web API与SOAP API的区别

    oracle soap api,Web API与SOAP API的区别WebAPI与SOAPAPI的区别总的来说,WebAPI比SOAPAPI有优势,多数情况下SOAPAPI的优势仅在消息结构的描述上。因此在三方集成时,当对方的集成工具仅支持根据WSDL来构建调用时,才建议考虑发布SOAPAPI。1.请求消息格式不同WebAPI的消息规格为URL请求;SOAPAPI的消息格式为SOAP规范。从消息封装、编码/解码上,WebAPI有明显的并发性能优势…

    2022年7月26日
    7
  • DeepSeek文献综述保姆级教程:从文献检索到成文全流程解析(附指令)

    DeepSeek文献综述保姆级教程:从文献检索到成文全流程解析(附指令)

    2026年3月16日
    1
  • 0.96寸OLED12864显示屏设计方案(原理图+PCB+BOM表+程序)

    0.96寸OLED12864显示屏设计方案(原理图+PCB+BOM表+程序)一 简介 OLED 屏幕作为一种新型的显示技术 其自身可以发光 亮度 对比度高 功耗低 在当下备受追捧 而在我们正常的显示调整参数过程中 我们越来越多的使用这种屏幕 我们使用的一般是分辨率为 128 64 屏幕尺寸为 0 96 寸 由于其较小的尺寸和比较高的分辨率 让它有着很好的显示效果和便携性

    2026年3月26日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号