建立儲存過程,給定某學生學號,要求查詢出該學生的姓名,所選課程名和成績 SQL SERVER

2021-03-21 16:26:44 字數 4376 閱讀 7179

1樓:莫道無情

/*建立儲存過程*/

create procedure proc_select--建立儲存過程

@sno char(10) output,--輸入輸出引數

@sname varchar(20) out,--輸出引數

@**o char(4) out,--輸出引數

@grade tinyint out--輸出引數

asselect @sname=sname,@sno=student.sno,@**o=**o,@grade=grade --select裡面寫輸出引數

from student,sc  --從學生表,選修表中查詢

where @sno=student.sno--where裡面寫輸入引數

/*根據給定學號查詢*/

create proc  proc_lab4 --儲存過程中含有游標

@sno char(10)

asdeclare @ssno char(10),@ssname char(20),@c**ame char(20),@scg int--宣告四個變數

declare cursor_s cursor--宣告游標

forselect student.sno,sname,**ame,grade

from student,course,sc--從三個表中選擇學號、姓名、課程名、成績

where student.sno=sc.sno and course.**o=sc.**o and sname=@sname;--連線

open cursor_s--開啟游標

fetch next from cursor_s into @ssno,@ssname,@c**ame,@scg

while @@fetch_status=0

begin

print @ssno+@ssname+@c**ame+convert(char(10),@scg)

fetch next from cursor_s into @ssno,@ssname,@c**ame,@scg

endclose cursor_s--關閉游標

deallocate cursor_s--釋放游標

exec proc_lab4 '201215121'

--只帶輸入引數

create proc p2

@sno char(10)

asselect student.sno,sname,**ame,grade

from student,sc,course

where student.sno=sc.sno and sc.**o=course.**o

and sname=@sname

擴充套件資料:

建立儲存過程基本語法

create procedure sp_name

@[引數名] [型別],@[引數名] [型別]

asbegin

.........

end以上格式還可以簡寫成:

create proc sp_name

@[引數名] [型別],@[引數名] [型別]

asbegin

.........

end/*注:「sp_name」為需要建立的儲存過程的名字,該名字不可以以阿拉伯數字開頭*/

2樓:匿名使用者

select name,course,grades from student s

left join course c on c.sid = s.sid

left join achievement a on a.cid = c.cid

where s.id = 10

3樓:匿名使用者

建立過程:

create procedure proc_stu@sno nchar(9)

asselect sname,**ame,gradefrom s join sc on s.sno=sc.sno join c on sc.**o=c.**o

where sno=@sno

呼叫過程:

declare @sno nchar(10)set @sno='161343001'

exec proc_stu @sno

建立乙個儲存過程student_info,要求根據班級查詢學生的學號、姓名、課程號和分數(表結構如表2,表3)

4樓:匿名使用者

create procedure [student_info](@class varchar(4))

with

execute as caller

asselect 表

2.學號,表2.姓名,表3.課程專號,表3.成績 from 表2,表3 where 表2.學號=表3.學號 and 表2.班級

屬=@classgo

sql serve建立儲存過程,查詢指定學生的學號、姓名、課程名、成績

5樓:古舟蓑笠翁

if (exists (select * from sys.objects where name = 'proc_stu'))

drop proc proc_stu

gocreate proc proc_stu(@sname varchar(8) ='張%')

asselect student.sno,sname,lname,grade

from student left join sc on student.sno=sc.sno

left join lesson on sc.lno=lesson.lno

where sname like @snamego

sql語句的一道題 三個基本表:學生表(student)、課程表(course)、學生選課表(sc)

6樓:匿名使用者

select * from course

select sname,sage from student where sdept = '計算機系'

select * from sc where 70 <= grade and grade =>80

select sname,sage from student where sdept = '計算機系' and s***='男'

。。。。

7樓:被減速的飛機

自己看手冊把,都很簡單的,題太多,不好回答,,

8樓:匿名使用者

老師留的作業嗎?為你好,自己做吧。

寫乙個儲存過程,學生輸入學號和學期,就能查詢出這學期的課程,以及成績。

9樓:匿名使用者

sql儲存過程:

源create procedure 儲存過程名(學號bai

du,學期zhi)

asbegin

select 課程,成績 from 表名

dao where 表名.學號=學號 and 表名.學期=學期;

end;

oracle儲存過程:

create or replace procedure 儲存過程名(學號,學期,cur_out out sys_refcursor)//cur_out為游標

isbegin

open cur_out for

select 課程,成績 from 表名 where 表名.學號=學號 and 表名.學期=學期;

end;

10樓:匿名使用者

||set serveroutput on 輸入選項開關

-----------------

提示輸入乙個值來查詢;

create or replace procedure pro_name

(v_id,v_date)--定義變數

asbegin

--執行部分

select 課程,成績 into v_id from emp where 學號=&aa and 學期=&bb;

--在控制台顯版示

dbms_output.put_line('學號是:'||權v_id||'學期是:'||v_date);

--異常處理

exception

when no_data_found then

dbms_output.put_line('您輸入的學號和學期有錯誤,請重新輸入!');

end;

----

sql

sql《學號是:002

sql《學期是:2

sql《課程 成績

語文 98

數學 100

關於儲存過程的as和is問題,建立儲存過程is和as有什麼區別

要是換bai 成duas就要改 zhi成下 dao面的專寫屬法 create procedure student updateasbegin update student set name null where id in select id from student where age 20 mi...

oracle怎麼給儲存過程建立同義詞

一般操作是 1.create or replace synonym a1fora2 testdb 2.grant connect to someusergrant dba to someusergrant resource to someuser3.grant all on 表 to someuse...

sql server 分頁儲存過程

create procedure pagination tblname varchar 255 表名 strgetfields varchar 1000 需要返回的列 fldname varchar 255 排序的欄位名 pagesize int 10,頁尺寸 pageindex int 1,頁碼 ...