博客
关于我
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/

你可能感兴趣的文章
poj2546
查看>>
POJ2728 Desert King
查看>>
POJ2794 Double Patience[离散概率 状压DP]
查看>>
poj2828(线段树查找序列第k小的值)
查看>>
POJ2891:Strange Way to Express Integers——题解
查看>>
poj3045 Cow Acrobats(二分最大化最小值)
查看>>
poj3061 Subsequence(尺取法)
查看>>
poj3074 DLX精确覆盖
查看>>
poj3252(组合数)
查看>>
Qt笔记——QToolBox开发简易QQ聊天界面
查看>>
poj3307
查看>>
Qt笔记——QString与隐式共享、MVC架构
查看>>
Qt笔记——QSemaphore处理生产者/消费者模式
查看>>
Qt笔记——QMutex&QWaitCondition处理生产者消费者模式
查看>>
Qt笔记——QLable+QPixmap图片缩放踩坑
查看>>
Qt笔记——foreach与forever
查看>>
QT程序怎么挪到Linux下,linux+Qt程序如何打包发布
查看>>
Qt知识:视图框架QGraphicsWidget详解
查看>>
SpringBoot中项目启动及定时任务缓存数据库常用数据至内存变量并转换后高频调用
查看>>
Qt知识: 画刷风格
查看>>