博客
关于我
mysql(创建/修改/删除)自定义函数和存储过程(含实战练习)
阅读量:149 次
发布时间:2019-02-28

本文共 1789 字,大约阅读时间需要 5 分钟。

MySQL自定义函数与存储过程入门

创建学习环境

在开始学习 MySQL 自定义函数和存储过程之前,需要先创建一个功能完善的学习环境。以下是创建学习环境的具体步骤:

1. 创建学习表

create table tb_students_info (    id INT(11) PRIMARY KEY,    name VARCHAR(10),    dept_id INT(11),    age INT(11),    sex VARCHAR(4),    height FLOAT,    login_date DATE);

2. 插入测试数据

insert into tb_students_info values    (1, 'Dany', 1, 25, 'F', 160, '2015-09-10'),    (2, 'Green', 3, 23, 'F', 158, '2016-10-22'),    (3, 'Henry', 2, 23, 'M', 159, '2016-10-23'),    (4, 'Jane', 1, 22, 'F', 156, '2016-10-12'),    (5, 'Jim', 1, 24, 'M', 158, '2016-10-22'),    (6, 'John', 2, 21, 'M', 152, '2016-10-24'),    (7, 'Lily', 6, 22, 'F', 160, '2016-10-25'),    (8, 'Susan', 4, 23, 'F', 166, '2016-10-26'),    (9, 'Green', 3, 22, 'M', 170, '2016-10-27'),    (10, 'Green', 4, 23, 'M', 193, '2016-10-23');

为什么学习自定义函数

自定义函数是一种在数据库中定义的可重用的功能模块,类似于存储过程。它允许开发者将复杂的逻辑编码封装起来,便于复用和管理。

创建与使用自定义函数

1. 创建自定义函数

以下是一个基本的自定义函数模板:

create function StuNameById()returns varchar(45)begin    return (select name from tb_students_info where id = 1);end;

2. 调用自定义函数

select StuNameById();

3. 修改自定义函数

如果需要修改自定义函数,可以使用 ALTER FUNCTION 语句:

alter function StuNameById modify    return varchar(50);

4. 删除自定义函数

drop function if exists StuNameById;

为什么学习存储过程

存储过程是一种将复杂的数据库操作封装起来的技术,它可以显著提高数据库的执行效率和安全性。

存储过程的基础

1. 存储过程的定义

存储过程的基本语法如下:

delimiter // create procedure showStuInfo()begin    select * from tb_students_info;end//

2. 调用存储过程

call showStuInfo();

3. 带参数的存储过程

delimiter // create procedure GetHeightByStu(IN name VARCHAR(30))begin    select height from tb_students_info    where name = name;end//

4. 调用带参数的存储过程

call GetHeightByStu('Susan');

存储过程的优化

1. 修改存储过程

alter procedure GetHeightByStu modify name VARCHAR(40);

2. 删除存储过程

drop procedure if exists GetHeightByStu;

总结

通过本文的学习,你已经掌握了MySQL自定义函数和存储过程的基础知识。这些技术对于提高数据库开发效率和系统性能具有重要意义。

转载地址:http://mmrd.baihongyu.com/

你可能感兴趣的文章
python3 week4
查看>>
Python3 创建数组
查看>>
python3 套接字异常(a byte-like object is required not str)
查看>>
python3 实现用户三次输入错误记录黑名单并对该用户登录锁定-day1
查看>>
python3 文本变图片
查看>>
Python3 查看 com 组件的属性
查看>>
python3 案例分享--发邮件
查看>>
python3 模板库_Python3 标准库概览_Python教程_我爱模板网 - 提供下载各种免费建站资源,免费网站模板,免费网页特效,让你爱上建站!...
查看>>
Python3 求最大/小值及索引值 Numpy
查看>>
python3+django使用celery执行某些任务失败的解决方案
查看>>
Python3+Requests+Unittest实战系列【一】
查看>>
python3+requests+unittest实战系列【一】
查看>>
python3+requests+unittest实战系列【二】
查看>>
Python3+Requests+Unittest实战系列【二】
查看>>
python3----ASCII
查看>>
Python3-selenium自动化测试框架,结合HTMLTestRunner测试报告!
查看>>
Python3-如何自我更新作为服务运行的应用程序
查看>>
Python3.1-网格模拟概念性问题
查看>>
Python3.12 解决conda环境libstdc++版本过低问题
查看>>
python3.2批量查询IP地址区域
查看>>