加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

(数据库SQL)视图的定义及使用

(2011-11-18 09:34:28)
标签:

杂谈

分类: 自己写哒

一、视图的创建:

1 创建信息系学生信息的视图 (is_view) ;
create view is_view(sno,sname,ssex,sage,sdept)
as
select *
from student
where sdept='IS';

2 创建信息系选修了1号课程的学生的视图;
create view is_1_view(sno,sname,ssex,sage,sdept)
as
select student.*
from student,sc
where student.sdept='IS' and sc.sno=student.sno and sc.cno=1;

3 建立信息系选修了1号课程且成绩在90分以上的学生的视图;
create view cs_1_90_view(sno,sname,ssex,sage,sdept)
as
select student.*
from student,sc
where student.sdept='IS' and sc.sno=student.sno and sc.cno=1 and sc.grade>90;

4 创建一个反映学生出生年份的视图
create view birth_view (sno,birth)
as
select sno,Year(GetDate())-sage
from student;

5 将所有女生的记录定义为一个视图;

create view nv_view(sno,sname,ssex,sage,sdept)
as
select *
from student
where ssex='女';
6 将所有学生的学号和他的平均成绩定义为一个视图S_G。
create view S_G(sno,savg)
as
select sno,avg(grade)
from sc
group by sno;

二、 视图结构的修改:

1 将视图 is_view 修改为信息系的所有女生的视图;
drop view is_view;

create view is_view(sno,sname,ssex,sage,sdept)
as
select *
from student
where sdept='IS' and ssex='女';
或者
alter view is_view
as
select sno,sname,ssex,sage,sdept
from student
where sdept='IS' and ssex='女';
 
三、查询视图

1 在信息系的学生视图中查询年龄小于20岁的学生:
select sno
from is_view
where sage<20;

2 查询信息系选修了1号课程的学生:

select sno
from is_1_view;
3 在视图S_G中查询平均成绩在90分以上的学生的学号和平均成绩:
select sno,savg
from S_G
where savg>90;

四、更新视图:

1 将信息系学生视图is_view中学号为“95002”学生姓名改为”刘辰”;

update is_view
set sname='刘辰'
where sno=95002;

2 向信息系学生视图is_view中插入一个新的学生记录, 学号为95029,姓名为”赵新”, 年龄为20岁;
insert
into is_view(sno,sname,ssex,sage,sdept)
values(95029,'赵新','男',20,'IS');

3 删除信息系学生视图is_view中学号为95004的学生的记录。
delete
from is_view
where sno=95004;
五、删除视图

1 删除视图is_view
drop view is_view;

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有