MySQL存储过程与函数
2016-08-17 00:00
176 查看
存储过程的好处:
业务逻辑被“隐藏”在数据库里面,从而避免敏感的数据被透露
能简化应用程序代码
跨平台性
如果您必须一次执行几个语句,一个存储过程比客户端程序逐条地执行语句要快的多,因为不需要任何的来往返数据
CREATE
[DEFINER = {user | CURRENT_USER}]
PROCEDURE<name> (PARAMETER(S)...)
[characteristic(s)...] routine_body
The syntax for creating a function is:
CREATE
[DEFINER = {user | CURRENT_USER }]
FUNCTION sp_name ([parameter])
RETURNS type
[characteristic(s)...] routine_body
CREATE 创建
DEFINER 定义者,表示存储过程或者函数的所有者,如果省略,讲使用默认所有者(当前用户)
RPOCEDURE<name> 表示创建一个名字为name的存储过程
FUNCTION<name> 表示创建一个名称为name的函数
【IN | OUT | INOUT】<parameter name> type
IN 指参数是一个输入变量,它仅向过程提供一个值
OUT 指参数是只是用来存储返回值
INOUT 指参数可用于输入变量和返回值
parameter name(参数名称)是Type的类型名
RETURNS 表示返回数据类型
DETERMINISTIC 确定性
NOT DETERMINISTIC 非确定性
实例一、
CREATE PROCEDURE user_avg(OUT average NUMERIC(5,2))
BEGIN
SELECT AVG(age) INTO average FROM users
END;
执行该存储过程:
CALL user_avg(@a);
SELECT @a;
实例二、
CREATE FUNCTION is_young(uuname VARCHAR(64))
RETURNS BOOLEAN
DETERMINISTIC
BEGIN
DECLARE age_check DECIMAL(5,2);
DECLARE is_young BOOLEAN;
SELECT age INTO age_check FROM users WHERE username =uuname;
IF (age_check<40) THEN
SET is_young =1;
ELSE
SET is_young =0;
END IF;
RETURN(is_young);
END
数据库存在的admin1的时候返回1
数据库不存在的admin11的时候返回0
业务逻辑被“隐藏”在数据库里面,从而避免敏感的数据被透露
能简化应用程序代码
跨平台性
如果您必须一次执行几个语句,一个存储过程比客户端程序逐条地执行语句要快的多,因为不需要任何的来往返数据
CREATE
[DEFINER = {user | CURRENT_USER}]
PROCEDURE<name> (PARAMETER(S)...)
[characteristic(s)...] routine_body
The syntax for creating a function is:
CREATE
[DEFINER = {user | CURRENT_USER }]
FUNCTION sp_name ([parameter])
RETURNS type
[characteristic(s)...] routine_body
CREATE 创建
DEFINER 定义者,表示存储过程或者函数的所有者,如果省略,讲使用默认所有者(当前用户)
RPOCEDURE<name> 表示创建一个名字为name的存储过程
FUNCTION<name> 表示创建一个名称为name的函数
【IN | OUT | INOUT】<parameter name> type
IN 指参数是一个输入变量,它仅向过程提供一个值
OUT 指参数是只是用来存储返回值
INOUT 指参数可用于输入变量和返回值
parameter name(参数名称)是Type的类型名
RETURNS 表示返回数据类型
DETERMINISTIC 确定性
NOT DETERMINISTIC 非确定性
实例一、
CREATE PROCEDURE user_avg(OUT average NUMERIC(5,2))
BEGIN
SELECT AVG(age) INTO average FROM users
END;
执行该存储过程:
CALL user_avg(@a);
SELECT @a;
实例二、
CREATE FUNCTION is_young(uuname VARCHAR(64))
RETURNS BOOLEAN
DETERMINISTIC
BEGIN
DECLARE age_check DECIMAL(5,2);
DECLARE is_young BOOLEAN;
SELECT age INTO age_check FROM users WHERE username =uuname;
IF (age_check<40) THEN
SET is_young =1;
ELSE
SET is_young =0;
END IF;
RETURN(is_young);
END
数据库存在的admin1的时候返回1
数据库不存在的admin11的时候返回0
相关文章推荐
- mysql存储过程基本函数
- MySQL中建立操作函数和存储过程的命令
- mysql5.0.22-log的内核数据库mysql误用mysql5.1.26-rc,引起存储过程与函数无法导入
- mysql存储过程基本语法和函数
- php调用mysql存储过程和函数的方法
- mysql存储过程基本函数
- PHP调用mysql存储过程和函数的方法
- mysql 导入导出数据库以及函数、存储过程
- php调用mysql存储过程和函数的方法
- php调用mysql存储过程和函数的方法
- (zz)mysql存储过程基本函数
- MSSQL 和 Mysql 切割字符串 自定义函数与存储过程
- php调用mysql存储过程和函数的方法
- mysql存储过程基本函数
- mysql存储过程基本函数
- mysql存储过程基本函数
- mysql存储过程基本函数
- mysql存储过程学习笔记--常用函数
- mysql导出数据库及存储过程及函数
- MySQL存储过程常用的函数(字符串类型操作,数学类,日期时间类)