Chinaunix首页 | 论坛 | 博客
  • 博客访问: 38268
  • 博文数量: 12
  • 博客积分: 10
  • 博客等级: 民兵
  • 技术积分: 79
  • 用 户 组: 普通用户
  • 注册时间: 2011-03-07 21:35
文章分类

全部博文(12)

文章存档

2015年(12)

我的朋友

分类: Mysql/postgreSQL

2015-01-29 20:01:38

   之前看过一些基本的mysql命令,也练习过一段时间。但由于没有坚持,等到要用的时候就经常忘记,所以又得重新学习。
   最近都是用linux进行操作,感觉还是相当爽。主要是该系统下有很多帮助,在没有网络的情况还是相当棒的。进入mysql之后,输入help procedure,就有关于procedure的帮助,
Many help items for your request exist.
To make a more specific request, please type 'help ',
where is one of the following
topics:
   ALTER PROCEDURE  #更改procedure存储过程
   CREATE PROCEDURE  #创建procedure存储过程
   DROP PROCEDURE   #删除procedure存储过程
   PROCEDURE ANALYSE  #对目标列进行数据结构优化
   SELECT       #这个就不说了,都知道的
   SHOW          #功能强度的show,自己help show瞧瞧吧  
   SHOW CREATE PROCEDURE#显示procedure创建过程
   SHOW PROCEDURE CODE  #这个功能得再mysql编译时加上--with-debug才能使用
   SHOW PROCEDURE STATUS #显示存储过程的状态
当然我们每个人学东西最好能使用该程序自带的帮助,这样能让自己了解的更清楚,而且加强英文阅读。
create procedure语法:
CREATE
    [DEFINER = { user | CURRENT_USER }]
    PROCEDURE sp_name ([proc_parameter[,...]])
    [characteristic ...] routine_body

CREATE
    [DEFINER = { user | CURRENT_USER }]
    FUNCTION sp_name ([func_parameter[,...]])
    RETURNS type
    [characteristic ...] routine_body

proc_parameter:
    [ IN | OUT | INOUT ] param_name type

func_parameter:
    param_name type

type:
    Any valid MySQL data type

characteristic:
    COMMENT 'string'
  | LANGUAGE SQL
  | [NOT] DETERMINISTIC
  | { CONTAINS SQL | NO SQL | READS SQL DATA | MODIFIES SQL DATA }
  | SQL SECURITY { DEFINER | INVOKER }

routine_body:
    Valid SQL routine statement
关于proc_parameter,help中专门注解。有IN,OUT,INOUT三个参数类型,分别代表输入,输出,输入输出。当用call调用时,IN只能接收数据,向procedure传入数据;而OUT却可以将procedure修改过后的数据传递给参数,方便以后使用。INOUT既可以调用也可以procedure之后使用。其中OUT传出的参数,调用时需要使用@name,切记。
example:
mysql>delimiter //
mysql>create procedure countlen(OUT parm int)
           >begin
           > select count(*) into parm from testmysql.testmysql3 ;
           >end//
mysql>call countlen(@a) //
mysql>select @a //

   
        
阅读(1024) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~