数据库实验报告视图

合集下载

数据库的视图操作实验报告

数据库的视图操作实验报告

实验(四)数据库的视图操作实验一、实验目的和要求(1)掌握SQL Server中的视图创建向导和图表创建向导的使用方法;(2)加深对视图和SQL Server图表作用的理解。

(3)掌握数据库安全性的操作方法。

二、实验内容和原理1. 基本操作实验(1)在SQL Server企业管理器中调出Create View Wizard(创建图表向导),按下列Transact-SQL描述的视图定义,创建借阅_计算机图书视图。

CREATE VIEW 借阅_计算机图书AS SELECT 图书.*,借阅.*FROM 图书,借阅WHERE图书.编号=借阅.书号AND图书.类别=‘计算机’(2)在SQL server企业管理器中调出Create View Wizard(创建图表向导),完成在图书-读者数据库中建立一个图书_借阅图表操作。

要求该图表包括图书和借阅两个表,并包括图书与借阅之间的“图书.书号=借阅.书号”外码与被参照表之间的关联。

(3)查看上述实验结果。

如果结果有误,予以纠正。

2. 提高操作实验在学生-课程数据库中用Transact-SQL语句描述下列视图定义。

(1)从学生表中建立查询所有男(女)生信息的视图STU_SEX。

视图的列名为SNO、SNAME、SSEX和SAGE。

(2)从课程表中建立查询所有课程先修课信息的视图课程_PRE。

视图的列名为课程号、课程名称和先修课名称。

(3)从选修表中建立查询成绩大于等于80信息的视图STU_CJ1。

视图的列名为学号、课程号和成绩。

(4)从学生、选修和课程三个表建立查询学生选修情况的视图STU_CJ2。

视图的列名为姓名、课程名称和成绩。

(5)从学生、选修和课程三个表建立查询学生选修情况并且成绩小于80的视图STU_CJ3。

视图的列名为姓名、课程名称和成绩。

(6)利用Transact-SQL命令修改视图STU_SEX。

把视图的列名改为学号、姓名、性别和年龄,把加上“WITH CHECK OPTION”选项。

数据库视图实验报告

数据库视图实验报告

数据库视图实验报告一、实验目的本次实验的主要目的是深入理解数据库视图的概念、特点和用途,并通过实际操作掌握如何创建、修改和使用视图来优化数据库的查询和管理。

二、实验环境本次实验使用的数据库管理系统为 MySQL 80,操作系统为Windows 10。

三、实验原理1、视图的定义视图是一种虚拟表,它是从一个或多个基本表(或视图)导出的表。

视图本身并不包含数据,而是根据定义从基本表中动态获取数据。

2、视图的优点提供数据的逻辑独立性:当基本表的结构发生变化时,只要视图的定义不变,用户通过视图所得到的数据仍然是一致的。

简化数据查询和操作:可以将复杂的查询定义为视图,使用户能够更方便地获取所需的数据。

增强数据安全性:可以通过视图限制用户对敏感数据的访问,只展示用户有权查看的部分数据。

四、实验内容与步骤1、创建视图使用以下语句创建一个名为`student_info_view` 的视图,该视图包含学生表`students` 中的学号、姓名、年龄和专业信息:```sqlCREATE VIEW student_info_view ASSELECT student_id, student_name, age, majorFROM students;```2、查询视图通过以下语句查询创建的视图:```sqlSELECT FROM student_info_view;```3、修改视图修改视图的定义,增加一个成绩列`grade` ,语句如下:```sqlALTER VIEW student_info_view ASSELECT student_id, student_name, age, major, gradeFROM students;```4、删除视图使用以下语句删除视图:```sqlDROP VIEW student_info_view;```五、实验结果与分析1、创建视图成功后,通过查询视图能够获取到预期的学生信息,证明视图的定义和数据提取是正确的。

《数据库》实验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 ]

实验三 数据库中的数据查询及视图操作实验报告

实验三  数据库中的数据查询及视图操作实验报告

实验三数据库中的数据查询及视图操作实验报告实验三数据库中的数据查询及视图操作实验报告一、实验目的本实验的主要目的是熟悉数据库中的数据查询和视图操作。

通过本实验,我们可以掌握使用SQL语句进行数据查询和创建视图的方法,进一步提高对数据库的操作能力。

二、实验环境本实验使用MySQL数据库管理系统,并在Windows操作系统下进行实验。

三、实验内容本实验主要包括以下内容:1. 数据查询:使用SELECT语句查询数据库中的数据,并进行排序、过滤和聚合操作。

2. 视图操作:创建和删除视图,以及对视图进行查询和更新操作。

四、实验步骤与结果1. 数据查询首先,我们需要连接到数据库,并选择要查询的表。

假设我们选择的表名为"students",包含以下字段:学号、姓名、性别、年龄、班级。

a. 查询所有学生的信息:```sqlSELECT * FROM students;```执行以上SQL语句后,我们可以得到所有学生的信息,包括学号、姓名、性别、年龄和班级。

b. 查询男生的信息:```sqlSELECT * FROM students WHERE 性别 = '男';```执行以上SQL语句后,我们可以得到所有性别为男的学生的信息。

c. 查询年龄小于20岁的学生的姓名和班级:```sqlSELECT 姓名, 班级 FROM students WHERE 年龄 < 20;```执行以上SQL语句后,我们可以得到年龄小于20岁的学生的姓名和班级。

d. 查询学生按照年龄降序排列的结果:```sqlSELECT * FROM students ORDER BY 年龄 DESC;```执行以上SQL语句后,我们可以得到按照年龄降序排列的学生信息。

e. 查询学生按照班级分组,并统计每个班级的人数:```sqlSELECT 班级, COUNT(*) AS 人数 FROM students GROUP BY 班级;```执行以上SQL语句后,我们可以得到每个班级的人数统计结果。

数据库实验——视图的创建与使用

数据库实验——视图的创建与使用

数据库实验——视图的创建与使用数据库是一种利用计算机系统来管理、存储、处理数据的技术,视图则是在数据库中使用的一种技术。

视图是一种虚拟表,实际上并不存储数据,而是使用查询语句从一个或多个表中提取所需的数据。

在本次实验中,将学习视图的创建和使用。

一、实验目的1. 理解视图的概念和特点;2. 掌握视图的创建和使用方法;3. 熟悉视图的应用场景。

二、实验内容1. 视图的创建方法;2. 视图的使用方法;3. 视图的实际应用。

三、实验过程1. 视图的创建方法视图的创建方法如下:CREATE VIEW [视图名称] AS [查询语句];例如,要从学生表中提取所有学生的姓名和学号,则可以使用以下语句创建视图:CREATE VIEW student_info AS SELECT sname, sno FROM student;这样,就创建了一个名为student_info的视图,其中包含学生表中的姓名和学号两列数据。

2. 视图的使用方法创建视图之后,可以像使用普通表一样使用视图。

例如,可以使用SELECT语句来查询视图中的数据,如下所示:SELECT * FROM student_info;这样就可以查询出student_info视图中的所有数据。

3. 视图的实际应用视图在实际应用中有很多用途,例如:(1)简化查询语句当数据库中有较多的关联表时,查询语句会变得非常复杂。

此时,可以使用视图来简化查询语句。

例如,以下语句查询学生所在的班级名称:SELECT s.sname, ame FROM student s INNER JOIN class c ON s.classno = c.classno;使用视图后,查询语句可以变得更简洁:CREATE VIEW student_class AS SELECT s.sname, ame FROM student s INNER JOIN class c ON s.classno = c.classno;SELECT * FROM student_class;(2)保护数据安全例如,可以创建只包含学生姓名和学号的视图,而不包含其他敏感数据,以确保保护学生的隐私。

数据库原理实验报告-实验四-视图与索引

数据库原理实验报告-实验四-视图与索引

《数据库原理》实验报告题目:实验四视图与索引学号班级日期2016.10.20一、实验内容、步骤以及结果1.在Student数据库中,利用图形用户界面,创建一个选修了“数据库原理”课程并且是1996年出生的学生的视图,视图中包括学号,性别,成绩三个信息。

(5分)2.用两种不同的SQL语句创建第五版教材第三章第9题中要求的视图(视图名:V_SPJ)(10分,每种方法5分)。

--第一种方法CREATE VIEW V_SPJ ASSELECT sno,pno,qty FROM SPJWHERE jno=(SELECT jno FROM JWHERE jname ='');GO--删除建好的视图DROP VIEW V_SPJ;GO--第二种方法CREATE VIEW V_SPJ ASSELECT sno,pno,qtyFROM SPJ,JWHERE J.jno=SPJ.jno AND J.jname='';3.用SQL语句完成第五版教材第三章第11题中的视图查询(10分,每小题5分)。

11.请为三建工程项目建立一个供应情况的视图,包括供应商代码(SNO)、零件代码(PNO)、供应数量(QTY)。

针对该视图VSP完成下列查询:(1)找出三建工程项目使用的各种零件代码及其数量。

(2)找出供应商S1的供应情况。

4.用SQL语句完成视图的数据更新。

(15分,每题5分)(1)给视图V_SPJ中增加一条数据。

提示:-SPJ表中JNO允许为空时,数据可以插入基本表,此时JNO为NULL,由于JNO 为NULL,所以视图中没有该条数据。

-SPJ表中JNO不能为空时,可以使用instead of触发器实现。

(2)修改视图V_SPJ中的任意一条数据的供应数量。

(3)删除视图V_SPJ中的任意一条数据(注意所创建视图可以视图消解时,才能正常删除,否则会删除失败;也可以考虑用instead of触发器实现)。

数据库实验报告_数据库的视图和图表的定义及使用

数据库实验报告_数据库的视图和图表的定义及使用

贵州大学实验报告学院:计信学院专业:网络工程班级:101 姓名学号实验组实验时间05.30 指导教师罗昊成绩实验项目名称数据库的视图和图表的定义及使用实验目的使学生掌握SQL Server中的视图创建向导和图表创建向导的使用方法,加深对视图和SQL Server图表作用的理解。

实验要求本实验属于验证型实验,通过实验,加强对课堂讲授知识的理解。

开始实验前,必须进行预习,写出实现所有查询要求的SQL语句。

实验过程中,先集中由老师进行具体要求和注意事项的讲解,然后各自独立在机器上完成实验。

实验过程中出现问题,在实验指导老师帮助下解决。

实验原理 1、创建视图假设在图书_读者数据库中已经建立了图书、读者和借阅3个表,它们的结构为:图书(书号,类别,出版社,作者,书名,定价);借阅(书号,读者借书证号,借阅日期);读者(借书证号,姓名,单位,性别,电话)如果要在上述3个表的基础上建立一个视图,取名为读者_VIEW,其操作用SQL语句表示为:CREATE VIEW 读者_VIEW AS SELECT 图书.*,借阅.* FROM 图书,借阅,读者WHERE 图书.书号=借阅.书号 AND 借阅.读者借书证号=读者.借书证号;利用SQL Srever 2000中提供的视图创建向导,来创建读者_VIEW视图。

2、查看和修改视图视图创建好后,就可以利用它进行查询信息了。

如果发现视图的结构不能很好地满足要求,还可以在企业管理器中对它进行修改3、删除视图删除视图的方法是:首先要在企业管理器中,将鼠标指针指向数据库中的视图文件夹,单击右键。

在随后出现的弹出菜单中,选择“删除”项,会出现删除视图对话框。

选中欲删除的视图,单击“全部移出”按钮,被选中的视图就会从视图中被移出。

4、创建关联表假如要在图书_读者数据库中建立一个读者_借阅_图书关系,要求该图表包括图书、借阅和读者三个表,并包括它们之间的“图书.书号=借阅.书号 AND 借阅.读者借书证号=读者.借书证号”的外码与被参照表之间的关联,即用关联表实现上述视图的功能。

数据库实验报告实验四数据更新与视图

数据库实验报告实验四数据更新与视图

实验四数据更新与视图一、实验目的1、掌握数据更新语句的使用;2、掌握视图操作的基本方法和应用,理解基于视图的查询和数据更新操作的过程。

二、预备知识1.数据更新基本语句及其格式(1)插入操作SQL的数据插入语句INSERT有两种形式:①插入单个元组,使用命令:INSERT INTO 基本表名(列名表)V ALUES (元组)②插入子查询的结果:INSERT INTO 基本表名(列表名)查询语句(2)修改操作当需要修改指定关系中元组的值时,可使用下列语句实现:UPDA TE 基本表名SET 列名1=值表达式1[,列名2=值表达式2…][WHERE 条件表达式](3)删除操作删除关系中满足条件的元组语句格式如下:DELETE FROM <表名>Where <条件表达式>三、实验内容1.在实习二创建的“gongcheng”数据库中使用SQL语句完成以下操作:(1)现有一供应商,代码为S9、姓名为英特尔、所在城市西安,供应情况如下:供应零件P5给工程J7数量为600,供应零件P4给工程J4数量为500,请将此供应商的信息和供应信息插入数据库。

SELECT * FROM JPSSELECT * FROM SINSERT INTO S (SNO,SNAME,Ctiy) V ALUES('S9','英特尔','西安')INSERT INTO jps (SNO,PNO,JNO,QTY) V ALUES('S9','P5','J7',600)INSERT INTO jps (SNO,PNO,JNO,QTY) V ALUES('S9','P4','J4',500)(2)请将北京供应商的供应数量加20UPDA TE JPS SET QTY=QTY+20 WHERE JNO IN(SELECT JNO FROM J WHERE Ctiy='北京')(3)零件P3已经停产,请将P3的相关信息从数据库中删除。

数据库实验实验6视图1

数据库实验实验6视图1

实验六数据库的视图一、实验目的1.掌握创建视图的SQL语句的用法。

2.掌握使用企业管管理器创建视图的方法。

3.掌握使用创建视图向导创建视图的方法。

4.掌握修改视图的方法。

二、实验内容1、在企业管理器里创建视图以建立客户编号为‘K00201’的客户全部信息的视图KH操作为例:(1)执行‚工具—向导‛命令图7.1(2)选择表中的字段(3)‚定义限制‛对话框,限制条件图7.3 (4)查询视图所得的结果SELECT * FROM KH练习:建立关于销售情况的视图XS,包括产品名称,客户名称,订购数量并查询结果。

2. 在企业管理器里修改视图如将视图KH改为客户编号为‘XXX’ (XXX自己输入相应的值) (1)执行‚设计视图‛命令(2)选择要在视图中引用的列(3)输入指定要检索行的准则(4)执行‚运行‛命令查看结果集图7.13 3.使用T-SQL语句更新视图3. 使用企业管理器删除视图图7.15 执行“删除”命令练习:在查询分析器中用T-SQL命令完成以下操作: 建立订购数量大于200的销售情况视图XS1(利用XS) 并查询结果CREATE VIEW XS1ASSELECT *FROM XSWHERE QUANTITY >200建立各产品的订购数量的总数的视图SL,包括产品编号,订购总量并查询结果CREATE VIEW SLASSELECT PCODE,OQUANTITYFROMSALE查找订购数量=300的客户名称,(利用视图XS1)并查询结果SELECT CNAMEFROM XS1WHERE建立所在地为长沙的客户的视图KH1 CREATE VIEW KH1ASSELECT *FROM CUSTOMERWHERE通过视图KH1插入记录(‘K00203‘,’王府井’,’长沙’)并查询结果INSERTINTO KH1V AULES(‘K00203‘,’王府井’,’长沙’)INSERTINTO KH1(CNO,CNAME,SITE)V ALUES('K00204','大润发','上海')通过视图KH1插入记录(‘K00204‘,’大润发’,‘上海’)并查询结果CREATE VIEW XS1 ASSELECT *FROM XSWHERE QUANTITY >200UPDATE KH1SET C INSERTINTO KH1(CNO,CNAME,SITE)V ALUES('K00204','大润发','上海') 将SL视图中C20012产品的总量更新为30。

数据库实验五:视图的应用

数据库实验五:视图的应用

数据库实验五:视图的应用一、实验目的与要求:1.实验目的(1)理解视图的概念;(2)掌握视图的使用方法。

(3)理解视图和基本表的异同之处。

2.实验要求(1)参照实验五中完成的查询,按如下要求设计和建立视图:1)基于单个表按投影操作定义视图。

2)基于单个表按选择操作定义视图。

3)基于单个表按选择和投影操作定义视图。

4)基于多个表根据连接操作定义视图。

5)基于多个表根据嵌套操作定义视图。

6)定义含有虚字段的视图。

(2)分别在定义的视图设计一些查询(包括基于视图和基本表的连接或嵌套查询)。

(3)在定义的视图上进行插入、更新和删除操作,分情况讨论哪些操作可以成功完成,哪些操作不能完成,并分析原因。

(4)在实验报告中要给出具体的视图定义要求和操作要求,并针对各种情况做出具体的分析和讨论。

二、实验内容1、实验原理(1)视图是用SQL SELECT查询定义的,创建视图命令格式如下:CREATE VIEW <视图名> AS <SELECT-查询块>(2)删除视图的命令格式如下:DROP VIEW <视图名>2、实验步骤与结果(1)调出SQL Server2005软件的用户界面,进入SQL SERVER MANAGEMENT STUDIO。

(2)输入自己编好的程序。

(3)检查已输入的程序正确与否。

(4)运行程序,并分析运行结果是否合理和正确。

在运行时要注意当输入不同的数据时所得到的结果是否正确。

(5)输出程序清单和运行结果。

(1)参照实验五中完成的查询,按如下要求设计和建立视图:1)基于单个表按投影操作定义视图。

create view v asselect教师编号,姓名from教师create view v_order asselect*from教师where职称='教授'3)基于单个表按选择和投影操作定义视图。

create view v_cuss asselect教师编号,姓名,职称from教师where职称='教授'4)基于多个表根据连接操作定义视图。

数据库实验报告 索引和视图

数据库实验报告 索引和视图

西北师范大学计算机科学与工程学院学生实验报告2、在student表的studentno和classno列上创建唯一索引UQ-stu,若该索引已存在,则删除后重建。

然后输出student表中的记录,查看输出结果的顺序。

SQL代码:USE teachingGOIF EXISTS(SELECT name FROM sysindexes WHERE name='UQ_stu')DROP INDEX student.UQ_stuGOCREATE NONCLUSTERED INDEX UQ_stu ON student(studentno,classno)GOSELECT*FROM student实验结果:3、修改UQ-stu的索引属性,当执行多行插入操作时出现重复键值,则忽略该记录,且设置填充因子为80%SQL代码:USEteachingGOALTER INDEX UQ_stu ON student REBUILDWITH(PAD_INDEX=ON,FILEFACTOR=80,IGNORE-DUP_KEY=ON)GO实验结果:4、创建一个视图v-teacher,查询“计算机学院”所有教师的信息SQL代码:USE teachingGOCREATE VIEW v_teacherASSELECT*FROM teacherWHERE department='计算机学院'GOSELECT*FROM v_teacher实验结果:5、创建一个视图v-avgstu,查询每个学生的学号、姓名及平均分,并且按照平均分降序排序SQL代码:USE teachingGOCREATE VIEW v_avgstuASSELECT TOP(100)PERCENT student.studentno,studnt.sname,AVG(score.final)AS 'average'FROM student,scoreWHERE student.studentno=score.studentnoAND score.final IS NOT NULLGROUP BY student.studentno,student.snameORDER BY AVG(score.final)DESCGOSELECT*FROM v_avgstu实验结果:6、修改v-avgstu的视图定义,添加WITH CHECK OPTION选项SQL代码:USE teachingGOALTER VIEW v_avgstuASSELECT*FROM teacherWHERE department='计算机学院'WITH CHECK OPTIONGO实验结果:7、通过视图v-avgstu向基表teacher中分别插入数据(‘05039’,‘张馨月’,‘计算机应用’,‘讲师’,‘计算机学院’)和(‘06018’,‘李诚’,‘机械制造’,‘副教授’,‘机械学院’),并查看插入数据的情况SQL代码:USE teachingGOINSERT INTO v_teacherVALUES('05039','张馨月','计算机应用','讲师','计算机学院')INSERT INTO v_teacherVALUES('06018','李诚','机械制造','副教授','机械学院')SELECT*FROM v_teacherSELECT*FROM teacher实验结果:8、通过视图v-teacher将基表teacher中教师编号为05039的教师职称修改为“副教授”SQL代码:USE teachingGOUPDATE v_teacherSET prof='副教授'WHERE teacherno='05039'GOSELECT*FROM teacher实验结果:实验总结:通过本次实验掌握了索引、统计信息和视图等数据库对象的基本概念和基本操作。

数据库-第四次实验报告-视图-t-sql语句

数据库-第四次实验报告-视图-t-sql语句

数据库-第四次实验报告-视图-t-sql语句第一篇:数据库-第四次实验报告-视图-t-sql语句实验十报告创建视图实验目的1.掌握创建视图的SQL语句的用法。

2.掌握使用企业管管理器创建视图的方法。

3.掌握使用创建视图向导创建视图的方法。

4.掌握查看视图的系统存储过程的用法。

5.掌握修改视图的方法。

一.实验准备1.了解创建视图方法。

2.了解修改视图的SQL语句的语法格式。

3.了解视图更名的系统存储过程的用法。

4.了解删除视图的SQL语句的用法。

二.实验要求1.用不同的方法创建视图。

2.提交实验报告,并验收实验结果。

三.实验内容 1.创建视图(1)使用企业管理器创建视图① 在EDUC库中以“student”表为基础,建立一个名为“V_计算机系学生”的视图。

在使用该视图时,将显示“student”表中的所有字段.兰州大学数据库实验报告视图如下:(2)使用SQL语句创建视图① 在查询分析器中建立一个每个学生的学号、姓名、选修的课名及成绩的视图S_C_GRADE;Create VIEW S_C_GRADE ASSELECT student.sno,sname,cname,score FROM student,course,student_course WHERE student.sno=student_course.sno AND o=student_o;视图如下:②建立一个所有计算机系学生的学号、选修课程号以及平均成绩的视图COMPUTE_AVG_GRADE;Create VIEWCOMPUTE_AVG_GRADE ASSELECT student.sno,o,AVG(score)'平均成绩' FROM student,course,student_course WHERE student.sno=student_course.snoAND o=student_o AND student.dno='CS' GROUP BY student.sno,o;视图如下:2.修改视图(1)使用企业管理器修改视图在企业管理器中将视图COMPUTE_AVG_GRADE中改成建立在数学系的学生学号、选修课程号以及平均成绩的视图。

数据库实验报告3-视图操作和安全性控制

数据库实验报告3-视图操作和安全性控制

《数据库系统概论》实验报告实验3:视图操作和安全性控制一、实验目的1.掌握使用图形用户界面和SQL语言创建,操作和删除视图的方法。

2.掌握SQL Server中的安全性相关的登录名,角色以及用户的创建以及使用方法。

3.学会使用T-SQL语句对数据库和表操作的灵活控制功能。

二、实验内容1.在Student数据库中,利用图形用户界面,创建一个选修了数据库课程并且是1986年出生的学生的视图,视图中包括学号,性别,成绩这三个信息。

(5分)步骤:点击视图-》新建视图-》添加表-》选择题目中要求的信息-》添加相应条件。

见下图所示。

(1)(2)(3)(4)(5)2.用两种不同的SQL语句创建课本128页第11题中要求的视图(视图名:V_SPJ)(6分,每种方法3分)。

(1)用连接的方法:程序源码:运行结果:(2)带有IN谓词的子查询:程序源码:运行结果:3.用SQL语句完成课本128页第11题中对视图V_SPJ的查询。

3.1 找出三建工程项目使用的各种零件代码及其数量。

程序源码及结果:3.2 找出供应商S1的供应情况。

程序源码及结果:4.用T-SQL语句操作视图的数据。

(15分,每题5分)(1)给视图V_SPJ中增加一条数据(基本表中有插入的数据即可)。

(2)修改视图V_SPJ中的任意一条数据的供应数量。

(3)删除视图V_SPJ中的任意一条数据。

4.1 给视图V_SPJ中增加一条数据(基本表中有插入的数据即可)。

程序源码:运行结果:程序源码:运行结果:程序源码:运行结果:5.在图形用户界面中创建新登录名以及用户。

(20分,每题10分)5.1对于数据库company创建P148页第 8题中所需要用到的各个用户以及相关的关的登录名。

(假定有数据库company,库中有两个表e(职工表)和d(部门表)) 创建登录名步骤如下:(1)登录名的建立:(2)查看新建登录名(3)如上述操作,重复六次,得到见下图:创建用户名步骤如下:(1)建立用户名:(2)输入用户名:(3)选择登录名:(4)查找对象:(5)重复上述操作多次,得到以下结果:(6)对创建的数据库进行测试:5.2 用图形用户界面完成以下的权限勇赋予:a.用户王明对两个表有Select和Insert的权力。

数据库实验报告:视图 和索引

数据库实验报告:视图 和索引

一、实验步骤(一)附加上次实验所创建的数据库“db_Library”,并回顾该数据库的数据表信息。

(二)练习创建和管理视图1、使用管理控制台创建一个名为“计算机系借阅信息_VIEW”的视图,要求显示计算机系读者2011-1-1以后借阅的图书信息,包括“读者姓名”、“图书编号”和“借阅日期”三个字段。

打开sql server管理控制台窗口,打开新建视图对话框。

在添加表中添加tb_borrow和tb_reader表,在选中输出复选框中选中:读者编号,图书编号,借阅日期。

use db_library goselect * from 读者借阅信息_VIEWwhere 所在系='计算机'and 借阅日期>'2011_1_1'2、使用T-SQL语句创建一个名为“读者借阅信息_VIEW”的视图,要求显示所有的读者借阅信息,包括“读者编号”、“姓名”、“系部”、“图书编号”、“图书名称”和“借阅日期”等字段。

use db_library gocreate view 读者借阅信息_VIEW asselect tb_readder.读者编号,tb_reader.姓名,tb_reader所在系,tb_book.图书编号,tb_book.书名,tb_borrow.借阅日期 from tb_reader,tb_borrow,tb_bookwhere tb_reader.读者编号=tb_borrow.读者编号and tb_book.图书编号=tb_borrow.图书编号Select * from读者借阅信息_VIEW3、使用管理控制台查看“读者借阅信息_VIEW”视图的定义信息和依赖的对象。

打开管理控制台,在数据库“db_Library”下的“视图”对象;在左边窗口右击“读者借阅息_VIEW”该视图,在在窗口中选中“查看依赖关系”选项。

4、使用系统存储过程查看“计算机系续借阅信息_VIEW”视图的定义信息和依赖的对象。

数据库实验报告(附图)

数据库实验报告(附图)

实验一创建修改及删除数据库1、正确建立与服务器的连接首先查看应用服务器是否已经启动:开始菜单—〉程序—〉sqlserver—〉服务管理器,点击运行的红色按钮,启动服务。

2、建立数据库create database stuon primary (name=stu_data, --primary:表示此数据库文件为最主要文件,属于primary文件组,扩展名为.mdf,每个数据库中唯一-- filename='d:\sqlex\stu_data.mdf',--‘’:此处符号均为半角输入符号--size=10,--filename:用以指明数据库文件的具体物理位置及名称-- maxsize=50, --size:文件的初始大小--filegrowth=5),-- maxsize:文件的最大长度,如果此处为unlimited,表示文件可以无大小限制,直到增长至整个磁盘大小-- (name=stu1_data, --filegrowth:文件的增长量--filename='d:\sqlex\stu_data.ndf',size=20)log on(name=stu_log, --log:日志文件,其建立方式同数据库文件,扩展名为.ldf-- filename='d:\sqlex\stu_log.ldf',size=10,maxsize=50,filegrowth=5),(name=stu1_log,filename='d:\sqlex\stu1_log.ldf',size=5,maxsize=20,filegrowth=2)3.、使用查询分析器修改数据库alter database stu alter:用于修改数据库或表文件modify name=stud modify name:修改数据库名alter database studadd file(name=stud_data,add file:增加数据库中的次要文件,扩展名为.ndf filename='d:\sqlex\stud_data.ndf', 建立方式同建立主要文件size=5,maxsize=20),(name=stud1_data,filename='d:\sqlex\stud1_data.ndf',size=5,maxsize=20)alter database studadd log file (name=stud_log, add log file:增加日志文件filename='d:\sqlex\stud_log.ldf',size=5,maxsize=20),(name=stud1_log,filename='d:\sqlex\stud1_log.ldf',size=5,maxsize=20)alter database studmodify file (name=stud_data, modify file:修改数据库文件的基本属性size=30,maxsize=50)4、显示或修改数据库文件的结构及各项属性数据库的快速察看:Sp_helpdb [数据库名] :如果后面不接具体数据库名称,会给出当前所有服务器所管理的系统及用户数据库;给出具体名称则显示具体数据库的文件组成。

数据库原理索引视图实验报告

数据库原理索引视图实验报告

数据库组成原理实验报告题目:索引、视图的定义院系:计算机科学与工程学院班级:姓名:学号:一、实验题目索引、视图的定义二、实验日期2014年10月25日三、实验目的及要求掌握嵌套查询语句的运用,掌握使用T -SQL语句创建视图的方法,包括视图的建立、删除、修改;了解如何应用视图有选择地查看所需数据,并熟悉通过视图更改数据表中数据的方法。

掌握创建索引的方法。

四、实验环境Sqlserver2008,windows xp。

五、实验内容在数据库TestDB中,基于表"项目数据表"和"员工数据表"创建视图,要求:(1)视图名为"员工项目"。

(2)包含字段"编号"、"姓名"、"名称"和"开始日期"。

(3)字段别名分别是"员工编号"、”员工姓名"、"项目名称"、"项目开始日期"。

六、实验步骤在数据库TestDB中,基于表"项目数据表"和"员工数据表"创建视图,要求为:(1)视图名为"员工项目"。

(2)包含字段"编号"、"姓名"、"名称"和"开始日期"。

(3)字段别名分别是"员工编号"、”员工姓名"、"项目名称"、"项目开始日期"。

(1)打开查询分析器。

在查询窗口书写CREATE VIEW语句创建视图,并指定字段别名:USE TestDBGOCREATE VIEW员工项目(员工编号,员工姓名,项目名称,项目开始日期) ASSELECT a·编号,a·姓名,b·名称,b·开始日期,FROM员工数据表AS a INNER JOIN项目数据表AS bON a·编号=b·负责人WHERE a·编号=b·负责人GO(2)使用INSERT语句通过视图向员工数据表中添加一条记录,要求"姓名"字段值为"马中兴"。

实验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检查是否改造成功。

数据库实验—视图

数据库实验—视图

湖南科技学院电信学院实验报告实验项目视图课程名称数据库原理时间16 年5 月10 日第12 周第 1.2 节地点E404201308002班级通信1301姓名陶建敏学号107一、实验要求能在SQL Server 2012 的环境中熟练的进行表的创建和管理。

二、实验目的1)掌握在SQL Server Management Studio 中对表进行插入、修改和删除数据的操作。

2)掌握使用T-SQL 语句对表进行插入、修改和删除数据的操作。

3)重点掌握带查询的更新方法。

三、实验环境1) 硬件设备:PC 机一台2) 操作系统:Windows 73) 应用工具:SQL Server 2012四、实验内容及程序代码对于“Student ”数据库的三个基本表:S(Sno,Sname,Sage,Ssex,Sdept),C(Cno,Cname,Credit,Semester),SC(Sno,Cno,Grade)1、请用SQL 语句按要求创建视图:(1 )查询学生的学号、姓名、所在系、课程号、课程名、课程学分。

create view 学生视图1( 学号,姓名,所在系,课程号,课程名,课程学分) asselect Student.Sno,Sname,Sdept,o,Cname,Ccreditfrom Student join SC on Student.Sno=SC.Snojoin Course on o=oselect * from 学生视图1(2 )查询学生的学号、姓名、选修的课程名和选课成绩。

create view 学生视图2( 学号,姓名,选修的课程名,选课成绩)asselect Student.Sno,Sname,Cname,Gradefrom Student join SC1 on Student.Sno=SC.Snojoin Course on o=oselect * from 学生视图2(3 )统计每个学生的选课门数,要求列出学生学号和选课门数。

数据库视图实验报告

数据库视图实验报告

实验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)。

大连海事大学
数据库原理课程实验大纲
实验名称:实验五视图实验学时: 2
适用专业:智能科学与技术
实验环境: Microsoft SQL server 2014
1实验目的
(1)掌握SQL视图语句的基本使用方法,如CREATE VIEW、DROP VIEW。

(2)掌握视图更新、WITH CHECK OPTION等高级功能的使用。

2实验内容
2.1 掌握SQL视图语句的基本使用方法
(1)创建视图(省略视图列名)。

(2)创建视图(不能省略列名的情况)。

(3)删除视图(RESTRICT / CASCADE)。

2.2 掌握视图更新和WITH CHECK OPTION的高级使用方法
(1)创建视图(WITH CHECK OPTION),并利用INSERT、DELETE和UPDATE语句加以验证。

(2)创建一个行列子集可更新视图,并利用INSERT、DELETE和UPDATE语句加以验证。

(3)创建一个不可能更新的视图,并利用更新语句验证该视图不可更新。

3实验要求
(1)深入复习教材第三章SQL有关视图语句。

(2)根据书上的例子,针对TPCH数据库模式设计各种视图语句,每种类型视图语句至少要设计一个,描述清楚视图要求,运行你所设计的视图语句,并截图相应的实验结果,每幅截图并要有较为详细的描述。

也可以按照附1所列示例做实验。

(3)实验步骤和实验总结中要详细描述实验过程中出现的问题、原因和解决方法。

(4)思考题:KingbaseES把视图的定义存储在那个系统表中?如何查看某个视图的定义?
4实验步骤
4.1 掌握SQL视图语句的基本使用方法
(1)创建视图(省略视图列名)。

(2)创建视图(不能省略列名的情况)。

(3)删除视图(RESTRICT / CASCADE)。

4.2 掌握视图更新和WITH CHECK OPTION的高级使用方法
(4)创建一个行列子集可更新视图,并利用INSERT、DELETE和UPDATE语句加以验证。

(5)创建视图(WITH CHECK OPTION),并利用INSERT、DELETE和UPDATE语句加以验证。

(6)创建一个不可能更新的视图,并利用更新语句验证该视图不可更新。

5总结与体会
5.1 实验中出现的问题及其解决方案
由于多次对视图进行不同的操作,有时需要删除视图重新建立,所以实验中出现了多次忘记删除视图的情况。

建立数据表格时,主键外键的设置不合理,导致了实验无法顺利进行,后上网查询,并仔细设置,解决问题
5.2 总结
实验前,数据库的建立也是很重要的,数据不能只为应付实验而建立,要在脑海中有一个大体的,切合实际的规划,这样才能充分了解发挥课堂上学到的知识。

5.3 体会
实验中不能粗心大意,对于数据的整体规划要有一个清晰的认识,特别是表与表之间的相互关联,主外键的作用就显得尤为重要。

本次实验让我不仅复习巩固了视图章节的内容,更让我认识到了知识全面性的重要。

附1:SQL视图语句
(1)创建视图(省略视图列名)。

创建一个“海大汽配”供应商供应的零件视图V_DLMU_PartSupp1,要求列出供应零件的编号、零件名称、可用数量、零售价格、供应价格和备注等信息。

CREATE VIEW V_DLMU_PartSupp1
AS
SELECT *
FROM PART
WHERE P_BRAND='海大汽配';
(2)创建视图(不能省略列名的情况)。

创建一个视图V_CustAvgOrder,按顾客统计平均每个订单的购买金额和零件种类数量,要求输出顾客编号,姓名,平均购买金额和平均购买零件种类数量。

CREATE VIEW V_CustAvgOrder
AS
SELECT CUSTKEY,C_NAME,A VG(O_TOTALPRICE) S,COUNT(L_QUANTITY)
FROM CUSTOMER,ORDERS,LINEITEM
WHERE CUSTOMER.CUSTKEY=ORDERS.CUSTKEY
AND ORDERS.ORDERKEY=LINETEM.ORDERKEY ;
(3)删除视图(RESTRICT / CASCADE)。

创建顾客订购零件明细视图V_CustOrdDetails,要求列出顾客编号、姓名、购买零件数、金额;然后在该视图的基础上,实现(2)中的视图V_CustAvgOrder;
然后删除利用RESTRICT选项删除视图V_CustOrdDetails,观察现象,并解释原因。

利用CASCADE选项删除视图V_CustOrdDetails,观察现象,并检查V_CustAvgOrder是否存在?解释原因?
CREATE VIEW V_CustOrdDetails
AS
SELECT CUSTOMER.CUSTKEY, C_NAME, O_TOTSLPRICE, L_QUANTITY
FROM CUSTOMER,ORDERS,LINEITEM
DROP VIEW V_CustOrdDetails RESTRICT
DROP VIEW V_CustOrdDetails CASCADE
(4)创建一个行列子集可更新视图,并利用INSERT、DELETE和UPDATE语句加以验证。

创建一个“海大汽配”供应商供应的零件视图V_DLMU_PartSupp2,要求列出供应零件的编号、可用数量和供应价格等信息。

然后通过该视图分别增加、删除和修改一条“海大汽配”零件供应记录,验证该视图是否是可更新的?
CREATE VIEW V_DLMU_PartSupp2
AS
SELECT *
FROM PART
WHERE P_BRAND='海大汽配';
INSERT
INTO V_DLMU_PartSupp2
V ALUES(123, ‘SAD’, 12,12334,14,ASDFGJH);
(5)创建视图(WITH CHECK OPTION),并利用INSERT、DELETE和UPDATE语句加以验证。

利用WITH CHECK OPTION 选项,创建一个“海大汽配”供应商供应的零件视图V_DLMU_PartSupp3,要求列出供应零件的编号、可用数量和供应价格等信息。

然后通过该视图分别增加、删除和修改一条“海大汽配”零件供应记录,验证WITH CHECK OPTION是否起作用?并比较第(4)题与本题结果有何异同?
CREATE VIEW V_DLMU_PartSupp1
AS
SELECT *
FROM PART
WHERE P_BRAND='海大汽配'
WITH CHECK OPTION;
(6)创建一个不可能更新的视图,并利用更新语句验证该视图不可更新。

第(1)题中创建的视图是可更新的吗?第(2)创建的视图是可更新的吗?分别通过SQL 更新语句加以验证,并说明原因。

CREATE VIEW V_DLMU_PartSupp1
AS
SELECT *
FROM PART
WHERE P_BRAND='海大汽配'
WITH CHECK OPTION;。

相关文档
最新文档