存储过程基础知识

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

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

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

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • Redis的数据类型(四)—— Sortedset数据类型

    Redis的数据类型(四)—— Sortedset数据类型**Sortedset数据类型**一、redissortedset介绍在集合类型的基础上,有序集合类型为集合中的每个元素都关联一个分数,这使得我们不仅可以完成插入、删除和判断元素是否存在在集合中,还能够获得分数最高或最低的前N个元素、获取指定分数范围内的元素等与分数有关的操作。在某些方面有序集合和列表类型有些相似。1、二者都是有序的。2、二者都可以获得某一范围的元素。但是,二者…

    2022年10月20日
  • js中settimeout()的用法详解_js中setattribute

    js中settimeout()的用法详解_js中setattributesetTimeout与setTimeInterval均为window的函数,使用中顶层window一般都会省去,这两个函数经常稍不留神就使用错了。setTimeout内的函数先不执行,隔一段时间后再执行,函数后面的数字是隔的时间,单位是毫秒(千分之一秒)比如:setTimeout(‘alert(“helloworld!”)’,400);setInterval()方法可按照

  • MySQL数据类型DECIMAL用法

    MySQL数据类型DECIMAL用法MySQL DECIMAL数据类型用于在数据库中存储精确的数值。我们经常将DECIMAL数据类型用于保留准确精确度的列,例如会计系统中的货币数据。要定义数据类型为DECIMAL的列,请使用

  • 移动APP开发环境搭建(新手)「建议收藏」

    移动APP开发环境搭建(新手)「建议收藏」移动APP开发环境配置(新手搭建)涉及到的配置工具 STS(eclipseidea一样的开发工具) javajdk:是Java语言开发工具包,JDK是整个JAVA的核心,包括了Java运行环境 ant:Ant是Java的生成工具,用来编译、生成;跨平台, Ant的主要目的就是把你想做的事情自动化,不用你手动一步一步做,因为里面内置了javac、java、创建目…

  • Windows Socket UDP协议(服务器与客户端)

    Windows Socket UDP协议(服务器与客户端)

发表回复

您的电子邮箱地址不会被公开。

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