下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、一、統(tǒng)計(jì)“數(shù)據(jù)庫原理”的成績(jī)分布情況,即按照各分?jǐn)?shù)段統(tǒng)計(jì)人數(shù)1、創(chuàng)建需要的表create table rank(分?jǐn)?shù)段 char(20), 人數(shù) int);2、創(chuàng)建存儲(chǔ)過程CREATE PROCEDURE statistic_mark AS DECLARE less60 INT, b60a70 INT , b70a80 INT , b80a90 INT , more90 INT , curcno CHAR(4); /*設(shè)字符型變量curcno 存放輸入的課程名稱參數(shù)*/BEGIN SELECT curcno=cno /*根據(jù)課程名稱在Course 表中查詢查詢?cè)撜n程號(hào)*/ FROM Cours
2、e WHERE cname = '數(shù)據(jù)庫' SELECT less60=count(*) /*查詢分?jǐn)?shù)低于60 分的學(xué)生人數(shù)*/ FROM sc WHERE cno = curcno AND grade < 60; SELECT b60a70=count(*) /*查詢分?jǐn)?shù)在60 到70 之間的學(xué)生人數(shù)*/ FROM sc WHERE cno = curcno AND grade >= 60 AND grade < 70; SELECT b70a80=count(*) /*查詢分?jǐn)?shù)在70 到80 之間的學(xué)生人數(shù)*/ FROM sc WHERE cno = cu
3、rcno AND grade >= 70 AND grade < 80; SELECT b80a90=count(*) /*查詢分?jǐn)?shù)在 80 到90 之間的學(xué)生人數(shù)*/ FROM sc WHERE cno = curcno AND grade >= 80 AND grade < 90; SELECT more90=count(*) /*查詢分?jǐn)?shù)高于90 的學(xué)生人數(shù)*/ FROM sc WHERE cno = curcno AND grade >= 90; /* 向表Rank 中插入五條記錄,顯示成績(jī)分布情況*/ INSERT INTO Rank VALUES(
4、39;0,60)',less60); INSERT INTO Rank VALUES('60,70)',b60a70); INSERT INTO Rank VALUES('70,80)',b70a80); INSERT INTO Rank VALUES('80,90)',b80a90); INSERT INTO Rank VALUES('90,100',more90); END; 3、執(zhí)行存儲(chǔ)過程exec statistic_mark;4、查詢結(jié)果select * from rank;二、統(tǒng)計(jì)任意一門課的平均成績(jī)1、創(chuàng)建需
5、要的表CREATE TABLE Avggrade( cname CHAR(50), avgg NUMERIC(10, 6); 2、創(chuàng)建存儲(chǔ)過程CREATE PROCEDURE collect_avggrade AS DECLARE /*聲明變量*/ curname CHAR(50), curcno CHAR(4), curavgg NUMERIC(10, 6); declare mycursor CURSOR FOR /*聲明游標(biāo)mycursor 查詢課程號(hào)和名稱*/ SELECT cno, cname FROM course; BEGIN OPEN mycursor; /*打開游標(biāo)*/ FE
6、TCH mycursor INTO curcno, curname; while (fetch_status=0) begin SELECT curavgg=AVG(grade) FROM SC /*求該課程的平均值送變量 */ WHERE cno = curcno; INSERT INTO Avggrade VALUES(curname, curavgg); /* 向Avggrade 表中插入記錄,顯示課程名稱和平均成績(jī)*/ FETCH mycursor INTO curcno, curname; end CLOSE mycursor; /*關(guān)閉游標(biāo)*/ END;3、執(zhí)行存儲(chǔ)過程 exec
7、collect_avggrade;4、查詢結(jié)果SELECT * FROM Avggrade;三、將學(xué)生選課成績(jī)從百分制改為等級(jí)制(即A、B、C、D、E)1、在SC表中加入新列newgradeALTER TABLE SC ADD newgrade CHAR(1); -由于之前的成績(jī)值為整數(shù)型,而修改后的結(jié)果為字符型,因此在SC中先增加一列newgrade,存放換算后的成績(jī) 2、創(chuàng)建存儲(chǔ)過程法(1)、用IF.ELSE.語句CREATE PROC change_gradeAS DECLARE -聲明變量 chgrade CHAR(1), curgrade int; declare mycursor
8、cursor for select grade from sc; BEGIN open mycursor; FETCH mycursor INTO curgrade; while fetch_status=0 -循環(huán)處理每個(gè)學(xué)生的成績(jī) begin IF curgrade < 60 -如果成績(jī)低于60 分,將成績(jī)置為E select chgrade = 'E' ELSe IF curgrade < 70 -如果成績(jī)>60&<70,將成績(jī)置為D select chgrade = 'D' ELSe IF curgrade < 80
9、 -如果成績(jī)>70&<80,將成績(jī)置為C select chgrade = 'C' ELSe IF curgrade < 90 -如果成績(jī)>80&<90,將成績(jī)置為B select chgrade = 'B' ELSE -如果成績(jī)高于90 分,將成績(jī)置為A select chgrade = 'A' UPDATE SC SET newgrade = chgrade -/修改newgrade 列值,填入換算后的成績(jī) where grade=curgrade; FETCH mycursor INTO cur
10、grade; end; close mycursor; END;法(2)、用when語句CREATE PROCEDURE change_grade AS DECLARE curgrade int; declare mycursor cursor for select grade from sc; BEGIN open mycursor; FETCH mycursor INTO curgrade; while fetch_status=0 begin UPDATE SC SET newgrade = -修改newgrade 列值,填入換算后的成績(jī) case when curgrade <
11、60 -如果成績(jī)低于60 分,將成績(jī)置為E then 'E' when curgrade < 70 -如果成績(jī)>60&<70,將成績(jī)置為D then 'D' when curgrade < 80 -如果成績(jī)>70&<80,將成績(jī)置為C then 'C' when curgrade < 90 -如果成績(jī)>80&<90,將成績(jī)置為B then 'B' when curgrade >= 90 -如果成績(jī)高于90 分,將成績(jī)置為A then 'A' end where grade=curgrade FETCH mycursor INTO curgrade; end close mycursor;end3、執(zhí)行存儲(chǔ)過程exec change_grade;4、修改表SCALTER TABLE SC DROP COLUMN grade; -刪除原有的列g(shù)rade EXEC sp_rename 'sc.newgrade', 'Grade', 'COLUMN' -重命名newgrade列為Grade5、查詢結(jié)果selec
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度環(huán)保型離婚協(xié)議書格式與實(shí)施指南2篇
- 二零二五年度城市綠化工程設(shè)計(jì)承包合同3篇
- 二零二五年度個(gè)人電子競(jìng)技賽事參賽協(xié)議4篇
- 稅務(wù)工作新思路探討
- 2025版汽車零部件退貨及換貨服務(wù)協(xié)議書3篇
- 二零二五年度個(gè)人住房公積金貸款合同爭(zhēng)議解決流程合同模板4篇
- 二零二五年度個(gè)人自用房屋全屋定制裝修服務(wù)合同
- 二零二五年度企業(yè)銷售合同發(fā)票管理標(biāo)準(zhǔn)化臺(tái)賬
- 二零二五年度個(gè)人反擔(dān)保債務(wù)清償協(xié)議3篇
- 生產(chǎn)與運(yùn)作管理-第5版 課件全套 陳志祥 第1-14章 生產(chǎn)系統(tǒng)與生產(chǎn)運(yùn)作管理概述 -豐田生產(chǎn)方式與精益生產(chǎn)
- Unit 1 Cultural Heritage單元整體教學(xué)設(shè)計(jì) 人教版必修第二冊(cè)單元整體教學(xué)設(shè)計(jì)
- 養(yǎng)老護(hù)理員試題及答案
- 2024年山東省高中學(xué)業(yè)水平合格考生物試卷試題(含答案詳解)
- 2025年中考英語復(fù)習(xí)熱點(diǎn)話題作文范文
- 小學(xué)數(shù)學(xué)教學(xué)工作交流數(shù)學(xué)教學(xué)中的體會(huì)總結(jié)經(jīng)驗(yàn)交流會(huì)課件
- 2024年美國智能馬桶和馬桶蓋市場(chǎng)現(xiàn)狀及上下游分析報(bào)告
- 中國成人暴發(fā)性心肌炎診斷和治療指南(2023版)解讀
- 復(fù)產(chǎn)復(fù)工六個(gè)一
- 《鋼鐵是怎樣煉成的》練習(xí)題(含答案)
- 急診酒精中毒護(hù)理查房
- 碳纖維加固定額B013
評(píng)論
0/150
提交評(píng)論