小题大做之MySQL 5.0存储过程编程入门
MySQL 版本:5.0.45 phpMyAdmin版本:2.11.3
首先看MySQL 5.0参考手册中关于创建存储过程的语法说明:
CREATE
[DEFINER = { user | CURRENT_USER }]
PROCEDURE sp_name ([proc_parameter[,...]])
[characteristic ...] routine_body
proc_parameter:
[ IN | OUT | INOUT ] param_name type
type:
Any valid MySQL data type
characteristic:
LANGUAGE SQL
| [NOT] DETERMINISTIC
| { CONTAINS SQL | NO SQL | READS SQL DATA | MODIFIES SQL DATA }
| SQL SECURITY { DEFINER | INVOKER }
| COMMENT 'string'
routine_body:
Valid SQL procedure statement
如果你对MySQL还不太熟悉的话,单单看这个语法结构当然不足以进行MySQL存储过程编程。我之前基本都是使用MS SQL SERVER,所以以下记录我熟悉MySQL存储过程的过程,也是重点介绍MS SQL SERVER与MySQL区别较大的地方。
第一步,当然是写个Hello Word的存储过程,如下:
CREATE PROCEDURE phelloword()
BEGIN
SELECT 'Hello Word!' AS F;
END;
将上面创建phelloword存储过程的语句拷到phpMyAdmin中执行,报如下错误:
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 3
在这个问题上我纠缠了很久,在MySQL的命令行工具中执行同样不成功,但是根据提示信息可以知道执行在 SELECT 'Hello Word!' AS F;处结束,后面的END;没有执行,这显然会导致错误。
这里需要选择以个分隔符,语法如下:DELIMITER //
分隔符是通知MySQL客户端已经输入完成的符号。一直都是用“;”,但是在存储过程中不行,因为存储过程中很多语句都需要用到分号。
因此上面的存储过程改为:
CREATE PROCEDURE ptest()
BEGIN
SELECT 'Hello Word!' AS F;
END //
另外在phpMyAdmin中执行时,在Delimiter文本框中填写 //,这次存储过程即可创建成功。
第二步,写一个包括参数,变量,变量赋值,条件判断,UPDATE语句,SELECT返回结果集的完整的一个存储过程,如下:
CREATE
相关文档:
推广地点表promotion_addr字段:name,id
电话报竣表unicom_record字段:date, sheet_id(关联sheet表id)
报单表sheet字段:id,promotion_addr_id(关联promotion_addr表id)
要求统计某个月已报竣各推广地点的推广个数;
SELECT
p.name, count(*)
from
unicom_record AS ur
Left Join sheet AS s ON ur.sheet_id ......
mysql 命令学习:
1. mysql -uroot ;
2.mysql -h ip -ubusiusr -pbusiusr newdrmdb;
3.show databases ; //显示所有的数据库 ;
4.show tables ; ......
转自http://blog.csdn.net/ytz_linuxer/archive/2009/07/04/4321259.aspx
以版本phpMyAdmin-2.6.1.tar.gz为例
先解压phpMyAdmin-2.6.1.tar.gz到/usr/local/apache2/htdocs,
得到文件夹phpMyAdmin-2.6.1,将其重命名为phpmyadmin,(这样在以后的操作中将会变的简便)。
  ......
首先安装phpMyadmin
[root@aladdin phpMyAdmin]# uname -a
Linux aladdin.leadtek.com.cn 2.6.32.11-99.fc12.i686.PAE #1 SMP Mon Apr 5 16:15:03 EDT 2010 i686 i686 i386 GNU/Linux
[root@aladdin phpMyAdmin]# yum info phpmyadmin
Loaded plugins: presto, refresh-packagekit
Installed Packages
Name &nbs ......