在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
1、创建存储函数语法格式: CREATE FUNCTION 函数名(参数名 参数类型,...) RETURNS 返回值类型 BEGIN 函数体 #函数体中肯定有 RETURN 语句 END 说明: 参数列表: FUNCTION中总是
RETURNS子句只能对FUNCTION做指定,对函数而言这是 函数体也可以用 如果函数体只有一条语句,也 2 、调用存储函数在MySQL中,存储函数的使用方法与MySQL内部函数的使用方法是一样的。换言之,用户自己定义的存储函数与MySQL内部函数是一个性质的。区别在于,存储函数是 SELECT 函数名(实参列表) 3、删除存储函数语法结构: DROP FUNCTION [IF EXISTS] 存储函数名 4、查看存储过程1. 使用SHOW CREATE语句查看存储过程和函数的创建信息 语法结构: SHOW CREATE FUNCTION 存储函数名 2. 使用SHOW STATUS语句查看存储函数的状态信息 语法结构: SHOW FUNCTION STATUS [LIKE 'pattern'] 这个语句返回子程序的特征,如数据库、名字、类型、创建者及创建和修改日期。
举例: #查询名称以select开头的存储函数 mysql> SHOW FUNCTION STATUS LIKE 'SELECT%'; *************************** 1. row *************************** Db: test_db Name: SelectAllData Type: FUNCTION Definer: root@localhost Modified: 2021-10-16 15:55:07 Created: 2021-10-16 15:55:07 Security_type: DEFINER Comment: character_set_client: utf8mb4 collation_connection: utf8mb4_general_ci Database Collation: utf8mb4_general_ci 3. 从information_schema.Routines表中查看存储函数的信息 MySQL中存储函数的信息存储在information_schema数据库下的Routines表中。可以通过查询该表的记录来查询存储函数的信息。 语法结构: SELECT * FROM information_schema.Routines WHERE ROUTINE_NAME='存储函数名' [AND ROUTINE_TYPE = 'FUNCTION ']; 说明: 如果在MySQL数据库中 5、修改存储函数修改存储函数,不影响存储函数功能,只是修改相关特性。使用ALTER语句实现。 ALTER FUNCTION 存储函数名; 6、对比存储函数和存储过程
此外,存储函数可以放在查询语句中使用,存储过程不行。反之,存储过程的功能更加强大,包括能够执行对表的操作(比如创建表,删除表等)和事务操作,这些功能是存储函数不具备的。 7、练习题加强#前提准备 CREATE TABLE employees AS SELECT * FROM atguigudb.`employees`; CREATE TABLE departments AS SELECT * FROM atguigudb.`departments`; #1. 创建函数get_count(),返回公司的员工个数 #有参有返回 SET GLOBAL log_bin_trust_function_creators = 1; DELIMITER $ CREATE FUNCTION get_count() RETURNS INT BEGIN RETURN (SELECT COUNT(*) FROM employees); END $ DELIMITER ; 注意: 自己在创建存储函数中报错“ #2. 创建函数ename_salary(),根据员工id,返回它的工资 #查询表结构来看要返回数据的类型 DESC employees; DELIMITER $ CREATE FUNCTION ename_salary(id INT) RETURNS DOUBLE(8,2) BEGIN RETURN (SELECT salary FROM employees WHERE employee_id = id); END $ DELIMITER ; #查询结果 SELECT ename_salary(100);
到此这篇关于MySQL之存储函数详细介绍的文章就介绍到这了,更多相关MySQL存储函数内容请搜索极客世界以前的文章或继续浏览下面的相关文章希望大家以后多多支持极客世界! |
请发表评论