mysql存储过程(一)

本文涉及的产品
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
简介: mysql存储过程(一)

1、存储过程

1)“存储过程和函数”:类似于java中的方法,python中的函数。

2)“使用存储过程的好处”:

 ① 提高代码的重用性;

 ② 简化操作;

 ③ 减少了编译次数,并且减少了和数据库服务器的连接次数,提高了效率。

  注意:每执行一句sql语句,就会连接mysql服务器一次。

3)“存储过程的含义”:一组预先编译好的sQL语句的集合。


2、存储过程使用的相关知识点

1)创建语法

create procedure 存储过程名(参数列表)
begin
     存储过程体(一组合法有效的sql语句)
end
-- 如果【存储过程体】仅仅只有一句话,begin和end可以省略,但是不建议省略。


参数列表包含3部分内容:参数模式 参数名 参数类型,例如:in stuname varchar(20)


2)参数模式分类

in:该参数可以作为输入,也就是该参数,需要调用方法传入值。

out:该参数可以作为输出,也就是该参数,可以作为返回值。

inout:该参数既可以作为输入又可以作为输出,也就是该参数既需要传入值,又可以返回值。

3)delimiter定义存储过程的结束标记

 在mysql语句中,由于每一个语句后面必须要;结尾,而存储过程也需要一个符号结尾,为了防止混淆,我们需要在创建存储过程之前,先使用delimiter定义一个存储过程的结束标记。同时,当我们使用delimiter定义了新的结束标记后,只要是没有关闭当前窗口,之后写的sql语句,就都需要用这个新的结束标记,作为sql语句的结束标记。


-- 语法:
delimiter 结束标记
-- 表示以$符号作为存储过程的结束符号。
delimiter $


4)存储过程的调用

call 存储过程名(实参列表);


3、空参的存储过程

注意:“存储过程的整个执行过程,最好在CMD窗口中执行”

-- 创建一个存储过程
delimiter $
create procedure myp()
begin
      insert into admin(username,`password`)
      values ("tom","1111"),("jerry","2222"),
      ("jalen","3333"),("rose","4444"),("tonny","5555");
end $
-- 调用存储过程
call myp()$
-- 查看结果。
select * from admin$


效果如下:

image.png


4、带in模式的存储过程

image.png


1)案例一:创建存储过程,实现根据部门编号,查询对应的部门名称。

代码如下:


-- 创建一个存储过程
delimiter $
create procedure myp2(in num int)
begin
    select e.ename,d.dname
    from emp e 
    left join dept d on e.deptno=d.deptno
    where e.deptno=num;
end $
-- 调用存储过程
call myp2(10)$


效果如下:


image.png


2)案例二:创建一个存储过程实现,用户是否登陆成功。

image.png

代码如下:


-- 创建一个存储过程
delimiter $
create procedure myp3(in username varchar(10),password varchar(10))
begin 
    declare result int;
    select count(*) into result
    from admin ad
    where ad.username=username
    and ad.password=password;
    select if(count(*) > 0,"登陆成功","登陆失败") 登陆状态;
end $
-- 调用存储过程
call myp3('john','8888');




image.pngimage.pngimage.pngimage.pngimage.pngimage.pngimage.pngimage.pngimage.pngimage.pngimage.pngimage.pngimage.pngimage.pngimage.pngimage.pngimage.png

相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
22天前
|
存储 SQL 关系型数据库
轻松入门MySQL:加速进销存!利用MySQL存储过程轻松优化每日销售统计(15)
轻松入门MySQL:加速进销存!利用MySQL存储过程轻松优化每日销售统计(15)
|
1月前
|
存储 关系型数据库 MySQL
Mysql基础第二十六天,使用存储过程
Mysql基础第二十六天,使用存储过程
28 0
Mysql基础第二十六天,使用存储过程
|
1月前
|
存储 SQL 关系型数据库
【MySQL 数据库】9、存储过程
【MySQL 数据库】9、存储过程
205 0
|
16天前
|
存储 SQL 关系型数据库
mysql存储过程示例
mysql存储过程示例
11 0
|
2月前
|
存储 SQL 关系型数据库
[MySQL]存储过程
[MySQL]存储过程
76 0
[MySQL]存储过程
|
2月前
|
存储 关系型数据库 MySQL
MySQL 中的存储过程-3
MySQL 中的存储过程
20 0
|
2月前
|
存储 SQL 关系型数据库
MySQL 中的存储过程-2
MySQL 中的存储过程
18 0
|
2天前
|
SQL 存储 关系型数据库
MySQL Cluster集群安装及使用
MySQL Cluster集群安装及使用
|
17天前
|
关系型数据库 MySQL 数据库
mysql卸载、下载、安装(window版本)
mysql卸载、下载、安装(window版本)
|
6天前
|
关系型数据库 MySQL 数据库
《MySQL 简易速速上手小册》第1章:MySQL 基础和安装(2024 最新版)
《MySQL 简易速速上手小册》第1章:MySQL 基础和安装(2024 最新版)
28 4