数据库教程:项目6 创建与使用存储过程

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
云数据库 RDS MySQL,高可用系列 2核4GB
简介: 数据库项目6教程,包含相关语法和实例,能够建立起初步的认识和了解

 目录

一、课堂内容

1.运算符

2.流程控制

3.创建存储过程

4.调用存储过程

5.删除存储过程

6.修改SQL结束符

7.创建游标

8.打开游标

9.读取游标

10.关闭游标

11.开启事务

12.结束事物

13.设置事务隔离级别

14.事务隔离级别

二、项目6总结

前言

【任务6.1】创建简单存储过程

1.PL\SQL的变量

(1) 用户变量:

(2) 系统变量:

(3) 局部变量

2.PL\SQL的运算符及表达式

(1) 运算符的优先级

4.MySQL的存储过程

定义

优点

【任务6.2】创建带输入参数的存储过程

【任务6.3】创建带输入和输出参数的存储过程

【任务6.4】创建应用游标的存储过程

【任务6.5】创建与使用事务

1.事务的ACID特性

2.事务控制语句

 


一、课堂内容

1.运算符

算数运算符 + - * / %

赋值运算符 =

比较运算符> < >= <= == !=

逻辑运算符与& 或| 异或^ 取反~ >>右移 <<左移

变量 数据类型 变量名 = 值;

用户变量:SET @变量名 = 值

系统变量:@@version  @@date

局部变量:declare  变量名 数据类型(默认值);

2.流程控制

if 条件 then

语句1

else

语句2

end  if;

//

case  表达式

when  值1  then  sql语句1

when  值2  then  sql语句2

……………………………………………….

when  值n  then  sql语句n

else sql语句n+1

end case;

//

while 条件 do

sql语句

end while;

//

1

标签

loop

2

if 条件 then

  leave 标签;

end if

3

end loop;

4

//

1

repeat

2

until 条件

end repeat

3

//

3.创建存储过程

create procedure 存储过程名()

begin

 ………….

 …………..

end;

create procedure proc601()

   -> begin

   ->  declare i int default 1;

   ->  declare sum int default 0;

   ->  while i<=100 do

   ->    set sum = sum+i;

   ->   set i=i+1;

   ->  end while;

   ->  select sum;

-> end;//

image.gif编辑

create procedure proc602()

   -> begin

   ->    declare dept varchar(20);

   ->    declare num int;

   ->    set dept='销售部';

   ->    select count(*) into num from teacher where prof=dept;

   ->    select dept,num;

-> end//

image.gif编辑

4.调用存储过程

call 存储过程名();

image.gif编辑

5.删除存储过程

drop procedure 存储过程名;

image.gif编辑

6.修改SQL结束符

delimiter

image.gif编辑

7.创建游标

declare 游标名 cursor for 查询语句;

8.打开游标

open 游标名;

9.读取游标

fetch 游标名 into 变量;

10.关闭游标

close 游标名;

11.开启事务

start transaction;

12.结束事物

提交                commit;

取消                rollback;

13.设置事务隔离级别

set session transaction isolation level 隔离级别;

14.事务隔离级别

read uncommitted           读未提交(脏读)

read committed               读提交(不可重复读)

repeatable read               可重复读(幻读)

serializable                        可串行化

二、项目6总结

前言

存储过程是一组为了完成特定功能的PL\SQL 语句集,经编译后存储在数据库中,用户可以重复使用该存储过程,这样可以降低数据库开发人员的工作量。

游标是处理数据的一种方法,为了查看或处理结果集中的数据,游标提供了在结果集中一次一行浏览数据的能力。

事务是一个操作序列,这些操作要么都执行,要么都不执行,是一个不可分割的工作单元。

【任务6.1】创建简单存储过程

1.PL\SQL的变量

(1) 用户变量:

用户可以在PL\SQL中使用自己定义的变量,这样的变量称为用户变量。

(2) 系统变量:

MySQL可以访问许多系统变量和连接变量,当服务器运行时许多变量可以动态改变。

(3) 局部变量

在语句块(BEGIN到End之间)中定义的变量为局部变量。

2.PL\SQL的运算符及表达式

(1) 运算符的优先级

MySQL运算符优先级

优先级 运算符
最高
2 -(符号),~(按位取反)
3 ^(按位异或)
4 *、/(DIV)、%(MOD)
5 +、-
6 >>、<<
7 &
8 |
9

=(比较运算)、<=>、<、<=、>、>=、!=、<>、

IN、IS、NULL、LIKE、REGEXP

10 BETWEEN AND、CASE、WHEN、THEN、ELSE
11 NOT
12 &&、AND
13 ||、OR、XOR
最低 : =

4.MySQL的存储过程

定义

(1)存储过程是一组为了完成特定功能的SQL 语句块,经编译后存储在数据库中,用户通过指定存储过程的名称并给定参数(如果该存储过程带有参数)来调用并执行, 存储过程可以重复使用,这样可以降低数据库开发人员的工作量。

优点

    1. 执行效率高
    2. 灵活
    3. 数据独立
    4. 安全
    5. 降低网络流量

    【任务6.2】创建带输入参数的存储过程

    【任务6.3】创建带输入和输出参数的存储过程

    【任务6.4】创建应用游标的存储过程

    【任务6.5】创建与使用事务

    1.事务的ACID特性

    (1)原子性

    (2)一致性

    (3)隔离性

    (4)持久性

    2.事务控制语句

    相关实践学习
    如何在云端创建MySQL数据库
    开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
    全面了解阿里云能为你做什么
    阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
    相关文章
    |
    2月前
    |
    存储 关系型数据库 MySQL
    一个项目用5款数据库?MySQL、PostgreSQL、ClickHouse、MongoDB区别,适用场景
    一个项目用5款数据库?MySQL、PostgreSQL、ClickHouse、MongoDB——特点、性能、扩展性、安全性、适用场景比较
    |
    20天前
    |
    存储 机器学习/深度学习 监控
    南大通用GBase 8s数据库onbar基础使用教程
    数据备份与恢复是确保数据安全和业务连续性的关键。onbar作为GBase 8s数据库的备份工具,需配合存储管理器使用,通过配置BAR_BSALIB_PATH等参数,实现数据的备份与恢复。本文详细介绍了onbar的配置、备份、恢复及监控流程,帮助数据库管理员构建高效的数据保护方案。
    |
    2月前
    |
    SQL JavaScript 关系型数据库
    node博客小项目:接口开发、连接mysql数据库
    【10月更文挑战第14天】node博客小项目:接口开发、连接mysql数据库
    |
    2月前
    |
    SQL 关系型数据库 MySQL
    Go语言项目高效对接SQL数据库:实践技巧与方法
    在Go语言项目中,与SQL数据库进行对接是一项基础且重要的任务
    87 11
    |
    2月前
    |
    存储 SQL 关系型数据库
    【入门级教程】MySQL:从零开始的数据库之旅
    本教程面向零基础用户,采用通俗易懂的语言和丰富的示例,帮助你快速掌握MySQL的基础知识和操作技巧。内容涵盖SQL语言基础(SELECT、INSERT、UPDATE、DELETE等常用语句)、使用索引提高查询效率、存储过程等。适合学生、开发者及数据库爱好者。
    59 0
    【入门级教程】MySQL:从零开始的数据库之旅
    |
    2月前
    |
    tengine 关系型数据库 MySQL
    Tengine、Nginx安装MySQL数据库命令教程
    本指南详细介绍了在Linux系统上安装与配置MySQL数据库的步骤。首先通过下载并安装MySQL社区版本,接着启动MySQL服务,使用`systemctl start mysqld.service`命令。若启动失败,可尝试使用`sudo /etc/init.d/mysqld start`。利用`systemctl status mysqld.service`检查MySQL的服务状态,确保其处于运行中。通过日志文件获取初始密码,使用该密码登录数据库,并按要求更改初始密码以增强安全性。随后创建一个名为`tengine`的数据库,最后验证数据库创建是否成功以及完成整个设置流程。
    |
    3月前
    |
    JavaScript Java 关系型数据库
    毕设项目&课程设计&毕设项目:基于springboot+vue实现的在线考试系统(含教程&源码&数据库数据)
    本文介绍了一个基于Spring Boot和Vue.js实现的在线考试系统。随着在线教育的发展,在线考试系统的重要性日益凸显。该系统不仅能提高教学效率,减轻教师负担,还为学生提供了灵活便捷的考试方式。技术栈包括Spring Boot、Vue.js、Element-UI等,支持多种角色登录,具备考试管理、题库管理、成绩查询等功能。系统采用前后端分离架构,具备高性能和扩展性,未来可进一步优化并引入AI技术提升智能化水平。
    毕设项目&课程设计&毕设项目:基于springboot+vue实现的在线考试系统(含教程&源码&数据库数据)
    |
    2月前
    |
    存储 SQL 关系型数据库
    MySql数据库---存储过程
    MySql数据库---存储过程
    41 5
    |
    2月前
    |
    Java 关系型数据库 数据库连接
    SpringBoot项目使用yml文件链接数据库异常
    【10月更文挑战第3天】Spring Boot项目中数据库连接问题可能源于配置错误或依赖缺失。YAML配置文件的格式不正确,如缩进错误,会导致解析失败;而数据库驱动不匹配、连接字符串或认证信息错误同样引发连接异常。解决方法包括检查并修正YAML格式,确认配置属性无误,以及添加正确的数据库驱动依赖。利用日志记录和异常信息分析可辅助问题排查。
    298 10
    |
    2月前
    |
    Java 关系型数据库 MySQL
    SpringBoot项目使用yml文件链接数据库异常
    【10月更文挑战第4天】本文分析了Spring Boot应用在连接数据库时可能遇到的问题及其解决方案。主要从四个方面探讨:配置文件格式错误、依赖缺失或版本不兼容、数据库服务问题、配置属性未正确注入。针对这些问题,提供了详细的检查方法和调试技巧,如检查YAML格式、验证依赖版本、确认数据库服务状态及用户权限,并通过日志和断点调试定位问题。
    147 6