数据库实验八 数据库编程
实验八 数据库编程
一、实验目的
1.掌握数据库PL/SQL编程语言,以及数据库存储过程的设计和使用方法。
2.掌握数据库自定义函数的设计和使用方法。
3.掌握PL/SQL游标的设计、定义和使用方法。
二、实验内容和要求
1.存储过程定义,存储过程运行,存储过程更名,存储过程删除,存储过程的参数传递。,
2.自定义函数定义,自定义函数运行,自定义函数更名,自定义函数删除,自定义函数的参数传递。
3.游标定义、游标使用。
按要求写出相应的SQL语句。
三、实验过程
(1)对学生-选课(s_t)数据库,编写存储过程grade_info,统计某门课程的成绩分布情况,即分别统计出100分,90—99分,80—89分,70—79分,60—69分,小于60分的学生人数。存储过程grade_info以课程名作为输入参数。
delimiter //
create procedure grade_info(in course_name char(40))
begindeclare p100, p90,p80,p70,p60,pbujige,grade int default 0;declare done int default false;declare cur cursor forselect grade from sc where cno=( select cnofrom coursewhere cname=course_name);declare continue handler for not found set done=TRUE;open cur;read_loop: loopfetch cur into grade;if done thenleave read_loop;end if;if(grade=100)thenSET p100= p100+1;elseif(grade>=90)thenSET p90= p90+1;elseif(grade>=80)thenSET p80=p80+1;elseif(grade>=70) thenSET p70=p70+1;elseif(grade>=60) thenset p60=p60+1;else set pbujige=pbujige+1;end if;end loop;close cur;
end;//
delimiter ;
(2)编写函数course_avg,统计任意一门课程的平均分。函数course_avg以课程名为输入参数,平均分为返回值。
delimiter //
create function course_avg(course_name char(40))
returns double
deterministic
begin
declare c_avg double;
select AVG(grade)
into c_avg
from sc
where sno in (select sno from course where cname=course_name);
return c_avg;
end;//
delimiter ;
(3)调用grade_info输出“数据库”课程的成绩分布情况。
call grade_info('数据库');
(4)调用course_avg输出“操作系统”课程的平均分。
select course_avg('操作系统');
(5)删除grade_info。
drop procedure grade_info;
(6)删除course_avg。
drop function course_avg;
四、实验总结
在做第一小题时,按照课本上的变量赋值语句写的,一直报错检查了好久,最后一句句的定位错误发现赋值语句有问题,网上查找关于mysql变量赋值的资料,发现mysql中的变量赋值不能用变量名:=表达式,在mysql中会报错,在mysql中用Set 变量名=表达式。
使用call或select 加存储过程/函数名都可用来调用存储过程/函数
使用drop procedur/function 存储过程名/函数名删除存储过程/函数
数据库实验八 数据库编程相关推荐
- 数据库实验:数据库和表、查询、视图与安全性、存储过程及游标、触发器、综合实验-水果商店进阶
数据库实验:数据库和表.查询.视图与安全性.存储过程及游标.触发器.综合实验-水果商店进阶 实验一.数据库和表 源码1: 源码2: 小结 实验二.查询 源码 小结 实验三.视图.安全性 源码: 小结 ...
- Oracle 11g 数据库 实验7 数据库安全管理
Oracle 11g 数据库实验7 数据库安全管理 1.实验目的 (1)掌握Oracle数据库安全控制的实现. (2)掌握Oracle数据库用户管理. (3)掌握Oracle数据库权限管理. (4)掌 ...
- 数据库实验:数据库高级查询
数据库实验:数据库高级查询 实验过程 (1) IN 嵌套查询 (2) 单层EXISTS 嵌套查询 (3) FROM 子句中的嵌套查询 (4) 集合查询(交) (5) 集合查询(并) (6) 集合查询( ...
- 数据库 实验八 SQL 的服务器端编程
目录 实验八 SQL 的服务器端编程 一.实验目的 二.实验准备及任务 三.实验内容及记录 (1)第1题 (2)第2题 (3)第3题 (4)第4题 (5)第5题 (6)第6题 实验八 SQL 的服务器 ...
- 数据库实验5 数据库设计实验
前言:不知道啥原因,最后设计出来少了一个表,无语 实验5 数据库设计实验 1.实验目的 掌握数据库设计基本方法及数据库设计工具. 2.实验内容和要求 掌握数据库设计基本步骤,包括数据库概念结构设计.逻 ...
- 数据库实验三 数据库系统设计综合实验实验报告
广州大学学生实验报告 开课学院及实验室:计算机科学与网络工程学院 2023年5月24日 学院 计算机学院 年级.专业.班级 计科213 姓名 edw-Snow 学号 321061000** 课程实 ...
- 数据库实验8 数据库安全性(用户与权限管理)实验
实验8 数据库安全性(用户与权限管理)实验 8.1实验目的及要求 加深对数据库安全性的理解 8.2实验内容 数据库用户与权限管理 8.3实验步骤 8.3.1创建新用户 1.创建新用户: Mysql&g ...
- 数据库实验7 数据库视图的定义与使用
实验7 数据库视图的定义与使用 7.1实验目的及要求 掌握视图的用法,加深对视图作用的理解 7.2实验内容 1.创建.修改和删除视图 2.利用视图进行查询 7.3实验步骤 7.3.1视图的创建(查看视 ...
- 数据库实验6 数据库的分组查询和统计查询
实验6 数据库的分组查询和统计查询 6.1实验目的及要求 熟练掌握数据查询中的分组.统计.计算和集合的操作方法 6.2实验内容 使用聚集函数查询.分组计算查询.集合查询 6.3实验步骤 6.3.1使用 ...
- 数据库实验5 数据库的嵌套查询实验
实验5 数据库的嵌套查询实验 5.1实验目的及要求 加深对嵌套查询语句的理解 5.2实验内容 使用IN.比较符.ANY或ALL和EXIST操作符进行嵌套查询操作 5.3实验步骤 5.3.1使用带IN谓 ...
最新文章
- Linux screen如何加载用户配置
- ASP.NET自定义错误页面(转)
- “死”在拥挤赛道上的快递员工
- 动态存储器是什么意思
- 学计算机辅修什么专业好,女生计算机辅修什么专业好
- mysql order by 语句_Mysql优化order by语句的方法详解
- 【CSAPP笔记】14. 异常控制流和进程
- 我的世界服务器怎么修改标语,我的世界怎么用资源包修改闪烁标语
- 路由器PPPoE拨号密码(ADSL密码)找出方法 ZT
- 天天聚财网———2014年最具潜力的P2P借贷平台
- w10查看端口_Windows 10系统如何查看已打开的端口
- php 公众号调起小程序,微信公众号怎么跳转到小程序 微信公众号跳转到小程序方法介绍...
- 计算机考研专业课——c语言
- 关于Latex学习网站推荐
- 姿态估计之2D人体姿态估计 - CPN(Cascaded Pyramid Network for Multi-Person Pose Estimation)
- 支持win7的无损分区大小调整软件
- 基于Python Django框架后端的微信小程序开发
- android优化启动时间
- 马斯洛人类需求五层次理论
- ROS发布静态tf变换