MySQL存储函数,值得一看

3、删除存储函数

语法结构:

DROP FUNCTION [IF EXISTS] 存储函数名

4、查看存储过程

1. 使用SHOW CREATE语句查看存储过程和函数的创建信息

语法结构:

SHOW CREATE FUNCTION 存储函数名

2. 使用SHOW STATUS语句查看存储函数的状态信息

语法结构:

SHOW FUNCTION STATUS [LIKE ‘pattern’]

这个语句返回子程序的特征,如数据库、名字、类型、创建者及创建和修改日期。

[LIKE 'pattern']匹配存储函数的名称,可以省略。当省略不写时,会列出MySQL数据库中存在的所有存储函数的信息。

举例:

#查询名称以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数据库中存在存储过程和函数名称相同的情况,最好指定ROUTINE_TYPE查询条件来指明查询的是存储过程还是函数。

5、修改存储函数

修改存储函数,不影响存储函数功能,只是修改相关特性。使用ALTER语句实现。

ALTER FUNCTION 存储函数名;

6、对比存储函数和存储过程

| | 关键字 | 调用语法 | 返回值 | 应用场景 |

| — | — | — | — | — |

| 存储过程 | PROCEDURE | CALL 存储过程() | 理解为有0个或多个 | 一般用于更新 |

| 存储函数 | FUNCTION | SELECT 函数() | 只能是一个 | 一般用于查询结果为一个值并返回时 |

此外,存储函数可以放在查询语句中使用,存储过程不行。反之,存储过程的功能更加强大,包括能够执行对表的操作(比如创建表,删除表等)和事务操作,这些功能是存储函数不具备的。

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 ;

注意:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值