实验六视图的定义及使用实验实验报告

合集下载

实验6 视图的应用

实验6  视图的应用

实验6 视图的应用实验目的学会使用MS SQL SERVER 2000企业管理器和SQL语句创建、修改和删除视图,掌握通过视图向基本表插入、删除、更新数据的方法和步骤。

知识点拨:1.视图是一张虚表2.视图的作用3.视图的种类4.创建视图的SQL语句5.更新视图的SQL语句6.删除视图的SQL语句7.通过视图修改数据库中数据的限制实验内容1.行列子视图的创建2.基于多个基本表的视图的创建3.基于基本表和视图的视图的创建4.带表达式的视图的创建5.分组视图的创建6.删除视图7.修改视图8.通过视图修改数据库数据实验步骤1.选择数据库JX;注意:以下操作均在查询分析器定义,在企业管理器中查看和修改,并请验证结果!2.创建行列子视图1)创建视图WY_Student,用于查询外语系学生的基本信息;CREATE VIEW WY_StudentASSELECT *FROM StudentWHERE Sdept='外国语'2)创建视图SS_Student,用于查询学生的姓名、学号和总学分信息,要求属性列中文显示;CREATE VIEW SS_StudentASSELECT Sname 姓名,SC.Sno 学号,Total 总学分FROM Student3.创建基于多个基本表的视图1)创建视图XSXK,用于查询每个同学的选课信息,包括学号、姓名、课程号、课程名和成绩;CREATE VIEW XSXKASSELECT SC.Sno,Sname,o,Cname,GradeFROM Student,SC,CourseWHERE Student.Sno=SC.Sno AND o=oGROUP BY SC.Sno,Sname,o,Cname,Grade2)创建视图JSSK,用于查询每个教师的任课情况,包括教师号、教师名、职称、所讲授课程的课程号信息,并用中文列出各属性名;CREATE VIEW JSSKASSELECT Teacher.Tno 教师号,Tname 教师名,Tprof 职称,o 课程号,Cname 课程名FROM Teacher,SC,CourseWHERE Teacher.Tno=SC.Tno AND o=oGROUP BY Teacher.Tno ,Tname ,Tprof ,o ,Cname3)基于视图WY_Student和SC,创建视图SSS,用于查询外语系学生的选课情况;CREATE VIEW SSSASSELECT WY_Student.Sno,Sname,CnoFROM WY_Student,SCWHERE SC.Sno=WY_Student.Sno4.带表达式的视图的创建1)创建视图XSNL,用于查询学生的学号、姓名和年龄;CREATE VIEW XSNL(Sno,Sname,Sage)ASSELECT Sno,Sname,year(getdate())-year(Sbirth)FROM Student2)创建视图XSZCJ,用于查询选修了课程的学生的总评成绩,包括学号、姓名、课程号,每门课程的总评成绩计算公式为:成绩*70%+(成绩-10)*20%+10;CREATE VIEW XSZCJ(Sno,Sname,Cno,总评成绩)ASSELECT Student.Sno,Sname,Cno,Grade*0.7+(Grade-10)*0.2+10FROM Student,SCWHERE Student.Sno=SC.Sno3)创建视图JSGZ,用于显示教师的预发工资,包括教工号、姓名、职称和按95%预发的工资额;(含有%的列名字可以用【】)CREATE VIEW JSGZ(Tno,Tname,Tprof,[预发95%工资])ASSELECT Tno,Tname,Tprof,Tpay*0.95FROM Teacher5.分组视图的创建1)创建视图XSPJCJ,用于查询选修了课程的学生的成绩,包括学号、姓名和所选课程的平均成绩;CREATE VIEW XSPJCJ(Sno,Sname,平均成绩)ASSELECT SC.Sno,Sname,A VG(Grade)FROM SC,StudentWHERE SC.Sno=Student.SnoGROUP BY SC.Sno,Sname2)创建视图JSRKMS,用于查询教师的任课门数,包括教工号、教师名和任课门数;CREATE VIEW JSRKMS(Tno,Tname,任课门数)ASSELECT Teacher.Tno,Tname,COUNT(DISTINCT(Cno))FROM Teacher,SCWHERE Teacher.Tno=SC.TnoGROUP BY Teacher.Tno,Tname3)创建视图KCPJCJ,用于查询各门课程的平均成绩,包括课程号、课程名、选课人数、平均成绩;CREATE VIEW KCPJCJ(Cno,Cname,选课人数,平均成绩)ASSELECT o,Cname,COUNT(*),A VG(Grade)FROM Course,SCWHERE o=oGROUP BY o,Cname4)创建视图YXXS,用于查询各门成绩和平均成绩都在85分以上的学生的学号、姓名及平均成绩;CREATE VIEW YXXSASSELECT DISTINCT SC.Sno,Sname,A VG(Grade) 平均成绩FROM Student,SCWHERE Student.Sno=SC.Sno AND SC.Sno NOT IN(SELECT SnoFROM SCWHERE Grade<85)GROUP BY SC.Sno,Sname6.删除视图1)删除视图XSNL;DROP VIEW XSNL7.通过视图修改数据库数据1)查询视图WY_Student,然后使用INSERT…INTO…语句更新WY_Student视图,再次查询该视图以及相关基表,检查执行结果;SELECT *FROM WY_StudentINSERTINTO WY_Student(Sno,Sname)V ALUES ('06122','王五')SELECT *FROM WY_StudentSELECT *FROM Student再次查询的结果为,在基本表Student中插入了该记录,但是在视图WY_Student中并没有插入该记录,因为插入的记录不满足视图WY_Student子查询的条件。

视图和索引的创建和使用实验报告

视图和索引的创建和使用实验报告

信息工程学院实验报告课程名称:《数据库原理》Array实验项目名称:视图和索引的创建和使用一、实验目的:(1)掌握创建视图的SQL语句的用法。

(2)掌握修改视图的方法。

(3)熟悉视图更新与基本表更新的区别与联系;认识视图的作用。

(4)熟悉索引的作用,以及不同类型索引的区别。

(5)学会用T-SQL语句对表创建和删除索引二、实验设备与器件Win7 +Sql server 2008三、实验内容与步骤利用备份文件school,还原数据库,然后完成以下实验内容:(1)用T-SQL语句,定义信息系学生基本情况视图V_IS。

(2)用T-SQL语句,将Student,Course 和SC表中学生的学号,姓名,课程号,课程名,成绩定义为视图V_S_C_G。

(3)用T-SQL语句,将各系学生人数,平均年龄定义为视图V_NUM_AVG。

(4)用T-SQL语句,定义一个反映学生出生年份的视图V_YEAR。

(5)用T-SQL语句,将各位学生学号、选修课程的门数及平均成绩定义为视图V_AVG_S_G。

(6)用T-SQL语句,将各门课程的课程号、选修人数及平均成绩定义为视图V_AVG_C_G。

(7)用T-SQL语句完成以下视图操作,查看结果,并分析原因。

①通过视图V_IS,将学号为“200215125”的学生姓名更改为“张小立”,并查看结果;②通过视图V_IS,新增加一个学生记录 ('200215126','黄笑',19, '男','IS'),并查看结果。

③通过视图V_IS,新增加一个学生记录 ('200215127','李霞',19, '女','MA'),并查看结果。

④通过视图V_IS,删除学号为“200215126”的学生信息,并查看结果。

⑤通过视图V_S_C_G,将学号“200215122”的姓名改为“刘晓晨”,能否实现?若无法实现说明原因。

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

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

视图的创建与使用一、实验目的(1)理解视图的概念。

(2)掌握创建视图、测试、加密视图的方法。

(3)掌握更改视图的方法。

(4)掌握用视图管理数据的方法。

二、实验内容1.创建视图(1)创建一个名为stuview2的水平视图,从数据库Student_info的Student表中查询出性别为“男”的所有学生的资料。

并在创建视图时使用with check option。

(注:该子句用于强制视图上执行的所有修改语句必须符合由Select语句where中的条件。

)create view stuview2asselect*from Studentwhere Sex='男'with check option查看视图:select*from stuview2(2)创建一个名为stuview3的投影视图,从数据库Student_info的Course表中查询学分大于3的所有课程的课程号、课程名、总学时。

并在创建时对该视图加密。

(提示:用with ENCRYPTION关键子句)create view stuview3with ENCRYPTIONasselect Cno,Cname,Total_perior from Coursewhere Credit>3查看视图:select*from stuview3(3)创建一个名为stuview4的视图,能检索出“051”班所有女生的学号、课程号及相应的成绩。

create view stuview4asselect*from SCwhere Sno=(select Sno from Studentwhere Classno='051'and Sex='女')查看视图:select*from stuview4(4)创建一个名为stuview5的视图,能检索出每位选课学生的学号、姓名、总成绩。

create view stuview5asselect Student.Sno学号,Sname姓名,Grade成绩from Student,SCwhere Student.Sno=SC.Sno查看视图:select*from stuview5若出现如上图所示情况,单击“查询”→IntelliSense→刷新本地缓存然后就解决了。

实验六 视图的创建和使用

实验六 视图的创建和使用

实验六视图的创建和使用开课实验室:指导老师:学院:专业(班级):姓名:学号:一、实验目的与要求1)理解视图的概念2)掌握利用企业管理器和CREATE VIEW命令创建视图方法。

3)熟悉修改视图、查看视图和删除视图的方法。

4)掌握通过视图修改数据表的方法二、实验过程设计及实验步骤创建视图是数据库应用中的常见需求,可以使用企业管理器创建、管理视图,也可以用T-SQL语句创建、管理视图。

1)在企业管理器中创建如下视图:在XSGL数据库中使用表STUDENT和SCORE 创建视图VIEW_STUDENTSCROE,来查询每个学生的姓名和选课情况。

2)在查询分析器中创建视图:将上题用CREATE VIEW 来创建,视图名为VIEW2 程序代码:3)查看视图信息:使用系统存储过程SP_HELP、SP_HELPTEXT、SP_DEPENDS4)删除视图:将视图VIEW2删除.三、SQL调试及结果创建视图是数据库应用中的常见需求,可以使用企业管理器创建、管理视图,也可以用T-SQL语句创建、管理视图。

1)在企业管理器中创建如下视图:在XSGL数据库中使用表STUDENT和SCORE 创建视图VIEW_STUDENTSCROE,来查询每个学生的姓名和选课情况。

2)在查询分析器中创建视图:将上题用CREATE VIEW 来创建,视图名为VIEW2 程序代码:CREATE VIEW VIEW2ASSELECT STUDENT.SNAME,OFROM STUDENT,SCORE3)查看视图信息:使用系统存储过程SP_HELP、SP_HELPTEXT、SP_DEPENDS 执行代码;SP_HELPTEXT VIEW2执行代码:SP_HELP VIEW2执行代码:SP_DEPENDS VIEW24)删除视图:将视图VIEW2删除. 执行语句:USE XSGLDROP VIEW VIEW2四、实验体会通过此次学习我理解视图的概念,掌握利用企业管理器和CREATE VIEW命令创建视图方法。

《数据库》实验6 视图

《数据库》实验6 视图
•使用SQL创建一个课程表视图,其数据来源于2个基本表T、C。视图名称 是VIEW_CTABLE,包含的数据有:来自视图T的字段:TN,来自表C的字段:CN。 1.修改视图的SQL语句
ALTER VIEW [ < database_name > .] [ < owner > .] view_name [ ( column [ ,...n ] ) ] AS
【实验步骤】
1.使用企业管理器把视图VIEW_S中的字段AGE删掉;
视图VIEW_S的定义
删除DEPT后的视图VIEW_S中的数据
实验6.3 修改视图
2.使用SQL给视图VIEW_CTABLE增加一个课时字段:CT TINYINT
创建视图VIEW_CABLE的SQL语句
修改后的视图数据
实验6.4 删除视图
附件:数据库jiaoxuedb
1.创建数据库jiaoxuedb。 2.在数据库jiaoxuedb中创建表Student、Teacher、Course、SC、TC,它们
的表数据如下图所示。
学生表student
教师表Teacher
附件:实验2数据库jiaoxuedb
课程表Course
选课表SC
教师任课表TC
CREATE VIEW [ < database_name > .] [ < owner > .] view_name [ ( column [ ,...n ] ) ]
AS
select_statement
[ WITH CHECK OPTION ]
实验6 视图
6.修改视图的SQL语句 ALTER VIEW [ < database_name > .] [ < owner > .] view_name [ ( column [ ,...n ] ) ] AS select_statement [ WITH CHECK OPTION ]

实验六 视图的定义及使用实验 实验报告

实验六  视图的定义及使用实验   实验报告

实验六视图的定义及使用实验实验报告实验任务(一)建立视图(运行并观察结果)1.建立信息系学生的视图IS_student。

CREATE VIEW IS_StudentASSELECT Sno,Sname,SageFROM StudentWHERE Sdept='IS'2.建立信息系选修了1号课程的学生的视图IS_S1。

CREATE VIEW IS_S1(Sno,Sname,Grade)ASSELECT Student.Sno,Sname,GradeFROM Student,SCWHERE Sdept='IS'ANDStudent.Sno=SC.Sno ANDo='1';3.建立信息系选修了1号课程且成绩在90分以上的学生的视图IS_S2。

CREATE VIEW IS_S2ASSELECT Sno,Sname,GradeFROM IS_S1WHERE Grade>=904.建立一个反映学生出生年份的视图BT_S。

CREATE VIEW BT_S(Sno,Sname,Sbirth)ASSELECT Sno,Sname,2004-SageFROM Student5.将学生的学号及他的平均成绩定义为一个视图S_G。

CREATE VIEW S_G(Sno,Gavg)ASSELECT Sno,AVG(Grade)FROM SCGROUP BY Sno6.将课程的课号及选修人数定义为一个视图C_XIU。

CREATE VIEW C_XIU(Cno,Scount)ASSELECT Cno,COUNT(*)FROM SCGROUP BY Cno(二)查询视图(运行并观察结果)1.在信息系学生的视图中找出年龄小于20岁的学生。

SELECT Sno,SageFROM IS_StudentWHERE Sage<202.查询信息系选修了1号课程的学生。

SELECT IS_Student.Sno,SnameFROM IS_Student,SCWHERE IS_Student.Sno=SC.Sno ANDo='1'3.在S_G中查询平均成绩在90分以上的学生的学号和平均成绩。

数据库实验报告3

数据库实验报告3

数据库实验报告课程:数据库原理及应用正文:一、实验目的1.理解索引和视图的概念。

2.掌握索引的使用方法。

3.掌握视图的定义和使用方法。

4.理解存储过程的概念,掌握存储过程的使用方法。

5.学习触发器的使用,体会触发器执行的时机,加深对触发器功能和作用的理解。

6.理解SQL Server2000验证用户身份的过程,掌握设置身份验证模式的方法。

7.理解登陆账号的概念,掌握混合认证模式下登陆账号的建立与取消方法。

8.掌握混合认证模式下数据库用户的建立与取消。

9.掌握数据库用户权限的设置方法。

10.理解角色的概念,掌握管理角色技术。

11.学会配制ODBC数据源。

了解使用ODBC来进行数据库应用程序设计,通过ODBC接口访问数据库并对数据库进行操作。

学习在Visual Basic中使用ADO控件访问后台的SQL Server数据库。

二、实验内容1.建立索引。

对JWGL数据库的学生选课表SC建立索引,要求按照Cno升序、Grade降序建立一个名为SC_ind的索引。

USE JWGLIF EXISTS(SELECT name FROM sysindexes WHERE name = 'SC_ind')DROP INDEX SC.SC_ind;GOUSE JWGLCREATE INDEX SC_ind ON SC (Cno,Grade DESC);2.视图的定义和操作,(1)在JWGL数据库里,完成第三章例3.54~例3.61例题中视图的定义和视图上的查询、更新操作。

(2)在Market数据库中,完成第三章习题11中(1)中建立视图的操作,然后在视图上完成第三章习题11(2)的查询操作。

3.在数据库JWGL中,完成第四章例1,例3~7中例题的创建存储过程的操作,并使用EXEC语句调用这些存储过程执行,观察他们的执行结果。

4.在Market数据库中,完成第四章习题5中(1)~(4)创建存储过程的操作。

视图和索引的创建和使用实验报告

视图和索引的创建和使用实验报告

信息工程学院实验报告课程名称:《数据库原理》Array实验项目名称:视图与索引得创建与使用一、实验目得:(1)掌握创建视图得SQL语句得用法。

(2)掌握修改视图得方法、(3)熟悉视图更新与基本表更新得区别与联系;认识视图得作用。

(4)熟悉索引得作用,以及不同类型索引得区别。

(5)学会用T—SQL语句对表创建与删除索引二、实验设备与器件Win7+Sql server2008三、实验内容与步骤利用备份文件school,还原数据库,然后完成以下实验内容:(1)用T—SQL语句,定义信息系学生基本情况视图V_IS。

(2)用T—SQL语句,将Student,Course 与SC表中学生得学号,姓名,课程号,课程名,成绩定义为视图V_S_C_G。

(3)用T—SQL语句,将各系学生人数,平均年龄定义为视图V_NUM_AVG。

(4)用T—SQL语句,定义一个反映学生出生年份得视图V_YEAR。

(5)用T-SQL语句,将各位学生学号、选修课程得门数及平均成绩定义为视图V_AVG_S_G、(6)用T—SQL语句,将各门课程得课程号、选修人数及平均成绩定义为视图V_AVG_C_G。

(7)用T-SQL语句完成以下视图操作,查瞧结果,并分析原因。

①通过视图V_IS,将学号为“200215125"得学生姓名更改为“张小立”,并查瞧结果;②通过视图V_IS,新增加一个学生记录('200215126',’黄笑',19, '男',’IS'),并查瞧结果。

③通过视图V_IS,新增加一个学生记录 ('200215127’,’李霞',19, '女','MA'),并查瞧结果。

④通过视图V_IS,删除学号为“200215126”得学生信息,并查瞧结果。

⑤通过视图V_S_C_G,将学号“200215122”得姓名改为“刘晓晨”,能否实现?若无法实现说明原因。

⑥通过视图V_AVG_S_G,将学号“200215121”得平均成绩改为90,能否实现?若无法实现说明原因。

实验五:数据库的视图和图表的定义及使用

实验五:数据库的视图和图表的定义及使用
5、编辑数据库图表
在企业管理器中,展开数据库图表所属的服务器、数据库文件夹、数据库以及关系表文件夹。用鼠标右键单击要编辑的关系表,在弹出的菜单中选择“设计关系表”项,则弹出一个编辑关系表的对话框,数据库关系表中的所有操作都是在该对话框中完成的。
6、数据库图表的删除
在企业管理器中,用鼠标右键单击欲删除的数据库关系表。在弹出的菜单上选择“删除”项。在随后出现的删除对象对话框中选中关系表后,单击“删除全部”按钮,即可删除该数据库中被选中的关系表。
ifexists(select*fromsysobjectswherename='Reader')
droptableReader
go
createtableReader(
ReaderIdvarchar(50)primarykey,
Namevarchar(50),
Unitvarchar(50),
Sgenderchar(10)check(Sgender='男'orSgender='女'),
union
select'1003','200215122','2011.02.03'
union
select'1003','200215125','2011.02.03'
union
select'1006','200215126','2011.02.03'
创建视图并修改:
createviewghbas
SELECTdbo.Books.Type,Books.Press,Books.Author,Books.BookName,Books.Price,dbo.Borrow.*

视图及其应用

视图及其应用

第5章视图及其应用教学目标通过本章学习,使学生掌握视图的基本概念和作用,掌握视图的建立、修改和操作方法,会根据实际问题的需要,能够熟练地建立相关视图,会利用视图查询数据和修改数据。

重点难点视图的概念和作用 视图的建立和操作方法 利用视图查询数据的方法5.1任务描述本章完成项目的第5个任务:在大学生选课管理数据库Student中,完成如下操作:1.建立教师的有关任课信息视图。

2.建立学生的有关选课信息视图。

3.建立每门课程被选修的状况视图。

5.2视图综述5.2.1 视图的基本概念视图可以被看成是虚拟表或存储查询。

除非是索引视图,否则视图的数据不会作为非重复对象存储在数据库中。

数据库中存储的是Select语句。

Select语句的结果集构成视图所返回的虚拟表。

用户可以采用引用表所使用的方法,在SQL语句中引用视图名称来使用此虚拟表。

视图是从一个或者多个表或视图中导出的表,其结构和数据是建立在对表的查询基础上的。

和真实的表一样,视图也包括几个被定义的数据列和多个数据行,但从本质上讲,这些数据列和数据行来源于其所引用的表。

因此,视图不是真实存在的基础表而是一个虚拟表,视图所对应的数据并不实际地以视图结构存储在数据库中,而是存储在视图所引用的表中。

5.2.2 视图的优点和作用1.可以使用视图集中数据、简化和定制不同用户对数据库的不同数据要求。

用户使用数据库中的数据时,最关心对自己有用的信息。

对于庞大的数据,用户可只将自己所需的数据集中到一个视图内,而那些不需要的或者无用的数据则不在视图中显示,从而集中精力处理有用的数据。

2.使用视图可以屏蔽数据的复杂性,方便用户对数据的操作,用户不必了解数据库的结构,就可以方便地使用和管理数据,简化数据权限管理和重新组织数据以便输出到其他应用程序中。

3.视图便于组织数据导出,当需要将多个表中的相关数据导出时,可以将数据集中到一个视图内,通过视图导出相关数据,从而简化了数据的交换操作,也大大地简化了用户对数据的操作。

实验—视图、游标实验

实验—视图、游标实验

实验视图、游标一、实验目的1.掌握创建视图、游标方法。

2.掌握查询视图和游标的使用方法。

二、实验理论基础及教材对应关系1、实验理论基础:(1)视图;三、实验内容与步骤(一)准备工作:首先将数据库附加到服务器上,步骤如下:1、将老师传给你们的“sqlstud”和”goods”文件夹,拷贝到D盘中2、在如下的数据库图上弹鼠标右键,如下图3、在下图中,点击“添加”按钮4、在如下图的进行选择,选择“商品管理_Data.MDF”:并单击“确定”按钮5、在下图中点击“确定”按钮,将商品管理数据库附加到系统中。

5、用与上面类似的方法将“sqlstud”文件夹中的“学籍管理”数据库附加到系统中。

(二)创建视图1、在如下的图中,单击“新建查询”2、在如下的图中,相应处输入代码,并选择对应的数据库,否则出错。

3、创建一个视图,该视图是性别为“男”的学生姓名和年龄。

create view 男生视图asselect 姓名,年龄,性别from 学生where 性别='男'将上述语句运行后,查看“有无“男生视图”,如下图类似,但不同下图4.在“男生视图”上弹鼠标右键,选择“打开视图”。

结果如下所示:将实验结果截图,写入实验报告中5.用类似的方法创建一个“女生视图”,该视图是性别为“女”的学生姓名、年龄、性别。

将实验结果截图,写入实验报告中6.从货物表(编号, 名称, 产地,价格,数量),查询货物名称为“麻辣鱼”的产地和价格。

查询语句如下:use 商品管理Select 名称,产地,价格from 货物表where 名称= '麻辣鱼'参考上题的方式,创建为名称是“麻辣鱼视图”的一个视图,视图中包括名称,产地,价格将实验结果截图,写入实验报告中7.查询货物表中货物名称中以“麻辣”开头的商品名称,产地,价格。

查询语句如下:use 商品管理Select 名称,产地,价格from 货物表where 名称like '麻辣%'go参考上题的方式,创建为名称是“麻辣商品视图”的一个视图,视图中包括名称,产地,价格将实验结果截图,写入实验报告中8、从学生(学号、姓名、年龄、性别),选修(学号、课程号、成绩)中找出成绩>80的学生姓名、课程号和分数Use 学籍管理select 姓名,课程号,成绩from 学生, 选修where 学生.学号=选修.学号and 成绩>80参考上题的方式,创建为名称是“优秀学生视图”的一个视图,将实验结果截图,写入实验报告中9.视图的查看。

实验4视图的定义和使用

实验4视图的定义和使用

实验4视图的定义和使用一实验题目:视图的定义和使用二实验目的:加深对视图的理解,熟练视图的定义、查看、修改等操作三实验内容及要求:(从下面10个题目中选一个)题目一:学生(学号,年龄,性别,系名)课程(课号,课名,学分,学时)选课(学号,课号,成绩)1 根据上面基本表的信息定义视图显示每门课的课名、选课人数、平均成绩2 观察基本表数据变化时,视图中数据的变化。

3 利用视图,查询平均成绩最高的学生。

题目二:图书(书号,书名,价格,出版社)读者(卡号,姓名,年龄,所属单位)借阅(书号,卡号,借阅日期)1 根据上面基本表的信息定义视图显示每本书的书名、借阅次数2 观察基本表数据变化时,视图中数据的变化。

3利用视图,查询借阅次数最多的书。

题目三:商品(编号,品名,进价,库存,售价,厂商编号)顾客(卡号,姓名,电话,积分)厂商(编号,厂址,名称、电话)销售(顾客卡号,商品编号,数量,日期)1 根据上面基本表的信息定义视图显示每种商品的品名、销售数量2 观察基本表数据变化时,视图中数据的变化。

3利用视图,查询销售数量最高的商品。

题目四:图书(书号,书名,作者编号,价格,出版社编号)作者(编号,姓名,电话)出版社(编号,出版社名称,地址)1 根据上面基本表的信息定义视图显示每个出版社的名称、出版书的数量2 观察基本表数据变化时,视图中数据的变化。

3利用视图,查询出版书最多的出版社题目五:零件(编号,名称,颜色,生产车间号)车间(编号,名称,人数,主任)产品(编号,名称,车间编号)使用(产品编号,使用零件编号,个数)1 根据上面基本表的信息定义视图显示每门课的课名、选课人数、平均成绩2 观察基本表数据变化时,视图中数据的变化。

3利用视图,查询选课人数最多的课。

题目六:药品(编号,名称,价格,厂商)处方(药品编号,数量,医生编号)医生(编号,姓名,科室,职称)1 根据上面基本表的信息定义视图显示每种药品的品名、销售金额2 观察基本表数据变化时,视图中数据的变化。

实验九、视图的使用

实验九、视图的使用

一、实验目的
1.掌握视图的基本概念,掌握视图的创建、修改和删除。

2.掌握对视图进行查询和更新。

二、实验内容
1.使用企业管理器创建一个名为“view_1”视图,内容是显示学生表Student 中95001的学生的学号、姓名、性别和专业名称。

2.使用查询分析器创建一个名为“view_2”的视图,内容是显示学生表中没有选修课程的学生的学号、姓名和班级,并且为该视图加密。

步骤:
3.使用查询分析器修改名为“view_1”的视图,内容是显示学生表中男生的学号、姓名、性别和班级,并且以后所有对该视图的更新操作都必须符合所设定的条件。

步骤:
4.查询视图“view_1”中班级为95032的所有信息。

步骤:
结果:
5.向视图“view_1”中的所有字段插入一条记录。

步骤:
结果:。

实验三 视图的定义和操作

实验三 视图的定义和操作

视图的定义和操作实验报告一、实验项目名称视图的定义和操作二、实验目的理解视图的概念,掌握视图的使用方法三、实验环境1.硬件:网络实验室2.软件:Windows98/2000等操作系统,安装SQL Server 2000个人版或企业版四、实验内容1.参照SQL查询实验中完成的内容,按如下要求设计视图:1)基于单个表按投影操作定义视图2)基于单个表按选择操作定义视图3)基于单个表按选择和投影操作定义视图4)基于多个表根据连接操作定义视图5)基于多个表根据嵌套查询定义视图6)定义含有虚字段的视图2.分别在定义的视图上进行查询、插入、更新和删除操作,分情况讨论哪些操作可以成功完成,哪些操作不能完成,并分析原因。

五、实验步骤1.在企业管理器中创建视图:1)在企业管理器,打开“视图设计器”。

2)单击工具栏上的“添加表”按钮,将表添加到视图设计器中。

3)根据新建视图的需要,从表中选择视图引用的列。

4)在网格窗格中的“准则”栏中设置过滤记录的条件。

5)设置视图的其他属性。

6)在视图设计器窗口中,检查SQL语法。

7)最后,单击“保存”按钮,为视图指定名称。

关闭“视图设计器”。

2.在查询分析器中用SQL语句创建视图CREATE VIEW view_name [ ( column [ ,...n ] ) ]ASselect_statement[ WITH CHECK OPTION ]六、源程序清单、测试数据、结果1.1 基于单个表按投影操作定义视图Book关系在书名、作者两个属性上的投影:1.2 基于单个表按选择操作定义视图查询单价>20的图书单价:1.3 基于单个表按选择和投影操作定义视图查询单价>20的书名:1.4 基于多个表根据连接操作定义视图borrow.借书证号=reader.借书证号的等值连接:1.5 基于多个表根据嵌套查询定义视图2.分别在定义的视图上进行分情况讨论哪些操作可以成功完成,哪些操作不能完成,并分析原因。

数据库原理实验报告

数据库原理实验报告

计算机与信息学院数据库原理实验报告专业:计算机科学与技术班级:2012级本科班学号:*****姓名:指导教师:2014年06月18 日实验项目列表计算机与信息学院实验报告纸实验一数据库创建与管理一、实验目的与要求1、熟练掌握SSMS中界面方式创建和管理数据库。

2、熟练掌握SSMS查询编辑器T-SQL语句创建和管理数据库。

3、熟练掌握备份和还原数据库。

二、实验内容1、界面方式创建和管理数据库(1)创建数据库(2)修改数据库(3)删除数据库2、利用企业管理器备份和还原数据库(1)备份数据库(2)还原数据库3、T-SQL语句方式创建和管理数据库(1)创建SPJ数据库:在SSMS中“新建查询”,输入以下语句并运行CREATE DATABASE SPJON(NAME=’SPJ_Data’,FELENAME='C:\Program Files\Microsoft SQL Server\MSSQL\data\SPJ_Data.MDF' ,SIZE = 3,MAXSIZE = 10,FILEGROWTH = 10%)LOG ON(NAME = 'SPJ_Log', FILENAME = 'C:\Program Files\Microsoft SQL Server\MSSQL\data\SPJ_Log.LDF' ,SIZE = 1,FILEGROWTH = 10%)(2)修改SPJ数据库:在查询分析器中输入以下语句并运行ALTER DATABASE SPJMODIFY FILE(NAME='SPJ_Data',SIZE=4,ALTER DATABASE SPJADD FILE(NAME='SPJ_Data_2', FILENAME='C:\Program Files\Microsoft SQL Server\MSSQL\Data\SPJ_Date_2.ndf',SIZE=1,MAXSIZE=10,FILEGROWTH=10%)(3)删除SPJ数据库:DROP DATABASE SPJ4、界面方式创建数据库XSBOOK,写出操作过程。

实验6 数据库视图

实验6 数据库视图

实验6 数据库视图一、实验目的:通过该实验掌握创建视图、使用视图的方法。

二、实验原理视图是一种虚拟存在的表,对于使用视图的用户来说基本上是透明的。

视图并不在数据库中实际存在,行和列数据来自定义视图的查询总使用的表,并且是在使用视图时动态生成的。

创建视图CREATE VIEW视图名(列1,列2...)ASSELECT (列1,列2...)FROM ...[WITH CHECK OPTION]注意1.可以通过视图插入数据,但是只能基于一个基础表进行插入,不能跨表更新数据。

2.视图不是表,不保存数据,只是一张虚拟的表,源表的数据发生变化后,视图的结果也同步发生变化。

3.一般情况下,在创建有条件限制的视图时,加上“WITH CHECK OPTION”命令。

不鼓励直接对视图进行修改(插入数据,更改数据及删除数据)三、实验内容及方法实验平台操作系统:win7,数据库管理平台:mysql5.6或者mysql8,实验用数据库:老师提供的数据库脚本TradeDBSQL.txt1.创建统计每笔订单的订购量的视图CREATE VIEW Order1_tASSELECTOrderID,Sum(ROUND(`OrderDetails`.UnitPrice*Quantity*(1-Discount))) AS SubtotalFROM OrderDetailsGROUP BY OrderID;检查视图结果mysql> select * from Order1_t;mysql> show tables;mysql>desc Order1_t;2. 创建一个视图SalesTotals调用1题的视图CREATE VIEW `SalesTotals`ASSELECTOrder1_t.Subtotal AS SaleAmount,Orders.OrderID,panyName,Orders.ShippedDateFROM CustomersJOIN Orders ON Customers.CustomerID = Orders.CustomerID JOIN Order1_t ON Orders.OrderID = Order1_t.OrderID;1)统计1997年单笔订单超过超过2500的客户公司名,订单编号及订购量提示:select * from `SalesTotals` where SaleAmount>3500 and ShippedDate BETWEEN '1997-01-01' And '1997-12-31';或者select * from `SalesTotals` where SaleAmount>3500 and year(ShippedDate)=1997;2)查询1995年单笔订单超过超过5000的客户公司名,订单编号及订购量3)统计1997年每个客户的订购量提示:group by CompanyName;3.创建视图SalesTotals1997CREATE VIEW `SalesTotals1997`ASSELECTpanyName As 公司名,sum(Order1_t.Subtotal) AS 订购量FROM Customers,orders,order1_twhere Customers.CustomerID=Orders.CustomerID and Orders.OrderID = Order1_t.OrderID AND year(Orders.ShippedDate) =1997group by panyName;4.统计1997年产品销售情况CREATE VIEW `1997年产品销售情况`ASSELECTCategories.CategoryName as 产品类别,Products.ProductName as 产品名称,Sum(ROUND(`OrderDetails`.UnitPrice*Quantity*(1-Discount))) AS 销售量FROM CategoriesJOIN Products On Categories.CategoryID = Products.CategoryIDJOIN `OrderDetails` on Products.ProductID = `OrderDetails`.ProductIDJOIN `Orders` on Orders.OrderID = `OrderDetails`.OrderIDWHERE Orders.ShippedDate BETWEEN '1997-01-01' And '1997-12-31' GROUP BY Categories.CategoryName, Products.ProductName;检查视图:select * from `1997年产品销售情况`(1) 写一个视图名为'1997年各产品类别销售情况', 要求统计1997年各产品类别销售情况提示:对于`1997年产品销售情况` 视图进行按产品类别进一步统计,group by ‘产品类别’select 产品类别, sum(销售量) as '类别销售量'from `1997年产品销售情况`group by 产品类别;(2) 将其改造为统计1995年下半年产品销售情况(3)将`1997年产品销售情况`的视图定义中的join 连接都改为等值连接,改造后的视图命名为`1997年产品销售情况2`例如:from Categories JOIN Products On Categories.CategoryID = Products.CategoryID 改为from Categories, Productswhere Categories.CategoryID = Products.CategoryID检查是否改造成功。

数据库视图实验报告

数据库视图实验报告

实验4 数据库视图实验一.实验目的本实验的目的是使学生掌握视图的定义与维护操作,加深对视图在关系数据库中的作用的理解。

二.相关知识视图是根据子模式建立的虚拟表。

一个视图可以由一个表构造,也可以由多个表构造。

利用企业管理器和视图创建向导进行创建,查看和修改视图就如同对表的操作一样,非常容易。

三.实验内容本实验的主要内容是:1)创建和删除视图2)查询和更新视图具体完成以下例题。

例1 建立信息系学生的视图例 2 建立信息系学生的视图,并要求进行修改和插入操作时仍须保证该视图只有信息系的学生。

例3 建立信息系选修了’C1’号课程的学生视图例4 建立信息系选修了’C1’号课程且成绩在90分以上的学生视图例5 定义一个反映学生出生年份的视图四.实验步骤例1 建立信息系学生的视图程序:create view is_studentasselect sno,sname,sagefrom studentwhere sdept='is'例 2 建立信息系学生的视图,并要求进行修改和插入操作时仍须保证该视图只有信息系的学生。

程序:create view is_studentasselect sno,sname,sagefrom studentwhere sdept='is'with check option例3 建立信息系选修了’C1’号课程的学生视图程序:create view is_s1asselect sno,sname, gradefrom student,scwhere sdept='is'and student.sno=sc.sno and o='1'例4 建立信息系选修了’C1’号课程且成绩在90分以上的学生视图程序:create view is_s2asselect sno,sname,gradefrom is_s1where grade>=90例5 定义一个反映学生出生年份的视图程序:create view bt(sno,sname,sbirth)asselect sno,sname,240-sagefrom student。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验六视图的定义及使用实验实验报告实验任务
(一)建立视图(运行并观察结果)
1.建立信息系学生的视图IS_student。

CREATE VIEW IS_Student
AS
SELECT Sno,Sname,Sage
FROM Student
WHERE Sdept='IS'
2.建立信息系选修了1号课程的学生的视图IS_S1。

CREATE VIEW IS_S1(Sno,Sname,Grade)
AS
SELECT Student.Sno,Sname,Grade
FROM Student,SC
WHERE Sdept='IS'AND
Student.Sno=SC.Sno AND
o='1';
3.建立信息系选修了1号课程且成绩在90分以上的学生的视图IS_S2。

CREATE VIEW IS_S2
AS
SELECT Sno,Sname,Grade
FROM IS_S1
WHERE Grade>=90
4.建立一个反映学生出生年份的视图BT_S。

CREATE VIEW BT_S(Sno,Sname,Sbirth)
AS
SELECT Sno,Sname,2004-Sage
FROM Student
5.将学生的学号及他的平均成绩定义为一个视图S_G。

CREATE VIEW S_G(Sno,Gavg)
AS
SELECT Sno,AVG(Grade)
FROM SC
GROUP BY Sno
6.将课程的课号及选修人数定义为一个视图C_XIU。

CREATE VIEW C_XIU(Cno,Scount)
AS
SELECT Cno,COUNT(*)
FROM SC
GROUP BY Cno
(二)查询视图(运行并观察结果)
1.在信息系学生的视图中找出年龄小于20岁的学生。

SELECT Sno,Sage
FROM IS_Student
WHERE Sage<20
2.查询信息系选修了1号课程的学生。

SELECT IS_Student.Sno,Sname
FROM IS_Student,SC
WHERE IS_Student.Sno=SC.Sno AND
o='1'
3.在S_G中查询平均成绩在90分以上的学生的学号和平均成绩。

SELECT*
FROM S_G
WHERE Gavg>=90
4.在C_XIU中查询选修人数在2人以上的课程号。

SELECT Cno
FROM C_XIU
WHERE Scount>=2
(三)更新视图(运行并观察结果)
【注意】数据未更新前,视图IS_Student内的数据:
1.将信息系学生视图IS_Student中学号为95002的学生姓名改为’刘辰’。

UPDATE IS_Student
SET Sname='刘辰'
WHERE Sno='95002'
数据更新后,视图IS_Studnt内数据:
2.向信息系学生视图IS_S中插入一个新的学生记录,其中学号为95029,姓名为赵新,年龄为20。

INSERT
INTO Student(Sno,Sname,Sage,Sdept)
VALUES('95029','赵新',20,'IS')
3.删除信息系学生视图IS_S中学号为95029的记录。

DELETE
FROM IS_Student
WHERE Sno='95029'
(四)删除视图(运行并观察结果)
【注意】没有删除任何视图前,数据SC内所有已建立的视图:
1.删除IS_S1视图。

DROP VIEW IS_S1
2.删除BT_S视图。

DROP VIEW BT_S
将以上SQL语句存盘备查。

【实验报告结束!】。

相关文档
最新文档