实验五、视图的创建与使用

一、实验目的

(1)理解视图的概念。
(2)掌握创建视图、测试、加密视图的方法。
(3)掌握更改视图的方法。
(4)掌握用视图管理数据的方法。

二、实验内容

  1. 创建视图
    (1)创建一个名为stuview1的水平视图,从Student_info数据库的student表中查询出所有男学生的资料。并在创建视图时使用with check option。

    create view stuview1
    as 
    	select * from Student
    	where Sex='男'
    	with check option;
    

    (2)创建一个名为stuview2的投影视图,从数据库Student_info的Course表中查询学分大于3的所有课程的课程号、课程名、总学时,并在创建时对该视图加密。

    create view stuview2(cno,cname,total_perior)
    with encryption
    as
    	select Cno,Cname,Total_perior
    	from Course
    	where Credit>3;
    

    (3)创建一个名为stuview3的视图,能检索出“051”班所有女生的学号、课程号及相应的成绩。

    create view stuview3(sno,cno,grade)
    as
    	select Student.Sno,Cno,Grade
    	from SC,Student
    	where SC.Sno=Student.Sno and Classno='051' and Sex='女';
    

    (4)创建一个名为stuview4的视图,能检索出每位选课学生的学号、姓名、总成绩。

    create view stuview4(classno, sname,sumGrade)
    as
    	select Classno,Sname,sum(Grade)
    	from Student,SC
    	where Student.Sno=SC.Sno
    	group by Student.Sname,Classno;
    
  2. 查询视图的创建信息及视图中的数据
    (1)查看视图stuview1的创建信息。
    方法1:通过系统存储过程sp_help查看。

    sp_help 'stuview1'
    

    在这里插入图片描述

    方法2:通过查询表sysobjects。

    select * from sysobjects
    where xtype='V' and name ='stuview1';
    

    在这里插入图片描述

    (2)查看视图的定义脚本。
    方法1:通过系统存储过程sp_helptext。

    sp_helptext 'stuview1'
    

    在这里插入图片描述

    方法2:通过查询表sysobjects和表syscomments。
    (提示:视图的名称保存在表sysobjects的name列,定义脚本保存在表syscomments的text列)。

    select name ,text
    from sysobjects,syscomments
    where sysobjects.id=syscomments.id and name='stuview1';
    

    在这里插入图片描述

    (3)查看加密视图stuview2的定义脚本。

    exec sp_helptext 'stuview2'
    

    在这里插入图片描述

  3. 修改视图的定义
    修改视图stuview2,使其从数据库Student_info的Course表中查询总学时大于60的所有课程的课程号、课程名、学分。

    alter  view stuview2(cno,cname,credit)
    as
    	select Cno,Cname,Credit
    	from Course
    	where Total_perior>60;
    
  4. 视图的更名与删除
    (1)将视图stuview4更名为stuv4。

    sp_rename stuview4,stu4;
    

    在这里插入图片描述

    (2)将视图stuv4删除。

    drop view stu4;
    

    在这里插入图片描述

  5. 管理视图中的数据
    (1)从视图stuview1查询出班级为“051”、姓名为“张虹”的资料。

    select * from stuview1
    where Classno='051' and Sname='张虹';
    

    在这里插入图片描述

    (2)向视图stuview1中插入一行数据。学号:20110005,姓名:许华,班级:054,性别:男,家庭住址:南京,入学时间:2011/09/01,出生年月:1983/01/09。
    原Student表中的内容有何变化?

    insert
    into stuview1
    values('20110005','许华','男','1983-01-09','054','2011-09-01','南京','计算机系',null)
    

    在Student表中成功插入了一行数据
    在这里插入图片描述 思考:如向视图stuview1中插入一行数据。学号:20110006,姓名:赵静,班级:054,性别:女,家庭住址:南京,入学时间:2011/09/01,出生年月:1983/11/09。会出现什么样的结果?原Student表中的内容有何变化?

    insert
    into stuview1
    values('20110006','赵静','女','1983-11-09','054','2011-09-01','南京','计算机系',null);
    

    插入失败,因为视图stuview1有约束
    试图进行的插入或更新已失败,原因是目标视图或者目标视图所跨越的某一视图指定了 WITH CHECK OPTION,而该操作的一个或多个结果行又不符合 CHECK OPTION 约束。
    在这里插入图片描述

    (3)修改视图stuview1中的数据。
    将stuview1中054班、姓名为“许华”同学的家庭地址改为“扬州市”。
    原Student表中的内容有何变化?

    update stuview1
    set Home_addr='扬州市'
    where Sname='许华' and Classno='054';
    

    在Student表中也发生了相应的改变
    在这里插入图片描述

    (4)删除视图stuview1中班级为054、姓名为“许华”的同学的记录。
    原Student表中的内容有何变化?

    delete 
    from stuview1
    where Classno='054' and Sname='许华';
    

    在这里插入图片描述

  • 32
    点赞
  • 177
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
一、实验目的 1.掌握SQL Server 2005的安装。 2.掌握SQL Server Management Studio的启动和使用。 3.掌握SQL Server 2005服务器的配置和注册。 4.掌握SQL Server 2005查询的基本使用。 5.掌握应用SQL Server Management Studio创建数据库方法。 6.掌握应用SQL Server Management Studio修改和查看数据库方法。 7.掌握应用SQL Server Management Studio删除数据库方法。 8.掌握应用Transact-SQL语句创建数据库方法。 9.掌握应用Transact-SQL修改和查看数据库方法。 10.掌握通过Transact-SQL删除数据库方法。 11.掌握SQL Server 2005数据库和操作系统物理文件的关系。 12.掌握数据库的分离和附加方法。 二、实验内容 1.完成SQL Server 2005开发版的安装。 提示:若计算机系统中已经安装有SQL Server 2005系统,则在安装时需要选择安装命名实例。安装过程中身份验证模式选择“混合模式”并设置sa账户的密码。 2.利用SQL Server配置管理器启动、停止SQL Server服务(包括默认实例和命名实例),配置SQL Server服务为自动启动。 3.利用SQL Server配置管理器配置进行SQL Server 2005网络配置,启用默认实例和命名实例的TCP/IP协议。 4.利用SQL Server外围配置器配置数据库引擎的服务及远程连接,设置为“本地连接和远程连接”,选择“同时使用TCP/IP和named pipes”。 5.利用SQL Server Management Studio注册安装的命名实例。 6.利用SQL Server Management Studio注册远程服务器。 提示:注册远程服务器时需要使用混合验证模式,利用sa账户和密码登录远程服务器。 7.启动SQL Server Management Studio,连接到服务器。新建一个查询,在其中输入如下代码: DECLARE @position int, @string char(5) SET @position = 1 SET @string = 'China' WHILE @position <= DATALENGTH(@string) BEGIN SELECT SUBSTRING(@string, @position, 1) 字符, ASCII(SUBSTRING(@string, @position, 1)) ASCII码 SET @position = @position + 1 END

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Lilianac

你的鼓励是我的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值