SQL 2005中的視圖

對數據庫jwgl,按要求建立以下視圖

1、查詢班級女學生的學生編號、學生姓名、性別 及學生所屬班級名稱,並把此查詢生成視圖。

源代碼:use jwgl

go

create view girltab as

select student_id,student_name,sex,class_id from student where sex=0

select * from girltab

clip_image002

2、修改上題所建視圖定義,除顯示班級女學生編號、學生姓名、性別、及學生所屬班級名稱外,還要求顯示學生年齡。

源代碼:alter view girltab as

select student_id,student_name,sex,class_id,age from student where sex=0

clip_image004

3、查詢上題生成的視圖。

源代碼:select * from girltab

clip_image006

4、在生成的視圖中插入一名男學生的記錄。

源代碼:insert into girltab values ('g940302','去翻',1,'g9903',20)

select * from student

clip_image008

5、在視圖的定義上加上子句with check option,再通過視圖插入一名男學生的記錄,能否成功,想想爲什麼。

(1)、沒加 with check option —可以插入記錄成功

源代碼:alter view girltab as

select student_id,student_name,sex,class_id,age from student where sex=0

insert into girltab values ('g940303','丁琪',1,'g9903',20)

select * from student

clip_image010

(2)、加了 with check option —插入記錄失敗

源代碼:alter view girltab as

select student_id,student_name,sex,class_id,age from student where sex=0

with check option

insert into girltab values ('g940304','丁',1,'g9903',20)

clip_image012

不能成功,因爲with check option子句會檢查修改是否滿足視圖定義。視圖定義的是女同學,插入男生記錄不滿足女同學條件,所以不能插入成功。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章