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

你可能感兴趣的:(2018-11-20 MySQL过程与存储过程)