對數據庫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
2、修改上題所建視圖定義,除顯示班級女學生編號、學生姓名、性別、及學生所屬班級名稱外,還要求顯示學生年齡。
源代碼:alter view girltab as
select student_id,student_name,sex,class_id,age from student where sex=0
3、查詢上題生成的視圖。
源代碼:select * from girltab
4、在生成的視圖中插入一名男學生的記錄。
源代碼:insert into girltab values ('g940302','去翻',1,'g9903',20)
select * from student
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
(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)
不能成功,因爲with check option子句會檢查修改是否滿足視圖定義。視圖定義的是女同學,插入男生記錄不滿足女同學條件,所以不能插入成功。