当前位置:首页 > 系统运维 > 正文内容

MySQL存储过程中的语法学习

a8116255316年前 (2010-05-27)系统运维6

以下的文章主要介绍的是MySQL存储过程中的语法学习,主要内容包括名字,参数列表,与很多SQL语句的SQL语句集。以下就是具体方案的描述,希望会给你带来一些帮助在此学习方面。

一个存储过程包括名字,参数列表,以及可以包括很多SQL语句的SQL语句集。

创建存储过程:

语法:

CREATE PROCEDURE p()  BEGIN  

此存储过程的正文

END  CREATE PROCEDURE productpricing()  BEGIN  SELECT Avg(pro_price) AS priceaverage  FROM products;  END;  

begin…end之间是存储过程的主体定义

MySQL的分界符是分号(;)

调用存储过程的 *** 是:

CALL加上过程名以及一个括号

例如调用上面定义的存储过程

CALL productpricing();  

哪怕是不用传递参数,存储过程名字后面的括号“()”也是必须的

删除存储过程的 *** 是

DROP PROCUDURE productpricing; 

创建带参数的存储过程:

CREATE PROCUDURE productpricing(  OUT p1 DECIMAL(8,2),  OUT ph DECIMAL(8,2),  OUT pa DECIMAL(8,2)  )  BEGIN  SELECT Min(prod_price) INTO pl FROM products;  SELECT Max(prod_price) INTO ph FROM products;   SELECT Avg(prod_price) INTO pa FROM products;  END;  

DECIMAL用于指定参数的数据类型

OUT用于表明此值是用于从存储过程里输出的

MySQL支持 OUT, IN, INOUT

调用带参数的存储过程:

CALL productpricing(@pricelow,  @pricehigh,  @priceaverage);   

所有的参数必须以@开头

要想获取@priceaverage的值,用以下语句

SELECT @priceaverage; 

获取三个的值,用以下语句

SELECT @pricehigh, @pricelow, @priceaverage; 

另一个带IN和OUT参数的存储过程:

CREATE PROCEDURE ordertotal(  IN onumber INT,  OUT ototal DECIMAL(8,2)  )  BEGIN  SELECT Sum(item_price*quantity)  FROM orderitems  WHERE order_num = onumber INTO ototal;  END;  CALL ordertotal(20005, @total);  SELECT @total;  

添加一个完整的例子:(这是一个自定义分页的存储过程)

DELIMITER $$  DROP PROCEDURE IF EXIstS `dbcall`.`get_page`$$  CREATE DEFINER=`root`@`localhost` PROCEDURE `get_page`(  /**//*Table name*/  tableName varchar(100),  /**//*Fileds to display*/  fieldsNames varchar(100),  /**//*Page index*/  pageIndex int,  /**//*Page Size*/  pageSize int,   /**//*Field to sort*/  sortName varchar(500),  /**//*Condition*/  strWhere varchar(500)  )  BEGIN   DECLARE fieldlist varchar(200);   if fieldsNames=''||fieldsNames=null THEN  set fieldlist='*';  else  set fieldlist=fieldsNames;   end if;  if strWhere=''||strWhere=null then  if sortName=''||sortName=null then   set @strSQL=concat('SELECT ',fieldlist,' FROM ',tableName,' LIMIT ',(pageIndex-1)*pageSize,',',pageSize);  else  set @strSQL=concat('SELECT ',fieldlist,' FROM ',tableName,' ORDER BY ',sortName,' LIMIT ',(pageIndex-1)*pageSize,',',pageSize);   end if;  else  if sortName=''||sortName=null then  set @strSQL=concat('SELECT ',fieldlist,' FROM ',tableName,' WHERE ',strWhere,' LIMIT ',(pageIndex-1)*pageSize,',',pageSize);  else  set @strSQL=concat('SELECT ',fieldlist,' FROM ',tableName,' WHERE ',strWhere,' 

ORDER BY ',sortName,' LIMIT ',(pageIndex-1)*pageSize,',',pageSize);   end if;  end if;   PREPARE stmt1 FROM @strSQL;   EXECUTE stmt1;  DEALLOCATE PREPARE stmt1;  END$$  DELIMITER ;  

上面说了这么多内容,是关于对MySQL存储过程语法学习的介绍,不知道各位对MySQL的认识是不是更上一层楼了,时时关注IT *** ,学习最新Mysql技术。

扫描二维码推送至手机访问。

版权声明:本文由2345好导航站长资讯发布,如需转载请注明出处。

本文链接:http://2345hao.cn/blog/index.php/post/20702.html

分享给朋友:

“MySQL存储过程中的语法学习” 的相关文章

windows 7鼠标停顿怎么办?windows 7 usb鼠标停顿的原因以及解决

windows 7鼠标停顿怎么办?windows 7 usb鼠标停顿的原因以及解决

很多使用Windows 7系统的朋友都想小编反应,假如暂停使用电脑,鼠标会出现停顿现象,这是怎么回事呢 该怎么解决呢 下面就和小编一起去看下Windows 7 usb鼠标停顿的解决方法吧。 由于Windows 7系统中有一项USB选择性暂停造成的。这项设置主要为了节电,当他检测到用户没有对系统进行...

windows 7系统的电脑发出嘟嘟嘟的声音该怎么解决?

windows 7系统的电脑发出嘟嘟嘟的声音该怎么解决?

在某些电脑中,机器内部蜂鸣器与系统的声音输出方案是相关联的,这样一来会导致当系统输出声音时,即使电脑没有连接外部音响或耳机,也会通过内置蜂鸣器发出“嘟嘟哔哔”的声音。这个问题主要出现在Windows 7电脑中,假如你的电脑恰好遇到了这样的问题,可参考下面的方法来解决: 1、在桌面“计算机”图标上右...

Windows7开机后出现黑一下屏性能降低

Windows7开机后出现黑一下屏性能降低

打开IE浏览器的时候、聊QQ的时候、玩游戏的时候… … 这到底是谁惹的祸呢? 很多人都知道Windows 7桌面特效全部开启会使系统性能降低,那到底是哪个特效导致的这一情况呢? 解决办法: 右键计算机,高级系统设置-性能-设置-关闭”任务栏和开始菜单使用动画“和”最大化和最小化动态显示窗口“...

上帝不止一个 更多Windows7 快捷模式.

上帝不止一个 更多Windows7 快捷模式.

国外媒体CNET NEWS就这个“上帝模式”和微软Windows部门主管Steven Sinofsky进行邮件交流后得知,这其实只是众多快捷方式中的一个,Sinofsky在邮件里给出了十多个这类快捷方式的关键字符串。 它们的建立方法和之前的“上帝模式”一样,在任意位置新建的一个文件夹,然后改名即可...

windows 7查看电脑近期使用情况确定有没有被他人使用

windows 7查看电脑近期使用情况确定有没有被他人使用

我一个朋友最近装装了Windows 7,他总感觉有人用了他的电脑,但是一直不确定,他想知道有没有人动用他的电脑,问我有没有办法 我说设置一下就行了: 启动Windows 7,在搜索栏中输入编辑组,马上就搜索到了编辑组策略,点击即可启动程序编辑组策略。依次展开组策略左侧树形列表的计算机配置/管理模...

各个都很实用:windows 7系统电脑日常小技巧

各个都很实用:windows 7系统电脑日常小技巧

在使用Windows 7的时候很多用户对于系统的很多功能并不是很了解,也正是因为这样的不了解导致很多用户在使用Win 之后并不能体验Windows 7的功能便携和强大功能,导致很多用户对于Windows 7的认识还是比较模糊,不过为了让更多的朋友了解Windows 7的特点和便携应用,今天就为大家汇...