存储过程基础知识

什么是存储过程呢?存储过程就是作为可执行对象存放在数据库中的一个或多个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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • cocos2d-x lua 内存回收

    cocos2d-x lua 内存回收

    2021年12月8日
    41
  • 深度学习之卷积神经网络(Convolutional Neural Networks, CNN)

    深度学习之卷积神经网络(Convolutional Neural Networks, CNN)前面,我们介绍了DNN及其参数求解的方法(BP算法),我们知道了DNN仍然存在很多的问题,其中最主要的就是BP求解可能造成的梯度消失和梯度爆炸的问题.那么,人们又是怎么解决这个问题的呢?本节的卷积神经网络(ConvolutionalNeuralNetworks,CNN)就是一种解决方法.我们知道神经网络主要有三个部分组成,分别为:网络结构—描述神经元的层次与连接神经元的结构. 激活函数(激励函数)—用于加入非线性的因素,解决线性模型所不能解决的问题. 参数学习方…

    2022年9月3日
    4
  • matlab绘制三维图形的步骤_matlab绘制三维图形的步骤

    matlab绘制三维图形的步骤_matlab绘制三维图形的步骤基于Matlab的六个用于绘制三维图像的函数……

    2022年10月11日
    0
  • vs2013安装失败解决办法_dns解析失败怎么解决

    vs2013安装失败解决办法_dns解析失败怎么解决个人解决方案:在控制面板-》软件卸载中将VisualC++2012redistributable、VisualC++2010redistributable相关的编程语言的东西卸载后,重启再安装就可以了。有个问题就是:在重启的过程中发现win10关机和启动花了很长时间,可能因为我卸载了上面这些组件导致其需要更新。关于VisualC++2012redistributable是什么,

    2022年8月12日
    3
  • SqlSessionFactory介绍[通俗易懂]

    SqlSessionFactory介绍[通俗易懂]SqlSessionFactory是MyBatis的关键对象,它是单个数据库映射关系经过编译后的内存镜像。SqlSessionFactory对象的实例可以通过SqlSessionFactoryBuilder对象来获得,而SqlSessionFactoryBuildr则可以从XML配置文件或一个预先定制的Configuration的实例构建出SqlSessionFactory的实例。每一个MyB…

    2022年5月2日
    36
  • Pytest(1)安装与入门[通俗易懂]

    Pytest(1)安装与入门[通俗易懂]pytest介绍pytest是python的一种单元测试框架,与python自带的unittest测试框架类似,但是比unittest框架使用起来更简洁,效率更高。根据pytest的官方网站介绍,它

    2022年7月28日
    2

发表回复

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

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