数据库第十二次作业 存储过程(PL/SQL语句集)的应用

简介: 数据库第十二次作业 存储过程(PL/SQL语句集)的应用

       SQL语句没有流程控制语句,无法实现复杂的应用。PL/SQL语言时将结构化查询与数据库过程控制结合为一体的强大语言。PL/SQL不但支持更多的数据类型,拥有变量声明、赋值语句,而且有选择、循环等流程控制语句。存储过程是一组为了完成特定功能的PL/SQL语句集,经编译后存储在数据库中,用户可以重复该存储过程,这样可以降低数据开发人员的工作量。

一、创建一个stu表

mysql> create table stu(
    -> id int (10) primary key not null unique,
    -> name varchar(50) not null,
    -> class varchar(50) not null);

5b840608582a45d1bc7417f8d6cabe71.png

1e7f920ca26e4e249247e9aa22a15d1b.png

二、给stu表添加数据并查看stu表结构

mysql> insert into stu value(1,"Lucy","class1"),
    -> (2,"Tom","class1"),
    -> (3,"Rose","class2");

0f9824c4d8c1456f84818d356051bcdc.png

三、查看stu表数据

82bf1d0ae5374563a41b090680463e87.png

四、创建存储过程addcount能够获取表stu中的记录数和id的和,使用到了变量的声明、光标、流程控制等知识点。

mysql> create procedure addcount(out count int)
    -> begin
    -> declare itmp int;
    -> declare cur_id cursor for select id from stu;
    -> declare exit handler for not found close cur_id;
    -> select count(*) into count from stu;
    -> set @sum=0;
    -> open cur_id;
    -> repeat
    -> fetch cur_id into itmp;
    -> if itmp<10
    -> then set @sum=@sum+itmp;
    -> end if;
    -> until 0 end repeat;
    -> close cur_id;
    -> end;/
Query OK, 0 rows affected (0.02 sec)

9280affbfdd343ba85e4a7f209c34695.png

五、调用存储过程并查看数据

d0e73ad50de2467da46d9e492d73eb77.png

从调用存储过程的结果可以看出,stu表中共有三条数据,id之和为6。这个存储过程创建了一个cur_id的光标,使用这个光标来获取每条记录的id,使用repeat循环语句来实现所有id号相加。        

目录
相关文章
|
6月前
|
存储 人工智能 NoSQL
AI大模型应用实践 八:如何通过RAG数据库实现大模型的私有化定制与优化
RAG技术通过融合外部知识库与大模型,实现知识动态更新与私有化定制,解决大模型知识固化、幻觉及数据安全难题。本文详解RAG原理、数据库选型(向量库、图库、知识图谱、混合架构)及应用场景,助力企业高效构建安全、可解释的智能系统。
|
9月前
|
存储 关系型数据库 数据库
附部署代码|云数据库RDS 全托管 Supabase服务:小白轻松搞定开发AI应用
本文通过一个 Agentic RAG 应用的完整构建流程,展示了如何借助 RDS Supabase 快速搭建具备知识处理与智能决策能力的 AI 应用,展示从数据准备到应用部署的全流程,相较于传统开发模式效率大幅提升。
附部署代码|云数据库RDS 全托管 Supabase服务:小白轻松搞定开发AI应用
|
7月前
|
存储 弹性计算 Cloud Native
云原生数据库的演进与应用实践
随着企业业务扩展,传统数据库难以应对高并发与弹性需求。云原生数据库应运而生,具备计算存储分离、弹性伸缩、高可用等核心特性,广泛应用于电商、金融、物联网等场景。阿里云PolarDB、Lindorm等产品已形成完善生态,助力企业高效处理数据。未来,AI驱动、Serverless与多云兼容将推动其进一步发展。
364 8
|
7月前
|
存储 弹性计算 安全
现有数据库系统中应用加密技术的不同之处
本文介绍了数据库加密技术的种类及其在不同应用场景下的安全防护能力,包括云盘加密、透明数据加密(TDE)和选择列加密。分析了数据库面临的安全威胁,如管理员攻击、网络监听、绕过数据库访问等,并通过能力矩阵对比了各类加密技术的安全防护范围、加密粒度、业务影响及性能损耗。帮助用户根据安全需求、业务改造成本和性能要求,选择合适的加密方案,保障数据存储与传输安全。
|
9月前
|
安全 Java Nacos
0代码改动实现Spring应用数据库帐密自动轮转
Nacos作为国内被广泛使用的配置中心,已经成为应用侧的基础设施产品,近年来安全问题被更多关注,这是中国国内软件行业逐渐迈向成熟的标志,也是必经之路,Nacos提供配置加密存储-运行时轮转的核心安全能力,将在应用安全领域承担更多职责。
|
8月前
|
存储 人工智能 数据库
视图是什么?为什么要用视图呢?数据库视图:定义、特点与应用
本文三桥君深入探讨数据库视图的概念与应用,从定义特点到实际价值全面解析。视图作为虚拟表具备动态更新、简化查询、数据安全等优势,能实现多角度数据展示并保持数据库重构的灵活性。产品专家三桥君还分析了视图与基表关系、创建维护要点及性能影响,强调视图是提升数据库管理效率的重要工具。三桥君通过系统讲解,帮助读者掌握这一常被忽视却功能强大的数据库特性。
2203 0
|
存储 Java 关系型数据库
java调用mysql存储过程
在 Java 中调用 MySQL 存储过程主要借助 JDBC(Java Database Connectivity)。其核心原理是通过 JDBC 与 MySQL 建立连接,调用存储过程并处理结果。具体步骤包括:加载 JDBC 驱动、建立数据库连接、创建 CallableStatement 对象、设置存储过程参数并执行调用。此过程实现了 Java 程序与 MySQL 数据库的高效交互。
|
存储 关系型数据库 MySQL
【YashanDB知识库】MySQL返回结果集的存储过程的改写方法
本文介绍了将MySQL存储过程改写至YashanDB的解决方案。由于MySQL存储过程可直接返回结果集,而YashanDB需通过返回SYS_REF_CURSOR的函数实现类似功能,因此需要对代码进行转换。示例中展示了如何将MySQL存储过程`proc1`改写为YashanDB函数,并调整JDBC应用代码以适配REF_CURSOR输出参数,从而正确获取查询结果。此方法确保了跨数据库场景下的兼容性与功能性。
|
存储 SQL NoSQL
下一篇
开通oss服务