2018-11-20 MySQL过程与存储过程
MYSQL函数
UDF
{
用户自定义函数
}
自定义函数的两个必要条件
{
1.参数
2.返回值
函数可以返回任意类型的值,同样可以接收这些
类型的参数
CREATE FUNCTION function_name
RETURNS
{STRING|INTEGER|REAL|DECIMAL}
routine_body //函数体
}
关于函数体
(1)函数体有合法的SQL语句构成;
(2)函数体可以是简单的SELECT或INSERT语句;
(3)函数体如果为符合结构则使用BEGIN...END语句;
(4)复合结构可以包含声明,循环,控制结构;
CREATE FUNCTION f1()
RETURNS VARCHAR(30)
RETURN DATE_FORMAT(NOW(),'%Y年%m月%D日 %H点:%i分:%S秒');
CREATE FUNCTION av(a INT,b INT)
RETURNS INT
RETURN ((a+b)
DROP FUNCTION function_name
MYSQL储存过程
存储过程是SQL语句和控制语句的预编译集合,以一个名称
存储并作为一个单元处理
存储过程的优点
.增强SQL语句的功能和灵活性
.实现较快的执行速度
.减少网络流量
MYSQL创建存储过程
创建一个简单的,没有参数的存储过程
CREATE PROCEDURE sp1()
SELECT VERSION();
DELIMITER
CREATE PROCEDURE removeUserById(IN p_id INT UNSIGNED)
BEGIN
DELETE FROM account_book WHERE account_id = p_id;
END
CREATE PROCEDURE removeUserAndReturnUserNums(
IN p_id INT UNSIGNED,OUT userNums INT UNSIGNED)
BEGIN
DELETE FROM account_book WHERE account_id = p_id;
SELECT count(id) FROM users INTO userNums;
END