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 要是換bai 成duas就要改 zhi成下 dao面的專寫屬法 create procedure student updateasbegin update student set name null where id in select id from student where age 20 mi... 一般操作是 1.create or replace synonym a1fora2 testdb 2.grant connect to someusergrant dba to someusergrant resource to someuser3.grant all on 表 to someuse... create procedure pagination tblname varchar 255 表名 strgetfields varchar 1000 需要返回的列 fldname varchar 255 排序的欄位名 pagesize int 10,頁尺寸 pageindex int 1,頁碼 ...關於儲存過程的as和is問題,建立儲存過程is和as有什麼區別
oracle怎麼給儲存過程建立同義詞
sql server 分頁儲存過程