数据库(6)--存储过程

简介: 数据库(6)--存储过程

一、学习目标

熟悉存储过程的定义和使用,熟练运用 select  ,update ,insert ,delete 命令完成对学生信息数据库的查询、更新、添加、删除操作。

二、学习内容


学生(学号,年龄,性别,系名)


课程(课号,课名,学分,学时)


选课(学号,课号,成绩)


根据上面基本表的信息定义一个存储过程,完成下面功能:


入口参数:学号


1 显示学生的选课信息


2 如果学生没选课,让他选1号课,插入一条选课记录,成绩为0


3 如果学生所有课都不及格,删掉该学生记录


三、SQL代码


create procedure shiyan7(@sno char(10))
as
if @sno in (select xe.sno from xe)
begin 
declare @w int 
set @w=(select max(grade) from xe where xe.sno=@sno)
if @w<60
begin
print'此学生成绩不合格,予以删除'
delete from xe where xe.sno=@sno
end;
else
begin
print'选课信息:'
select stu.sno,stu.sname,xe.cnum,xe.grade
from stu,xe
where stu.sno=xe.sno and stu.sno=@sno
end;
end;
else
begin
print'此学生未选课'
insert into xe
values(@sno,'01',0)
end;
exec shiyan7 200511101
exec shiyan7 200511104
exec shiyan7 200511811


四、结果截图



6739b90eab3d4012b078e30094dc10f4.png



a49f8ea2e6534f7694169e58e73c8e7d.png



初始数据:


image.png


最终结果数据: 


8331a4977ce7479abb443fcf158f7030.png


五、小结


(1)创建存储过程

CREATE ORREPLACE PROCEDURE 过程名([参数1参数2..…])


AS <过程化 SOL 块>:

存储过程包括过程首部和过程体。在过程首部,“过程名”是数据库服务器合法的对象标识;参数列表[参数1,参数2,…]用名字来标识调用时给出的参数值,必须指定值的数据类型。可以定义输入参数、输出参数或输入/输出参数,默认为输入参数,也可以无参数


(2)执行存储过程

CALL/PERFORM PROCEDURE 过程名([参数1,参数2.…]);


使用CALL或者PERFORM等方式激活存储过程的执行。在过程化SQL中,数据库服务器支持在过程体中调用其他存储过程


(3)修改存储过程


可以使用ALTER PROCEDURE重命名一个存储过程:


ALTER PROCEDURE过程名1 RENAME TO 过程名2;


可以使用ALTER PROCEDURE重新编译一个存储过程:


ALTER PROCEDURE过程名COMPILE;

(4)删除存储过程


DROP PROCEDURE过程名0;


使用存储过程具有以下优点:


(1)由于存储过程不像解释执行的SQL语句那样在提出操作请求时才进行语法分析和优化工作,因而运行效率高,它提供了在服务器端快速执行SQL语句的有效途径。


(2)存储过程降低了客户机和服务器之间的通信量。客户机上的应用程序只要通过网络向服务器发出调用存储过程的名字和参数,就可以让关系数据库管理系统执行其中的多条SQL语句并进行数据处理。只有最终的处理结果才返回客户端。


(3)方便实施企业规则。可以把企业规则的运算程序写成存储过程放入数据库服务器中,由关系数据库管理系统管理,既有利于集中控制,又能够方便地进行维护。当企业规则发生变化时只要修改存储过程即可,无须修改其他应用程序。  


相关文章
|
存储 SQL 关系型数据库
【MySQL 数据库】9、存储过程
【MySQL 数据库】9、存储过程
1280 0
|
存储 SQL 数据库
数据库sql语句-----游标和存储过程
数据库sql语句-----游标和存储过程
293 1
|
存储 SQL 关系型数据库
MySql数据库---存储过程
MySql数据库---存储过程
302 5
|
存储 SQL 安全
【数据库高手的秘密武器:深度解析SQL视图与存储过程的魅力——封装复杂逻辑,实现代码高复用性的终极指南】
【8月更文挑战第31天】本文通过具体代码示例介绍 SQL 视图与存储过程的创建及应用优势。视图作为虚拟表,可简化复杂查询并提升代码可维护性;存储过程则预编译 SQL 语句,支持复杂逻辑与事务处理,增强代码复用性和安全性。通过创建视图 `high_earners` 和存储过程 `get_employee_details` 及 `update_salary` 的实例,展示了二者在实际项目中的强大功能。
316 1
|
存储 SQL JSON
【Azure Logic App】微软云逻辑应用连接到数据库,执行存储过程并转换执行结果为JSON数据
【Azure Logic App】微软云逻辑应用连接到数据库,执行存储过程并转换执行结果为JSON数据
236 0
【Azure Logic App】微软云逻辑应用连接到数据库,执行存储过程并转换执行结果为JSON数据
|
存储 SQL 数据库
触发器的设计、掌握存储过程的基本概念和创建、执行、删除方法。掌握数据库备份的方法和数据库恢复的方法。
这篇文章介绍了数据库中触发器的设计概念,包括创建、修改、删除触发器的方法,并通过实验内容教授如何使用SQL命令创建DML触发器以及如何利用触发器实现数据的完整性和自动化处理。
触发器的设计、掌握存储过程的基本概念和创建、执行、删除方法。掌握数据库备份的方法和数据库恢复的方法。
|
存储 SQL 关系型数据库
MySQL数据库进阶第四篇(视图/存储过程/触发器)
MySQL数据库进阶第四篇(视图/存储过程/触发器)
|
存储 关系型数据库 MySQL
MySQL数据库——存储过程-条件处理程序(通过SQLSTATE指定具体的状态码,通过SQLSTATE的代码简写方式 NOT FOUND)
MySQL数据库——存储过程-条件处理程序(通过SQLSTATE指定具体的状态码,通过SQLSTATE的代码简写方式 NOT FOUND)
261 0
MySQL数据库——存储过程-条件处理程序(通过SQLSTATE指定具体的状态码,通过SQLSTATE的代码简写方式 NOT FOUND)
|
JSON 数据格式 Java
化繁为简的魔法:Struts 2 与 JSON 联手打造超流畅数据交换体验,让应用飞起来!
【8月更文挑战第31天】在现代 Web 开发中,JSON 成为数据交换的主流格式,以其轻量、易读和易解析的特点受到青睐。Struts 2 内置对 JSON 的支持,结合 Jackson 库可便捷实现数据传输。本文通过具体示例展示了如何在 Struts 2 中进行 JSON 数据的序列化与反序列化,并结合 AJAX 技术提升 Web 应用的响应速度和用户体验。
562 0
|
存储 SQL 数据库

热门文章

最新文章