資料庫 實驗六 游標 儲存過程的建立和使用

2021-10-11 04:13:33 字數 3022 閱讀 4403

–1、游標操作

–在選修資料庫中,以student(sno,sname,s***,sage,sdept),course(cno,cname,cpno,credit),sc(sno,cno,grade)表為基礎完成下列游標操作。

–(1)在student表中定義乙個包含sno,sname,s***,sage,sdept的滾動游標,游標的名稱為「cs-cursor」,並將游標中的資料逐條顯示出來,並讀取第一行資料、最後一行資料,當前行前面的一行資料,當前游標開始的第二行資料,關閉游標,釋放游標。

declare cs_cursor cursor

scroll for

select

*from student open cs_cursor

fetch

next

from cs_cursor

fetch prior from cs_cursor--向前一行

fetch

first

from cs_cursor--游標移到第一行

fetch

last

from cs_cursor--游標移到最後一行

–(2)在student表中定義乙個所在系部為cs,包含sno,sname,s***的游標,游標的名稱為「cs-cursor」,並將游標中的絕對位置為2的學生的姓名改為「王楠」,性別改為「女」。

declare cs_cursor2 cursor

scroll for

select sno,sname,s*** from student where sdept=

'cs'

;open cs_cursor2;

fetch absolute 2

from cs_cursor2 ;

update student set sname=

'王楠'

, s***=

'女'where

current

of cs_cursor2;

–(3)在student表中定義乙個包含sno,sname,grade的游標,游標的名稱為「cs-cursor」,並將游標遍歷整個資料表。

declare cs_cursor3 cursor

scroll for

select s.sno,sname,grade from student s,sc where s.sno=sc.sno ;

open cs_cursor3;

declare

@nochar

declare

@name

char

declare

@grade

intfetch

next

from cs_cursor3 into

@no,

@name

,@grade

while @@fetch_status=0

begin

print

@no+

' '+

@name

+' '

+str(

@grade

)fetch

next

from cs_cursor3 into

@no,

@name

,@grade

end;

close cs_cursor3;

deallocate cs_cursor3;

–2、儲存器操作

–在選修資料庫中,以student(sno,sname,s***,sage,sdept),course(cno,cname,cpno,credit),sc(sno,cno,grade)表為基礎建立下列儲存過程。

–(1)建立乙個向student表插入資料的儲存過程,該過程需要用5個引數,分別傳遞

sno,sname,s***,sage,sdept。

create

procedure sp_insert(

@sno

char

,@sname

char

,@s***

char

,@sage

int,

@sdept

char)as

insert

into student values

(@sno

,@sname

,@s***

,@sage

,@sdept);

--close sp_insert

--deallocate sp_insert

--exec sp_insert '201825139','莉莉','女',20,'cs';

–(2)建立乙個向course表插入資料的儲存過程,該過程需要用4個引數,分別傳遞cno,cname,cpno,ccredit。

create

procedure cp_insert(

@cno

char

,@cname

char

,@cpno

int,

@ccredit

char)as

insert

into course values

(@cno

,@cname

,@cpno

,@ccredit

);

–(3)建立乙個向sc表插入資料的儲存過程,該過程需要用3個引數,分別傳遞sno,cno,grade。

create

procedure scp_insert(

@sno

char

,@cno

char

,@grade

int)

asinsert

into sc values

(@sno

,@cno

,@grade

);

資料庫實驗六 儲存過程

什麼是儲存過程?是一組被編譯在一起的t sql語句的集合,它們被集合在一起以完成乙個特定的任務。儲存過程的分類 系統儲存過程 擴充套件儲存過程 提供從sql server到外部程式的介面,以便進行各種維護活動 使用者自定義的儲存過程 儲存過程的作用 1.模組化程式設計 建立乙個儲存過程存放在資料庫中...

同步資料庫資訊(儲存過程 游標)

專案基本都是基於現在已有的資料庫進行開發,或者擴充套件,基本碰到的專案都是2 3個以上的資料庫,頭疼。一般做的比較基礎或者常用的就是寫下同步,比如員工,部門,角色,等等的一些同步,我的操作是直接建立儲存過程,然後去設定sqlserver的定時任務,定時去執行這個儲存過程,那麼就實現了我的需求。建立儲...

資料庫儲存過程的小實驗

實驗4 1 儲存過程 一 實驗目的 1 理解儲存過程的概念 了解儲存過程的型別 2 掌握建立儲存過程的方法 3 掌握執行儲存過程的方法 4 了解檢視 修改 刪除儲存過程的方法 二 實驗內容 1 使用不帶引數的儲存過程 1 建立乙個儲存過程my proc,查詢 學生表 中所有計算機系女生的學號 姓名 ...