SQL存儲過程試題及答案_第1頁
SQL存儲過程試題及答案_第2頁
SQL存儲過程試題及答案_第3頁
全文預覽已結束

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、-寫存儲過程及調用存儲過程/*1寫岀創建分數存儲過程用于計算某門課程成績最髙分、最低分、 平均分,參數課程號。*/-2.寫岀統訃某門課選人數的存儲過程,輸入參數課程號,輸出參數人數。/*3.創建存儲過程,要求根據學生姓名查看學生的籍貫.(要求:在存儲過程里定義兩個參數,第一個接收由調用程序指龍的輸入值(學生姓名),第二個參數用于將該值返回調用程序)*/*4程序員工資表:ProWage字段名稱數據類型說明IDint自動編號,主鍵PNameChar(10)程序員姓名Wageint工資創建一個存儲過程,對程序員的工資進行分析,月薪1500到10000不等,如果有百分之五 十的人耕水不到2000元,給

2、所有人加耕,每次加100,再進行分析,直到有一半以上的人 大于2000元為止,存儲過程執行完后,最終加了多少錢?例如:如果有百分之五十的人嶄水不到2000,給所有人加薪,每次加100元,直到有一半 以上的人工資大于2000元,調用存儲過程后的結果如圖:共加薪z 500兀 加薪后的程序員工瓷列表:12 3 4 5鳥三四月天書張李二1IDPNaneLJageZO0O1300190035002880請編寫T-SQL來實現如下功能:査詢是否有一半程序員的工資在2200、3000、3500、4000、5000或6000元之上,如果不到 分別每次給每個程序員加嶄100元,至之一半程序員的工資達到2200,

3、 3000, 3500, 4000, 5000 或 6000 元。/*5編寫一個存儲過程PR_GET_PASS_RATE統汁某門課程的及格率,英傳入參數是課程號 P_CNO,傳岀參數是該課程成績的及格率P_PASSRATE,及格率的格式形如:86.56%。6. 創建觸發器T_l,功能是當向數據表學生添加記錄時,顯示學生的信息。create trigger T_1 on 學生after insertas select * from 學生insert into 學生 values(,3001l李四丁男T計本 10)7. 創建觸發器T_2,功能是當向數據表班級添加、修改和刪除記錄時,顯示學生的信息。

4、 create trigger T_2 on 學生after insert.update.deleteas select from 學生8. 創建觸發器T_3,功能是當修改班級班號,同步更新學生表的班號。9. 創建觸發器T_4,功能是當刪除學生表的記錄時,同步刪除選課表中的選課信息。 create trigger T_4 on 學生after deleteasdeclare xh char(10)select xh=學號 from deleteddelete from 選課 where 學號=xhdelete from 學生 where 學號=3002/*1 寫出創建分數存儲過程用于計算某門課

5、程成績最髙分、最低分、 平均分,參數課程號。*/use xsglgocreate procedure aa(課程名 nchar(16)asbeginselect課程號,最高分=1】宓(成績),最低分=1血(成績),平均分=8第(成績)from成績 where課程號=課程名group by課程號endgoexecute aa OOT-2寫出統il某門課選人數的存儲過程,輸入參數課程號,輸出參數人數。use xsglgocreate procedure bb 課程號 char(10),人數 int outputasbeginselect 人數=(select count(課程號)from 成績wh

6、ere課程號=課程號)enddeclare 人數 int,課程號 char(4)set 課程號=,002,exec bb 課程號人數outputprim課程號為課程號+1的人數:4casi(人數as char(2)/*3 創建存儲過程,要求根據學生姓名查看學生的籍貫.(要求:在存儲過程里泄義兩個參數,第一個接收由調用程序指建的輸入值(學生姓爼),第二個參數用于將該值返回調用程序)*/use xsglgocreate procedure cc(姓名 char(10),籍貫 char(10) output) as beginselect 籍w=(select 籍貫 from 學生where姓名=姓

7、名)enddeclare 姓名 char(10),籍貫 char(10)set 姓名-廖小小,exec cc 姓名,籍貫 outputprint1學生姓名4的籍貫是:+籍貫USE WageGOCREATE TABLE Pro Wage 一程序員工資表(ID int identity(l J) primary key, 一工資編號PName CHAR( 10) NOT NULL,一程序員姓名Wage int NOT NULL 一工資)GO-1、創建存儲過程-if exists (select * from sysobjects where name=,Sum_wage,) drop proced

8、ure Sum_wagcGOcreate procedure Sum_wagePWage int.AWage int,total intaswhile (1=1)beginif (select count(*) from ProWage)2*(select count(*) from ProWage where Wage=PWage) update ProWage set total=total+ AWageAVage=Wage+ AWageelsebreakendprim共加嶄:4convcrt(varchiu;knal)+元,print,加嶄后的程序員工資列表:select * from

9、ProWage-調用存儲過程1exec Sum_wage PWage=2000, AWage= 100, totaI=0exec Sum_wage PWage=22OO, AWage= 100, total=0exec Sum_wage PWage=3000, AWage= 100, total=0exec Sum_wage PWage=4000, AWage= 100, total=0exec Sum_wage PWage=5000, AWage= 100, total=0exec Sum_wage PWage=6000,AWage= 100,total=05:編寫一個存儲過程PR_GET_PASS_RATE統汁某門課程的及格率,其傳入參數是課程號 P_CNO,傳出參數是該課程成績的及格率P_PASSRATE,及格率的格式形如:86.56%。create or replace procedure PR_passrate_count(p_cno char,P_PASSRATE out char)asv_passcnt int;vjotalcnt int;begin-先求及格人數select count(*) into v_passcnt from scwhere cno=p_cno and gradc=60:-若及格人數為0則給出結果if

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論