一、简单的储存过程:
1、创建一个存储过程
create procere GetUsers()
begin
select * from user;
end;12345
2、调用存储过程
call GetUsers();12
3、删除存储过程
drop procere if exists GetUsers;
二、带参数的存储过程
1、MySql 支持 IN (传递给存储过程) , OUT (从存储过程传出) 和 INOUT (对存储过程传入和传出) 类型的参数 , 存储过程的代码位于 BEGIN 和 END 语句内 , 它们是一系列 SQL 语句 , 用来检索值 , 然后保存到相应的变量 (通过指定INTO关键字) ;
2、下面的存储过程接受三个参数 , 分别用于获取用户表的最小 , 平均 , 最大分数 , 每个参数必须具有指定的类型 , 这里使用十进制值(decimal(8,2)) , 关键字 OUT 指出相应的参数用来从存储过程传出
create procere GetScores(
out minScore decimal(8,2),
out avgScore decimal(8,2),
out maxScore decimal(8,2)
)
begin
select min(score) into minScore from user;
select avg(score) into avgScore from user;
select max(score) into maxScore from user;
end;1234567891011
3、调用此存储过程 , 必须指定3个变量名(所有 MySql 变量都必须以@开始) , 如下所示 :
call GetScores(@minScore, @avgScore, @maxScore);12
4、该调用并没有任何输出 , 只是把调用的结果赋给了调用时传入的变量@minScore, @avgScore, @maxScore, 然后即可调用显示该变量的值 :
select @minScore, @avgScore, @maxScore;
5、使用 IN 参数 , 输入一个用户 id , 返回该用户的名字 :
create procere GetNameByID(
in userID int,
out userName varchar(200)
)
begin
select name from user
where id = userID
into userName;
end;12345678910
6、调用存储过程 :
call GetNameByID(1, @userName);
select @userName;123
㈡ 在长沙哪里有专门学PL\SQL 存储过程的地方
PL\SQL并不是很难,去培训机构浪费钱啊
建议你买本好点的书,多看看就好了,目前长沙应该没有专门培训PL\SQL的机构。
㈢ sql 存储过程 概念
在关系数据库中,SQL语言是应用程序和数据库管理系统之间的主要交流方法,使用SQL语言编写代码时,可以用两种方法存储和执行代码。一种是在客户端存储代码,并创建向数据库管理系统发送SQL命令并处理返回结果的应用程序;第二种是将这些SQL语句存储在数据库管理系统中,这些存储在数据库管理系统中的Sql语句就是存储过程,然后再创建执存储过程并处理返回结果的应用程序。
例如:你想在很多表中取某些记录,如果用SQL语言的话很长很复杂,你可以在数据库里编写一个存储过程,这时你用VB,C语言编写的应用程序代码里就只要给出存储过程的名称就行了
㈣ SQL实现存储过程
提供4中方案:
1、可以用sql作业的方式来定时执行。
2、编写服务,定时执行存储过程。
3、利用ado.net的方式,timmer定时执行来实现。
4、如果是每天的某个时间段来执行的话,可以配置windows计划任务来执行程序。程序中执行你的存储过程。
㈤ sql数据库物理存储单元是什么sql数据库的数据主要以什么方式存放sql如何确定数据库文件的存放位置
哈哈,北交的吧。应该许宏丽老师布置的作业。 是内模式。
㈥ sql 存储过程怎样保存
方法和详细的操作步骤如下:
1、第一步,创建一个存储过程,该代码如图所示,见下图,转到下面的步骤。
㈦ SQL的存储过程 语法格式是什么
这里以创建名为 GetStuCou 的无参数存储过程为例:
create procere GetStuCou
as
begin //开始存储过程
select * from Students left join Course c on s.C_S_Id=c.C_Id
end //结束存储过程
下面是存储过程的其他用法:
--创建存储过程
CREATE PROCEDURE PROC(后面接类型)
--定义变量--简单赋值
declare @a intset @a=5 print @a
--使用select语句赋值
declare @user1 nvarchar(50)
select @user1='张三'
print @user1
declare @user2 nvarchar(50)
--创建临时表1 create table #DU_User1
(
[ID] [int] NOT NULL,
[Oid] [int] NOT NULL,
);
--定义一个游标
declare user_cur cursor for select ID,Oid,[Login] from ST_User
--打开游标
open user_cur
while @@fetch_status=0 begin
--读取游标
fetch next from user_cur into @ID,@Oid,@Login
print @ID
--print @Login
end
close user_cur
(7)sql存储机构扩展阅读:
创建存储过程的注意事项:
1、保持事务简短,事务越短,越不可能造成阻塞。
2、在事务中尽量避免使用循环while和游标,以及避免采用访问大量行的语句。
3、在启动事务前完成所有的计算和查询等操作,避免同一事务中交错读取和更新。可以使用表变量预先存储数据。即存储过程中查询与更新使用两个事务实现。
4、超时会让事务不执行回滚,超时后如果客户端关闭连接sqlserver自动回滚事务。如果不关闭,将造成数据丢失,而其他事务将在这个未关闭的连接上执行,造成资源锁定,甚至服务器停止响应。
5、避免超时后还可打开事务 SET XACT_ABORT ON统计信息可以优化查询速度,统计信息准确可以避免查询扫描,直接进行索引查找。
㈧ 在SQL中存储过程分为哪五类
1、目录存储过程
例如:sp_columns返回当前环境中可查询的指定表或视图的列信息。
sp_tables返回当前环境下可查询的对象的列表(任何可出现在FROM子句中的对象)。
2、复制类存储过程
例如:sp_addarticle创建项目并将其添加到发布中。此存储过程在发布服务器的发布数据库上执行。
3、安全管理类存储过程
例如:sp_addrole在当前数据库创建新的Microsoft SQL Server角色。
sp_password添加或更改Microsoft SQL Server登录的密码。
4、分布式查询存储过程
例如:sp_foreignkeys返回引用主键的外键,这些主键在链接服务器中的表上。
sp_primarykeys返回指定远程表的主键列,每个键列占一行。
5、扩展存储过程
例如:xp_sendmail向指定的收件人发送邮件和查询结果集附件。
xp_startmail启动SQL邮件客户端会话。
存储过程的特点
1、存储过程在服务器端运行,执行速度快。
2、存储过程执行一次后,其执行驻留在高速缓冲存储器,在以后的操作中,只需从高速缓冲存储器中调用已编译好的二进制代码执行,提高了系统性能。
3、确保数据库的安全。使用存储过程可以完成所有的数据库操作。
4、降低网络负载,提高效率。
5、可以接受用户参数,亦可返回参数。
6、作为一种安全机制来充分利用:通过对执行某一存储过程的权限进行限制,能够实现对相应的数据的访问权限的限制,避免了非授权用户对数据的访问,保证了数据的安全。