資料庫實驗八 資料庫程式設計
實驗八 資料庫程式設計
一、實驗目的
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))
begin
declare p100, p90,p80,p70,p60,pbujige,grade int default 0;
declare done int default false;
declare cur cursor for
select grade
from sc
where cno=( select cno
from course
where cname=course_name);
declare continue handler for not found set done=TRUE;
open cur;
read_loop: loop
fetch cur into grade;
if done then
leave read_loop;
end if;
if(grade=100)then
SET p100= p100+1;
elseif(grade>=90)then
SET p90= p90+1;
elseif(grade>=80)then
SET p80=p80+1;
elseif(grade>=70) then
SET p70=p70+1;
elseif(grade>=60) then
set 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 儲存過程名/函式名刪除儲存過程/函式
相關文章
- 資料庫實驗五:資料庫程式設計資料庫程式設計
- 【資料庫設計】資料庫的設計資料庫
- 八、資料庫的歸約,三大正規化(規範資料庫設計)資料庫
- Python SQLite資料庫程式設計PythonSQLite資料庫程式設計
- 42. 資料庫程式設計資料庫程式設計
- 資料庫實驗二資料庫
- 資料庫實驗五 資料庫的安全性資料庫
- java 資料庫程式設計(一)JDBC連線Sql Server資料庫Java資料庫程式設計JDBCSQLServer
- Go Web 程式設計之 資料庫GoWeb程式設計資料庫
- 抽獎小程式資料庫設計資料庫
- 資料庫八股資料庫
- PowerDesigner設計資料庫資料庫
- 2024.11.5(資料庫設計)資料庫
- KMC資料庫設計資料庫
- Redis 設計與實現:資料庫Redis資料庫
- 介面平臺實用功能設計分享——資料庫校驗資料庫
- Go Web 程式設計--應用資料庫GoWeb程式設計資料庫
- 資料庫8530_實驗(1)資料庫
- 寫資料庫實驗報告資料庫
- IM 的資料庫設計資料庫
- 資料庫設計總結資料庫
- 資料庫設計基礎資料庫
- Java資料庫框架設計Java資料庫框架
- 資料庫設計之思考資料庫
- 暑期自學 Day 12 | 資料庫 (五)- 多表,資料庫設計資料庫
- 雲資料建模:為資料倉儲設計資料庫資料庫
- Python資料庫程式設計全指南SQLite和MySQL實踐Python資料庫程式設計SQLiteMySql
- Java程式設計基礎31——MySql資料庫Java程式設計MySql資料庫
- 實時資料庫與時序資料庫資料庫
- dg_閃回資料庫實驗資料庫
- MySQL手動資料校驗+雲資料庫資料校驗MySql資料庫
- 20分鐘資料庫索引設計實戰資料庫索引
- 資料庫設計的十個最佳實踐資料庫
- MySQL資料庫設計規範MySql資料庫
- MySQL 資料庫設計總結MySql資料庫
- openGauss 設定資料庫審計資料庫
- 資料庫系統設計概述資料庫
- 資料庫設計技巧14則資料庫