mysql存储过程的删除,MySql存储过程 创建删除与实例

mysql教程存储过程是带参数的存储过程(动态执行sql语句),该mysql存储过程是根据用户输入的条件和排序方式查询用户的信息,排序条件可以没有调用方式:

mysql 5.0

新特性教程是为需要了解5.0版本新特性的mysql老用户而写的。简单的来说是介绍了“存储过程、触发器、视图、信息架构视图”,

call getusersdynamic('age<=30','');

/********动态查询用户的信息********/    create procedure getusersdynamic(wherecondition varchar(500),orderbyexpress varchar(100))    begin    declare stmt varchar(2000);    if length(orderbyexpress)>0 then    begin         set @sqlstr=concat('select id,name,password,age,getdate(adddate) as adddate from users where ',wherecondition,' order by ',orderbyexpress);    end;    else    begin         set @sqlstr=concat('select id,name,password,age,getdate(adddate) as adddate from users where ',wherecondition);    end;    end if;    prepare stmt from @sqlstr;    execute stmt;    end;     getdate()是一个自定义的函数,作用是返回日期的短格式

create definer=`root`@`localhost` function `getdate`($date datetime) returns varchar(50) charset latin1    return date_format($date,'%y-%m-%d');    动态插入数据的mysql存储过程,(注意四个单引号表示一个一引号):

create definer=`root`@`localhost` procedure `insertuser`(in name2 varchar(50),in password2 varchar(32),in age2 int,in adddate2 datetime)    begin    declare stmt varchar(2000);    set @sqlstr=concat('insert into users(name,password,age,adddate) values(');    set @sqlstr=concat(@sqlstr,'''',name2,'''',',','''',password2,'''',',',age2,',','''',adddate2,'''',')');    prepare stmt from @sqlstr;    execute stmt;    end;

在这里举个例子:mysql> drop function f;query ok, 0 rows affected (0.00 sec)

如果实例比较大,则需要在某些行和段落间加注释,同时我会用将“

例如:

mysql> create procedure p ()

-> begin

-> /* this procedure does nothing */

-> end;//query ok, 0 rows affected (0.00 sec)

有时候我会将例子中的"mysql>"和"->"这些系统显示去掉,你可以直接将代码复制到mysql客户端程序中(如果你现在所读的

不是电子版的,可以在mysql.com网站下载相关脚本)所以的例子都已经在suse 9.2 linux、mysql 5.0.3公共版上测试通过。

在您阅读本书的时候,mysql已经有更高的版本,同时能支持更多os了,包括windows,sparc,hp-ux。因此这里的例子将能正常的运行在您的电脑上。但如果运行仍然出现故障,可以咨询你认识的资深mysql用户,以得到长久的支持和帮助。

a definition and an example 定义及实例

定义及实例存储过程是一种存储在书库中的程序(就像正规语言里的子程序一样),准确的来说,mysql支持的“routines(例程)”有两种:

一是我们说的存储过程,二是在其他sql语句中可以返回值的函数(使用起来和mysql预装载的函数一样,如pi())。我在本书里面会更经常使用存储过

程,因为这是我们过去的习惯,相信大家也会接受。

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

在这里对局部变量,异常处理,循环控制和if条件句有新的语法定义。

下面是一个包括存储过程的实例声明:(译注:为了方便阅读,此后的程序不添任何中文注释)

create procedure procedure1 /* name存储过程名*/

(in parameter1 integer) /* parameters参数*/

begin /* start of block语句块头*/

declare variable1 char(10); /* variables变量声明*/

if parameter1 = 17 then /* start of if if条件开始*/

set variable1 = 'birds'; /* assignment赋值*/

else

set variable1 = 'beasts'; /* assignment赋值*/

end if; /* end of if if结束*/

insert into table1 values (variable1);/* statement sql语句*/

end /* end of block语句块结束*/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值