if (mysql_query("call deleteuser('$delete_user[0]')")){
echo "用户$delete_user[0]删除成功br";
}else {
echo "用户$delete_user[0]删除失败br";
}
?
程序运行的结果:
执行结果
添加用户welefen 成功
用户welefen 验证正确
用户welefen 的密码修改成功
用户welefen 删除成功
以上的这个程序简单的说明了Mysql 中的存储过程结合PHP 的应用 , 当然在实际应用要比这个
复杂的多 。
验证角谷猜想
角谷猜想:给定一个整数x,若x%2=1,则x=3*x+1,否则x=x/2,如此循环下去,经过有限步骤必
能得到1 。
例如:初始整数为9,则
9-28-14-7-22-11-34-17-52-26-13-40-20-10-5-16-8-4-2-1
为了说明存储过程中一些语法的应用,我们通过存储过程来实现它:
执行结果
mysql delimiter //
mysql create procedure jgguess(in number int)
- begin
- declare param1 int default 1;
- set @a=concat(number);
- jiaogu:loop#循环开始
- set param1=number%2;
- if param1=1 then set number=number*3+1; #number 为奇数,将它乘3加 1
- else set number=number/2;
- end if;
- set @a=concat(@a,'-',number);
- if number1 then iterate jiaogu; #number 不为 1 , 继续循环
- end if;
- leave jiaogu; #退出循环
- end loop jiaogu;
- end
- //
Query OK, 0 rows affected (0.00 sec)
mysql call jgguess(11);
- //
Query OK, 0 rows affected (0.00 sec)
mysql select @a//
+-------------------------------------------------------+
| @a|
+-------------------------------------------------------+
| 11-34-17-52-26-13-40-20-10-5-16-8-4-2-1 |
+-------------------------------------------------------+
1 row in set (0.02 sec)
在这个存储过程中,你传入的参数不能超过int 型数据的范围,否则就会报错 。
触发器
触发器是与表有关的命名数据库对象,当表上出现特定事件时,将激活该对象 。例如当我们向
某个表插入一行数据时发生一个事件或者删除某个记录时触发某个事件 。
语法:
CREATE TRIGGERtrigger_Name trigger_time trigger_event
ONtbl_Name FOR EACHROWtrigger_stmt
trigger_time 是触发器的动作时间 。它可以是 BEFORE 或 AFTER ,以指明触发器是在激活它的
语句之前或之后触发 。
trigger_event 指明了激活触发器的语句的类型 。trigger_event可以是下述值之一:
INSERT:将新行插入表时激活触发器,例如,通过 INSERT、LOADDATA 和 REPLACE 语句;
UPDATE:更改某一行时激活触发器,例如,通过UPDATE语句;
DELETE:从表中删除某一行时激活触发器,例如,通过 DELETE 和 REPLACE 语句 。
例如当我们向上面的user 表中增加一个用户名为“welefen ”时,我们把记录用户数的表的值增
加 1;
代码片段
Create table numuser(
Num int not null default 0
);
Delimiter //
Create trigger testnum after insert on welefen.userfor each row
Begin
Update welefen.numuser set Num=Num+1;
End
//
视图
当我们想得到数据表中某些字段的信息,并想把他们保存时我们就可以用视图 。
语法:
CREATE [OR REPLACE] [ALGORITHM = {UNDEFINED | MERGE | TEMPTABLE}]
VIEW view_Name [(column_list)]
AS select_statement
[WITH [CASCADED | LOCAL] CHECK OPTION]
例如我们想对上面的用户表使用视图,可以这样:
Create viewwelefen.userview as select * fromwelefen.user;
查看视图的信息可以使用:
Select * fromwelfen.userview;
mysql: 创建视图和存储过程1.drop procedure if exists pr_even;create procedure pr_even(in x int,out y int)begindeclare i int;set y = 0; set i = 0; while ix + 1 doif i mod 2 = 0 thenset y = y + 1;end if;set i = i + 1;end while;end;-- 调用过程CALL pr_even(2012, @y);SELECT @y; 2.-- 创建临时表length()creat table tmp_student {select name from student where length(name)3}-- 创建视图create view v_student as { select name,age from student as s,tmp_student as t_s where s.name=t_s.name}
推荐阅读
- 深圳实时直播软件开发,深圳直播app开发公司
- 夜秀场地视频请用安卓,夜秀场地视频请用安卓手机下载
- 斗鱼直播绑定不了手机,斗鱼为什么绑定了手机还要求绑定
- go语言的冒号 go语言冒号什么意思
- c链接mysql的字符串,c连接mysql
- 赛车游戏双显卡,赛车游戏双屏
- 什么网络射击游戏,什么网络射击游戏好玩
- go语言没有泛型,go语言为什么没有类
- 电商目前如何,电商前景如何电商行业的发展前景