mysql 第12章 存储过程

2015-10-24

目录

 例1:管理员工的存储过程定义

delimiter //
CREATE PROCEDURE employee_add(p_name char(64),p_email char(64),p_password char(64))
MODIFIES SQL DATA
BEGIN
DECLARE l_pass char(64);
SET l_pass = PASSWORD(p_password);
INSERT INTO employee(name,email,password)
VALUES(p_name,p_email,l_pass);
END //

CREATE PROCEDURE employee_passwd(p_email char(64),p_password char(64))
MODIFIES SQL DATA
BEGIN
DECLARE l_pass char(64);
SET l_pass = PASSWORD(p_password);
UPDATE employee SET `password` = l_pass WHERE email = p_email;
END //

CREATE PROCEDURE employee_del(p_name char(64))
MODIFIES SQL DATA
BEGIN
DELETE FROM employee WHERE name = p_name;
END //

delimiter ;

例2:调用存储过程

CALL employee_add('chuck','chuck@example.com','abrakadabra');

 

例3:获取员工姓名的存储函数

delimiter //
CREATE FUNCTION employee_email(p_name char(64))
RETURNS char(64)
DETERMINISTIC
BEGIN
DECLARE l_email char(64);
SELECT email INTO l_email FROM employee WHERE name = p_name;
RETURN l_email;
END //
delimiter ;

例4:使用存储函数

CREATE TABLE collected (name char(32),email char(64));

INSERT INTO collected(name,email) VALUES('chuck',employee_email('chuck'));

SELECT employee_email('chuck');

例5:更新表的存储函数

CREATE TABLE log_msg (log_id int auto_increment PRIMARY key,msg text);

delimiter //
CREATE FUNCTION log_message(msg text)
RETURNS INT
DETERMINISTIC
BEGIN
INSERT INTO log_msg(msg) VALUES(msg);
RETURN LAST_INSERT_ID();
END //
delimiter ;

SELECT log_message('Just a test');

 

 

参考资料

[1] 唐汉明.深入浅出MySQL 数据库开发、优化与管理维护(第2版)[M].北京:人民邮电出版社,2014

[2] Schwartz.高性能MySQL(第3版)[M].北京:电子工业出版社,2013

[3] 范德兰斯.MySQL开发者SQL权威指南 [M].北京:机械工业出版社,2008

[4] Forta.MySQL必知必会 [M].北京:人民邮电出版社,2009

[5] Chapter 20 Stored Programs and Views

[6] 第20章:存储程序和函数

[7] MySQL存储过程详解

[8] MySQL存储过程

[9] 一点实例明白mysql数据库存储过程

[10] MySQL 存储过程 常用语法

[11] mysql存储过程详解

[12] MySql存储过程—1、SQL存储过程的基础知识

[13] MySql存储过程—2、第一个MySql存储过程的建立

[14] MySql存储过程—3、变量

[15] MySql存储过程—4、参数

[16] MySql存储过程—5、逻辑判断,条件控制

[17] MySql存储过程—6、循环

[18] MySql存储过程—7、游标(Cursor)

[19] MySql存储过程—8、条件处理(Condition Handling) / 错误、异常处理

[20] mysql存储过程详细教程

[21] Mysql 存储过程基本语法

[22] MySQL 存储过程的基本用法介绍

 

posted @ 2015-10-24 20:47  岑亮  阅读(159)  评论(0编辑  收藏  举报