当前位置:文档之家› 视图和索引(数据库实验4)

视图和索引(数据库实验4)

视图和索引(数据库实验4)
视图和索引(数据库实验4)

. . .

数据库基础与实践实验报告实验四视图和索引

班级:惠普测试142

学号:1408090213

:闫伟明

日期:2016-11-13

1 实验目的:

1)掌握SQL进行视图创建的方法;

2)掌握SQL进行视图更新的方法,理解视图更新受限的原因;

3)掌握SQL进行索引创建及删除的方法。

2 实验平台:

操作系统:Windows xp。

实验环境:SQL Server 2000以上版本。

3 实验容与步骤

利用实验一创建的sch_id数据库完成下列实验容。

1.定义视图V_TCS(定义时不加with check option),存放全部计算机系老师的信息。

视图定义代码:

CREATE VIEW V_TCS AS

SELECT tno,tn,sex,age,prof,sal,comm,T.dno

FROM T,D

WHERE T.dno=D.dno AND D.dn='计算机'

视图查询语句与查询结果截图:

SELECT*FROM V_TCS

2.定义视图V_sal,存放全体教师的教师号,教师,教师酬金(工资+岗位津贴),职称信息。视图定义代码:

CREATE VIEW V_sal AS

SELECT tno教师号,tn教师,sal+comm教师酬金,prof支撑信息

FROM T

视图查询语句与查询结果截图:

SELECT*FROM V_sal

3.向V_TCS中插入一条计算机专业教师的新记录,并查询V_TCS视图的全部记录。视图更新代码:

INSERT INTO V_TCS

SELECT'T10','良瑗','女',20,'讲师',6000,8000,D.dno

FROM D

WHERE D.dn='计算机'

视图查询语句与查询结果截图:

SELECT*FROM V_TCS

4.向V_TCS中插入一条信息专业教师的新记录,并查询V_TCS视图的全部记录。视图更新代码:

INSERT INTO V_TCS

SELECT'T11','百里登风','男',21,'讲师',6000,8000,D.dno

FROM D

WHERE D.dn='信息'

视图查询语句与查询结果截图:

SELECT*FROM V_TCS

SELECT*FROM T WHERE tno='T11'

5.修改V_TCS中的记录,使得编号为t2的教师的职称为副教授。

视图更新代码:

UPDATE V_TCS SET prof='副教授'WHERE tno='T2'

视图查询语句与查询结果截图:

SELECT*FROM V_TCS WHERE tno='T2'

6.定义视图V_ TCS_ck(定义时加with check option),存放全部计算机系老师的信息,对比该视

图与V_TCS在进行数据更新时的差别。

视图定义代码:

CREATE VIEW V_TCS_ck AS SELECT tno,tn,sex,age,prof,sal,comm,T.dno

FROM T,D

WHERE T.dno=D.dno AND D.dn='计算机'

WITH CHECK OPTION

视图更新对比实验代码及运行结果截图:

--1.能插入

INSERT INTO V_TCS_ck

SELECT'T12','良莠','女',20,'讲师',4000,4000,D.dno

FROM D

WHERE D.dn='计算机'

--2.不能插入(视图CHECK OPTION约束)

INSERT INTO V_TCS_ck

SELECT'T13','天明','男',25,'讲师',4000,4000,D.dno

FROM D

WHERE D.dn='信息'

7.在课程C表的课程名属性上按降序创建唯一索引I_cn。

索引定义代码:

CREATE INDEX I_cn ON C(cn DESC)

运行结果截图:

8.删除C表上的索引I_cn。

索引删除代码:

DROP INDEX C.I_cn

运行结果截图:

4 深入思考与讨论

1)请先自己定义一个视图,使定义该视图的查询中使用连接。再更新该视图,观察视图更新受限情况。

--1.定义:

CREATE VIEW V_SC AS

SELECT sn,S.sno,cn,score

FROM S,C,SC

WHERE S.sno=SC.sno AND https://www.doczj.com/doc/431403984.html,o=https://www.doczj.com/doc/431403984.html,o

--2.查询:

SELECT*FROM V_SC

--3.均无法插入(插入影响到多表):

INSERT INTO V_SC VALUES('笑笑','S1','JAVA',99) INSERT INTO V_SC VALUES('笑笑','S1','RUBY',99) INSERT INTO V_SC VALUES('良垣','S15','JAVA',99) INSERT INTO V_SC VALUES('良莠','S1','JAVA',99)

SELECT*FROM V_SC WHERE sno='S1'

--4.可以更新(修改分数只影响到SC一表):

UPDATE V_SC SET V_SC.score=99 WHERE V_https://www.doczj.com/doc/431403984.html,='大学英语'AND V_SC.sno='S1' SELECT*FROM V_SC WHERE sno='S1'

--5.无法更新年龄(视图V_SC不包含age列):

UPDATE V_SC SET age=18 WHERE V_SC.sno='S1'

--6.无法更新,修改会影响到S和SC两表:

UPDATE V_SC SET sn='笑',score=98 WHERE V_SC.sno='S1'

--7.将成绩为NULL的课程名设为NULL,更新失败(遵守基表C的cn列的NOT NULL约束):

UPDATE V_SC SET=NULL WHERE score IS NULL

2)请先自己定义一个视图,使定义该视图的查询带分组和集函数。再更新该视图,观察视图更新受限情况。

--1.定义:

CREATE VIEW V_SC_gp AS

SELECT sn,S.sno,AVG(score)avg_score

FROM S,C,SC

WHERE S.sno=SC.sno AND https://www.doczj.com/doc/431403984.html,o=https://www.doczj.com/doc/431403984.html,o

GROUP BY sn,S.sno

--2.查询:

SELECT*FROM V_SC_gp

--3.无法插入:

INSERT INTO V_SC_gp VALUES('静','S8',88)

--4.无法更新(avg_score集函数列):

UPDATE V_SC_gp SET avg_score=88 WHERE sn='小明'

--5.无法更新(视图包含聚集函数、GROUP BY子句):UPDATE V_SC_gp SET sn='小小云'WHERE sn='小明'

西安石油大学数据库实验3索引及视图操作

实验报告 课程名称:学院名称:数据原理与应用计算机学院 专业班级:计1201 学生姓名:张文江 学号:201107010122

实验3 索引及视图操作 一、实验目的 1. 加深对索引和视图概念的理解。 2. 熟练掌握索引的创建和删除。 3. 熟练掌握视图的创建、修改和删除。 4. 熟练运用视图进行各种检索操作。 二、实验环境 硬件环境:PC机 软件环境:操作系统为Microsoft Windows 2000或以上版本。 数据库管理系统为Microsoft SQL Server 2000标准版或企业版。 三、实验内容 1. 熟悉运用SQL Server企业管理器和查询分析器进行索引的创建和删除。 2. 熟悉运用SQL Server企业管理器和查询分析器进行视图的创建、删除和修改。 四、实验步骤 1. 利用实验1已经建立并保存过的学生表、课程表,学生表按学号建立惟一索引,课程表按课程名建立惟一索引; create index S_sno on S(sno) create index C_cno on C(cno) 2. 利用实验1已经建立并保存过的学生表和选课表建立一个“网络工程”专业学生成绩视图JSGV(sno,cno,grade); create view JSGV(sno,cno,grade) as select S.sno,cno,grade from SC,S where dept='网络工程'and S.sno=SC.sno 利用视图JSGV查询“网络工程”专业的学生选课多于2门的学生学号; select distinct sno

from JSGV group by sno having (count(*)>2) 验证能否利用视图JSGV中插入一条“网络工程”专业学生选修“高等数学”课程的记录,并查询结果信息; insert into JSGV values('20080205','c03','85') 删除视图JSGV。 drop view JSGV 3. 利用实验1已经建立并保存过的学生表、课程表、选课表建立视图TOTAL(sno,sname,cname,grade); create view TOTAL(cno,sname,cname,grade) as select https://www.doczj.com/doc/431403984.html,o,sname,cname,grade from SC,S,C where S.sno=SC.sno and https://www.doczj.com/doc/431403984.html,o=https://www.doczj.com/doc/431403984.html,o

SQL-Serve实验5-索引和视图-

SQL-Serve实验5-索引和视图-

实验5 索引和视图 1.实验目的 (1)掌握使用SQL Server管理平台和Transact-SQL语句CREATE INDEX创建索引的方法。 (2)掌握使用SQL Server管理平台查看索引的方法。(3)掌握使用SQL Server管理平台和Transact-SQL语句DROP INDEX删除索引的方法。 (4)掌握使用SQL Server管理平台和Transact-SQL语句CREATE VIEW创建视图的用法。 (5)了解索引和视图更名的系统存储过程sp_rename的用法。 (6)掌握使用Transact-SQL语句ALTER VIEW修改视图的方法。 (7)了解删除视图的Transact-SQL语句DROP VIEW的用法。 2.实验内容及步骤 (1)分别使用SQL Server管理平台和Transact-SQL语句为studentsdb数据库的student_info表和curriculum表创建主键索引。 使用SQL Server管理平台:

a. b. c. d.

e. 使用Transact-SQL语句: (2)使用SQL Server管理平台按curriculum表的课程编号列创建唯一性索引。

(3)分别使用SQL Server管理平台和Transact-SQL语句为studentsdb数据库的grade表的“分数”字段创建一个非聚集索引,命名为grade_index。 使用SQL Server管理平台: 使用SQL语句: use studentsdb go create index grade_index on grade (分数) (4)为studentsdb数据库的grade表的“学号”和“课程编号”字段创建一个复合唯一索引,命名为grade_id_c_ind。 create index grade_id_c_ind on grade (学号,课程编号)

实验5 索引和视图

数据库技术与应用 实验报告 实验名称:实验五:索引和视图 系(科):信息系电子信息工程 班级: 180932 学号: 18093207 姓名:陶赛年 完成时间: 2012-4-28 南京师范大学中北学院

一、实验目的 1.学会使用SQL Server管理平台和Transact-SQL语句CREATE INDEX创建索引。 2.学会使用SQL Server管理平台查看索引。 3.学会使用SQL Server管理平台和Transact-SQL语句DROP INDEX删除索引。 4.掌握使用SQL Server管理平台、向导等创建、管理和删除全文索引,并使用全文索引查询信息的方法。 5. 掌握使用SQL Server管理平台和Transact-SQL语句CREATE VIEW创建视图的用法。 6.掌握系统存储过程sp_rename的用法。 7.掌握使用Transact-SQL语句ALTER VIEW修改视图的方法。 二、实验准备 1.了解聚集索引和非聚集索引的概念。 2.了解使用Transact-SQL语句CREATE INDEX创建索引的语法。 3.了解使用SQL Server管理平台创建索引的步骤。 4.了解Transact-SQL语句DROP INDEX删除索引的用法。 5.了解创建视图的Transact-SQL语句CREATE VIEW的语法格式及用法。 6.了解修改视图的Transact-SQL语句ALTER VIEW的语法格式。 7.了解视图更名的系统存储过程sp_rename的用法。 8.了解删除视图的Transact-SQL语句DROP VIEW的用法。 三、实验内容 1.分别使用SQL Server管理平台和Transact-SQL语句为studentsdb数据库的《学生表》和《课程表》创建主键索引。 (1) 使用SQL Server管理平台为studentsdb数据库的《学生表》和《课程表》创建主键索引。

视图与索引作业

第一部分 创建如下表:并向每张表中添加5条数据 学生表t_student(f_no,f_name,f_sex,f_department) 课程表(f_id,f_name) 成绩表(f_no,f_subjectid,f_score) 作业: 1、对成绩表的课程编号创建非簇索引 2、对学生表的姓名和年龄创建非簇索引 3、对学生表的学号创建唯一索引 4、创建视图统计成绩表中任何一门课程及没有及格的信息 5、创建视图查询男生的平均成绩 6、对课程表的课程编号和分数创建非簇索引 7、将上题中的非簇索引删除 8、创建视图查询C#课程不及格的女生信息 9、创建视图统计男女生的平均分信息 10、简述索引的作用和种类 11、简述视图的作用 第二部分 使用northwind数据库完成: 1)在northwind库中(products和suppliers表中)查找每个商品对应的供应商名 称建立视图my_view,并通过该视图查询数据。 2)在视图my_view中,将companyname为以tokyo开头的改为ToKyo.使用修改表数 据的UPDATE语句。 3)使用DROP VIEW语句将视图my_view删除。 4)使用Northwind数据库,在Suppliers表的Country列和city列上创建一个名为 Country_index的非聚集索引。 5)删除Country_index索引。 6)在Suppliers表的Country列和city列上创建一个名为Country_index的非聚集 索引。请确保索引页留有50%的空白空间,并且删除具有相同名称的现有索引 7)使用CREATE VIEW语句,基于employees表创建一个名为EmpHierarchy的视图。 视图应包含有上级领导的雇员的雇员ID、名、姓及其上级的姓 8)在视图EmpHierarchy中,将雇员ID为4的雇员的姓改为”Jones”。使用修改表数 据的UPDATE语句 9)使用DROP VIEW语句将视图EmpHierarchy删除

实验四 索引和视图参考答案

索引 --为表student中SName属性建立惟一索引 create unique index snameindex on student(SName) --为teacher中的tname属性建立惟一聚集索引。 由于sqlserver2005在主键和具有unique约束的属性上自动建立了索引,且在主键上自动建立了聚集索引,因此必须移除主键(或其它聚集索引),然后才能在tname上建立聚集索引create unique clustered index tnameindex on teacher(tname) 移除主键

然后还原Tno为teacher表的主键 --利用系统存储过程sp_helpindex查看表student上的所有索引。

exec sp_helpindex student --利用系统存储过程sp_rename将表student上的索引改名。 exec sp_helpindex student exec sp_rename 'student.snameindex','snameindex2' --删除表student中的惟一索引。(注意,sqlserver2005在主键和具有unique约束的属性上自动建立了索引,要删除这些索引,必须先取消这些属性的主键或unique性质(通过修改表),才能删除索引,不能直接删除索引) drop index student.snameindex2 --视图 --建立视图teacherview1(无check option选项),只显示教师表中姓张的教师的教师编号、教师姓名、所在系。 create view teacherview1 as select Tno, TName, DepID from teacher where TName like '张%' --建立视图teacherview2(带check option选项),只显示教师表中姓张的教师的教师编号、教师姓名、所在系。 create view teacherview2 as select Tno, TName, DepID from teacher where TName like '张%' with check option --建立视图teacherview3(带encryption选项),只显示教师表中姓张的教师的教师编号、教师姓名、所在系。 create view teacherview3 with encryption as select Tno, TName, DepID from teacher where TName like '张%' --分别向teacherview2、teacherview1中插入记录(’866’,’杨志’,3),体会with check option选项的作用。 insert into teacherview1 values('866','杨志',3) insert into teacherview2 values('867','王五',3)

实 验 五 视图、索引与数据更新

实验五视图、索引及数据更新 一、实验目的: 熟练掌握索引的建立与删除的方法,熟练掌握SQL的应用, 熟练掌握数据插 入、修改和删除的使用,为后继学习作准备。 二、实验属性(验证性) 1.了解并掌握SQL查询分析器及企业管理器的使用; 2.掌握基本表的定义、删除与修改。 三、实验原理 :SQL语言应用。 四、实验步骤: (1) 启动Oracle的SQL Developer或者SQL Plus,或者SQL Server 查询分析器; (2) 对于Oracle11g的SQL Plus需要进行登录,对于Oracle11g的SQL Developer需要进行建立连接。 1 建立索引 建立唯一索引: 例3.1 为学生选课数据库中的Students,Courses,SC三个表建立索引。其中Students表按Sname升序建唯一索引,Courses表按Cname升序建唯一索引,SC表按Sno(学号)升序和Cno(课程号)号降序建唯一索引。 查看自己建立的索引:

2 删除索引 例3.2 删除基本表SC上的Rep_SCno索引。 然后查询看索引是否还存在。理解索引的意义。 例3.3 删除基本表student上的Rep_Sno索引。 3 建立视图 例3.4 建立数学系学生的视图C_Student,并要求进行修改和插入操作时仍需保证该视图只有数学系的学生,视图的属性名为Sno,Sname,Sage,Sdept。 例 3.5 建立学生的学号(Sno)、姓名(Sname)、选修课程名(Cname)及成绩(Grade)的视图Student_CR。 例 3.6定义一个反映学生出生年份的视图student_birth(sno,sname,s_birth,ssex,sdept)。

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

数据库原理实验报告实验 四视图与索引 The Standardization Office was revised on the afternoon of December 13, 2020

一、实验内容、步骤以及结果 1.在Student数据库中,利用图形用户界面,创建一个选修了“数据库原理”课程并且是1996年出生的学生的视图,视图中包括学号,性别,成绩三个信息。(5分) 2.用两种不同的SQL语句创建第五版教材第三章第9题中要求的视图(视图名:V_SPJ)(10分,每种方法5分)。 --第一种方法 CREATE VIEW V_SPJ AS SELECT sno,pno,qty FROM SPJ WHERE jno=( SELECT jno FROM J WHERE jname ='三建' ); GO --删除建好的视图 DROP VIEW V_SPJ; GO --第二种方法 CREATE VIEW V_SPJ AS

SELECT sno,pno,qty FROM SPJ,J WHERE=AND='三建'; 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中的任意一条数据的供应数量。

实验三 索引和视图

实验三索引和视图 一、实验目的 1.掌握利用SSMS和T—SQL语句创建和删除索引的两种方法。 2.掌握利用SSMS和T—SQL语句创建、查询、更新及删除视图的方法。 ssex char(3)constraint ssex_ch check (ssex in('男','女')), sage int not null constraint sage_ch check (sage between 15 and 30), sdept char(10))

values('C02','数据结构','C05',2) insert into course values('C03','数据库','C02',2) insert into course

values('C04','DB_设计','C03',3) insert into course values('C05','C++',null,3) insert into course values('C06','网络原理','C07',3) create table sc(sno char(5)not null, cno char(5)not null, grade int constraint grade_ch check(grade between 0 and 100), primary key(sno,cno),

constraint fk_sno foreign key (sno)references student(sno), constraint fk_cno foreign key (cno)references course(cno)) insert into sc values('S01','C01',92) insert into sc values('S01','C03',84) insert into sc values('S02','C01',90) insert into sc values('S02','C02',94) insert into sc values('S02','C03',82) insert into sc values('S03','C01',72) insert into sc values('S03','C02',90) insert into sc values('S04','C03',75) 2.索引的建立、删除 ①用SSMS的方式为Student表按Sno(学号)升序建唯一索引

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

《数据库原理》实验报告 题目:实验四视图与索引学号班级日期 2016.10.20 一、实验内容、步骤以及结果 1.在Student数据库中,利用图形用户界面,创建一个选修了“数据库原理”课程并且是1996年出生的学生的视图,视图中包括学号,性别,成绩三个信息。(5分) 2.用两种不同的SQL语句创建第五版教材第三章第9题中要求的视图(视图名:V_SPJ)(10分,每种方法5分)。 --第一种方法 CREATE VIEW V_SPJ AS SELECT sno,pno,qty FROM SPJ WHERE jno=( SELECT jno FROM J WHERE jname ='' ); GO --删除建好的视图 DROP VIEW V_SPJ; GO --第二种方法

CREATE VIEW V_SPJ AS SELECT sno,pno,qty FROM SPJ,J WHERE 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中的任意一条数据的供应数量。

视图与索引作业

视图与索引作业 -标准化文件发布号:(9456-EUATWK-MWUB-WUNN-INNUL-DDQTY-KII

第一部分 创建如下表:并向每张表中添加5条数据 学生表t_student(f_no,f_name,f_sex,f_department) 课程表(f_id,f_name) 成绩表(f_no,f_subjectid,f_score) 作业: 1、对成绩表的课程编号创建非簇索引 2、对学生表的姓名和年龄创建非簇索引 3、对学生表的学号创建唯一索引 4、创建视图统计成绩表中任何一门课程及没有及格的信息 5、创建视图查询男生的平均成绩 6、对课程表的课程编号和分数创建非簇索引 7、将上题中的非簇索引删除 8、创建视图查询C#课程不及格的女生信息 9、创建视图统计男女生的平均分信息 10、简述索引的作用和种类 11、简述视图的作用 第二部分 使用northwind数据库完成: 1)在northwind库中(products和suppliers表中)查找每个商品对应的供 应商名称建立视图my_view,并通过该视图查询数据。 2)在视图my_view中,将companyname为以tokyo开头的改为ToKyo.使 用修改表数据的UPDATE语句。 3)使用DROP VIEW语句将视图my_view删除。 4)使用Northwind数据库,在Suppliers表的Country列和city列上创建一 个名为Country_index的非聚集索引。 5)删除Country_index索引。 6)在Suppliers表的Country列和city列上创建一个名为Country_index的 非聚集索引。请确保索引页留有50%的空白空间,并且删除具有相同 名称的现有索引 7)使用CREATE VIEW语句,基于employees表创建一个名为EmpHierarchy 的视图。视图应包含有上级领导的雇员的雇员ID、名、姓及其上级的 姓

SQL Serve实验5_索引和视图_要点

实验5 索引和视图 1.实验目的 (1)掌握使用SQL Server管理平台和Transact-SQL语句CREATE INDEX创建索引的方法。 (2)掌握使用SQL Server管理平台查看索引的方法。 (3)掌握使用SQL Server管理平台和Transact-SQL语句DROP INDEX删除索引的方法。 (4)掌握使用SQL Server管理平台和Transact-SQL语句CREATE VIEW创建视图的用法。 (5)了解索引和视图更名的系统存储过程sp_rename的用法。(6)掌握使用Transact-SQL语句ALTER VIEW修改视图的方法。 (7)了解删除视图的Transact-SQL语句DROP VIEW的用法。2.实验内容及步骤 (1)分别使用SQL Server管理平台和Transact-SQL语句为studentsdb数据库的student_info表和curriculum表创建主键索引。 使用SQL Server管理平台:

a. b. c. d.

e. 使用Transact-SQL语句: (2)使用SQL Server管理平台按curriculum表的课程编号列创建唯一性索引。

(3)分别使用SQL Server管理平台和Transact-SQL语句为studentsdb数据库的grade表的“分数”字段创建一个非聚集索引,命名为grade_index。 使用SQL Server管理平台: 使用SQL语句: use studentsdb go create index grade_index on grade (分数) (4)为studentsdb数据库的grade表的“学号”和“课程编号”字段创建一个复合唯一索引,命名为grade_id_c_ind。 create index grade_id_c_ind on grade (学号,课程编号)

视图和索引(数据库实验4)

. . . 数据库基础与实践实验报告实验四视图和索引 班级:惠普测试142 学号:1408090213 :闫伟明 日期:2016-11-13

1 实验目的: 1)掌握SQL进行视图创建的方法; 2)掌握SQL进行视图更新的方法,理解视图更新受限的原因; 3)掌握SQL进行索引创建及删除的方法。 2 实验平台: 操作系统:Windows xp。 实验环境:SQL Server 2000以上版本。 3 实验容与步骤 利用实验一创建的sch_id数据库完成下列实验容。 1.定义视图V_TCS(定义时不加with check option),存放全部计算机系老师的信息。 视图定义代码: CREATE VIEW V_TCS AS SELECT tno,tn,sex,age,prof,sal,comm,T.dno FROM T,D WHERE T.dno=D.dno AND D.dn='计算机' 视图查询语句与查询结果截图: SELECT*FROM V_TCS 2.定义视图V_sal,存放全体教师的教师号,教师,教师酬金(工资+岗位津贴),职称信息。视图定义代码: CREATE VIEW V_sal AS

SELECT tno教师号,tn教师,sal+comm教师酬金,prof支撑信息 FROM T 视图查询语句与查询结果截图: SELECT*FROM V_sal 3.向V_TCS中插入一条计算机专业教师的新记录,并查询V_TCS视图的全部记录。视图更新代码: INSERT INTO V_TCS SELECT'T10','良瑗','女',20,'讲师',6000,8000,D.dno FROM D WHERE D.dn='计算机'

实验 视图、索引与数据库关系图

实验名称:实验五视图、索引与数据库关系图 班级学号姓名日期 所在院系指导老师成绩 一、试验目的 使学生掌握SQL Server中的视图创建、查看、修改和删除的方法;索引的创建和删除的方法;数据库关系图的实现方法。加深对视图和SQL Server数据库关系图的理解。 二、实验内容 (1)创建、查看、修改和删除视图。 (2)创建、删除索引文件。 (3)创建数据库关系图。 三、试验步骤 1)视图操作 (1)创建视图。 使用SQL Server Management Studio直接创建,步骤如下: 1.单击数据库前面的+号,然后再单击“学生选课”数据库前面的+号,右击“视图”,在弹出的快捷菜单中选择“新建视图”命令,弹出“添加表”对话框。如图5.1所示 图5.1 “添加表”对话框 2.在“添加表”对话框中,添加视图数据来源的表,这里添加三张表,分别是student、course和sc表。添加表后,单击添加表对话框中的“关闭”按钮,出现创建视图界面。如图5.2所示 图5.2添加字段前的效果图

3.如果要在视图中显示某些表的某个字段,只需单击其字段前的复选框即可,同时在中间列中会显示该字段,在代码区中会看到具体实现的代码。 4.如果要查看视图,单击常用工具栏中的“执行”按钮,就可以看到视图的数据显示,如由字段student.sno、sname、cname、grade生成的视图效果。如图 5.3所示 图5.3 生成视图效果图 5.在创建视图中还可以为字段添加列名、进行排序、添加多个筛选条件。 6.单击常用工具栏中的“保存”按钮,就可以弹出保存视图提示对话框,输入视图名字即可,为view_stu_grade。 (2)修改视图。 视图创建好后,就可以利用它进行查询信息了。如果发现视图的结构不能很好的满足要求,还可以对它进行修改。 使用SQL Server Management Studio直接修改,步骤如下: 1.在SQL Server Management Studio中,选择服务器、数据库、并使数据库展开,再单击“视图”前面的+,就可以看到已存在的视图了。 2.右击要修改结构的视图,在弹出的视图功能快捷菜单中选择“修改”命令,就可以直接修改了。 (3)删除视图 使用SQL Server Management Studio直接删除,步骤如下: 1.在SQL Server Management Studio中,选择服务器、数据库、并使数据库展开,再单击“视图”前面的+,就可以看到已存在的视图了。 2.右击要删除的视图,在弹出的视图功能快捷菜单中选择“删除”命令,就可以直接删除掉制定的视图。 2)索引文件的创建与删除 索引是一个单独的、物理的数据库结构,是为了加速对表中数据行的查询而创建的一种分散的存储结构。 (1)创建索引文件。 使用SQL Server Management Studio直接创建索引文件,步骤如下: 1.单击数据库前面的+号,然后再单击“学生选课”数据库前面的+号,再单击表前面的+号,就额可以看到已存在的表了, 2.选定要添加索引的表,如数据表student。右击,在弹出的快捷菜单中选择“修改”命令。

实验训练4:视图和索引的构建与使用

数据库原理实验报告-实验四-视图与索引《数据库原理》实验报告 题目:实验四 视图与索引 一、实验内容、步骤以及结果 1.在Student数据库中,利用图形用户界面,创建一个选修了“数据库原理”课程并且是1996年出生的学生的视图,视图中包括学号,性别,成绩三个信息。(5 分) 2.用两种不同的SQL语句创建第五版教材第三章第9题中要求的视图(视图名:V_SPJ)(10分,每种方法5分)。 -- 第一种方法

CREATEVIEW V_SPJ AS SELECT sno , pno , qty FROM SPJ WHERE jno =( SELECT jno FROM J WHERE jname = ' 三建 ' ); GO -- 删除建好的视图 DROPVIEW V_SPJ ; GO -- 第二种方法 CREATEVIEW V_SPJ AS SELECT sno , pno , qty FROM SPJ , J WHERE 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触发器实现。

数据库实验实验10 视图与索引

实验10 视图与索引 1.实验目的 (1)掌握视图的创建、修改方法。 (2)能够通过视图修改数据。 (3)理解索引的概念和索引的作用,学会使用索引。 (4)了解聚簇索引和非聚簇索引。 2.实验内容 (1)创建视图 ①创建03班学生的视图 create view c1_student as select * from SM.dbo.student where clno='03' ②创建03班学生的视图,输出其学号、姓名和年龄 create view c11_student as select sno,sname,sage from SM.dbo.student where clno='03' ③创建030002班学生的视图,输出其学号、姓名和年龄,并且更换列名 create view c12_student(学号,姓名,年龄) as select sno,sname,sage from SM.dbo.student where clno='030002' ④修改表sutdent的结构,增加一列,再执行上述3组语句,查看结果 ?? ⑤通过如下两组SQL语句创建星“王”的学生的视图,然后分别向两师徒中插入

一条姓的记录,用SQL语句查看执行结果 create view w1_Student as select sno,sname from SM.dbo.student where sname like '王%' with check option create view s2_Student as select sno,sname from SM.dbo.student where sname like '王%' ⑥创建17信计选修了6课程的学生的视图 create view IS_C1(SNo,SName,Score) as select student.sno,sname,score from SM.dbo.student,SM.dbo.SC,SM.dbo.class where clname='17信计' and student.sno=https://www.doczj.com/doc/431403984.html,o and https://www.doczj.com/doc/431403984.html,o='6' and student.clno=class.clno ⑦创建17信计选修了6号课程且成绩几个的学生的视图 create view IS_C2 as select sno,sname,score from IS_C1 where Score>=60

视图和索引(数据库实验4)

数据库基础与实践实验报告实验四视图和索引 班级:惠普测试142 学号:1408090213 姓名:闫伟明 日期:2016-11-13

1 实验目的: 1)掌握SQL进行视图创建的方法; 2)掌握SQL进行视图更新的方法,理解视图更新受限的原因; 3)掌握SQL进行索引创建及删除的方法。 2 实验平台: 操作系统:Windows xp。 实验环境:SQL Server 2000以上版本。 3 实验内容与步骤 利用实验一创建的sch_id数据库完成下列实验内容。 1.定义视图V_TCS(定义时不加with check option),存放全部计算机系老师的信息。 视图定义代码: CREATE VIEW V_TCS AS SELECT tno,tn,sex,age,prof,sal,comm,T.dno FROM T,D WHERE T.dno=D.dno AND D.dn='计算机' 视图查询语句与查询结果截图: SELECT*FROM V_TCS 2.定义视图V_sal,存放全体教师的教师号,教师姓名,教师酬金(工资+岗位津贴),职称信息。视图定义代码: CREATE VIEW V_sal AS

SELECT tno教师号,tn教师姓名,sal+comm教师酬金,prof支撑信息 FROM T 视图查询语句与查询结果截图: SELECT*FROM V_sal 3.向V_TCS中插入一条计算机专业教师的新记录,并查询V_TCS视图的全部记录。视图更新代码: INSERT INTO V_TCS SELECT'T10','良瑗','女',20,'讲师',6000,8000,D.dno FROM D WHERE D.dn='计算机'

实验5 索引和视图

实验5 索引和视图 一、实验目的 1.掌握索引的使用方法 2.掌握数据完整性的实现方法 3.熟悉视图的概念和作用 4.掌握视图的创建方法 5.掌握如何查询和修改视图 二、实验准备 1.了解索引的作用与分类 2.掌握索引的创建方法 3.了解视图的概念 4.了解创建视图的方法 5.了解对视图的操作 三、实验内容及要求 1.创建索引 1)在Employees表的Name列和Address列上建立复合索引。 2)对Departments表上的DepartmentName列建立唯一性索引。 3)使用CREATE INDEX语句能创建主键吗? 4)向Employees表中的出生日期列添加一个唯一性索引,姓名列和性别 列上添加一个复合索引。 5)假设Departments表中没有主键,使用ALTER TABLE语句将 DepartmentID列设为主键。 6)添加主键和添加普通索引有什么区别? 7)创建与Departments表相同结构的表Departments1,将 DepartmentName设为主键,DepartmentsID上建立一个索引。 2.删除索引 1)使用DROP INDEX语句删除表Employees上的索引depart_ind。 2)使用ALTER TABLE语句删除Departments上的主键和索引Dep_ind。 3.创建视图 1)创建YGGL数据库上的视图DS_VIEW,视图包含Departments表的全 部列。 2)创建YGGL数据库上的视图Employees_view,视图包含员工号码、姓 名和实际收入。 4.查询视图 1)从视图DS_VIEW中查询出部门号为3的部门名称。 2)从视图Employees_view查询出姓名为“王林”的员工的实际收入。 5.更新视图 1)向视图DS_VIEW中插入一行数据:6,广告部,广告业务。 2)执行完该命令使用SELECT语句分别查看视图DS_VIEW和基本表 Departments中发生的变化。 3)尝试向视图Employees_view中插入一行数据,看看会发生什么情况。 4)修改视图DS_VIEW,将部门号为5的部门名称修改为“生产车间”。 5)执行完该命令使用SELECT语句分别查看视图DS_VIEW和基本表

实验5索引和视图

1.实验目的 (1)掌握使用SQL Server管理平台和Transact-SQL语句CREATE INDEX创建索引的方法。 (2)掌握使用SQL Server管理平台查看索引的方法。 (3)掌握使用SQL Server管理平台和Transact-SQL语句DROP INDEX删除索引的方法。 (4)掌握使用SQL Server管理平台和Transact-SQL语句CREATE VIEW创建视图的用法。 (5)了解索引和视图更名的系统存储过程sp_rename的用法。 (6)掌握使用Transact-SQL语句ALTER VIEW修改视图的方法。 (7)了解删除视图的Transact-SQL语句DROP VIEW的用法。 2.实验内容及步骤 (1)分别使用SQL Server管理平台和Transact-SQL语句为studentsdb数据库的student_info表和curriculum表创建主键索引。 (2)使用SQL Server管理平台按curriculum表的课程编号列创建唯一性索引。 (3)分别使用SQL Server管理平台和Transact-SQL语句为studentsdb数据库的grade 表的“分数”字段创建一个非聚集索引,命名为grade_index。 CREATE INDEX grade_index ON grade(分数) (4)为studentsdb数据库的grade表的“学号”和“课程编号”字段创建一个复合唯一索引,命名为grade_id_c_ind。 CREATE UNIQUE INDEX grade_id_c_ind ON grade(学号,课程编号) (5)分别使用SQL Server管理平台和系统存储过程sp_helpindex查看grade表和student_info表上的索引信息。 sp_helpindex grade (6)使用SQL Server管理平台对grade表创建一个聚集索引和唯一索引。 (7)使用系统存储过程sp_rename将索引grade_index更名为grade_ind。 sp_rename 'grade.grade_index','grade_ind','INDEX' (8)分别使用SQL Server管理平台和Transact-SQL语句DROP INDEX删除索引grade_ind。再次使用系统存储过程sp_helpindex查看grade表上的索引信息。 DROP INDEX grade.grade_ind (9)在studentsdb数据库中,以student_info表为基础,使用SQL Server管理平台建立

实验四 视图、索引及数据更新

实验四视图、索引及数据更新 一、实验目的: 熟练掌握索引的建立与删除的方法,熟练掌握SQL的应用,熟练 掌握数据插入、修改和删除的使用,为后继学习作准备。 二、实验属性(验证性) 1.了解并掌握SQL查询分析器及企业管理器的使用; 2.掌握基本表的定义、删除与修改。 三、实验仪器设备及器材 1.安装有windows操作系统计算机。 2.安装有Oracle11g和SQL Server的计算机。 3.安装有Visual Studio .net和Java编译器(eclipse、Netbean等)的 编译器。 4.计算机具备网络环境。 四、实验要求(预习、实验前、实验中、实验后等要求) 1.预习教材第三章,熟悉SQL语句。 2.熟悉.net、Java和Delphi 开发环境。 3.能够熟练掌握.net、Java和Delphi环境下的数据库的编程。 4.掌握建立索引的二种方法,即在基本表中建立和用命令方式建立。 5.掌握删除索引的方法。 6.掌握sql视图建立、修改和删除; 7.掌握sql视图查询。 8.掌握sql数据插入、修改和删除语句的一般格式及使用方法。 五、实验原理 SQL语言应用。 六、实验步骤: (1)启动Oracle的SQL Developer或者SQL Plus,或者SQL Server 查 询分析器; (2)对于Oracle11g的SQL Plus需要进行登录,对于Oracle11g的SQL Developer需要进行建立连接。 如果选择SQL SERVER查询分析器,需要选择数据库;

1 建立索引 建立唯一索引: 例3.1为学生选课数据库中的Students,Courses,SC三个表建立索引。其中Students表按Sname升序建唯一索引,Courses表按Cname升序建唯一索引,SC 表按Sno(学号)升序和Cno(课程号)号降序建唯一索引。 create unique index turing.myIndex on turing.Student(Sname); 查看自己建立的索引: SQL>desc dba_indexes [或者SQL>desc all_indexes, SQL>desc user_indexes] select index_name,index_type,table_name From user_indexes Where index_name=’YOUR_INDEX_NAME’; select t.column_name,t.Index_name,i.index_type from dba_ind_columns t, dba_indexes i where (t.index_name=i.index_name) and (t.table_name=i.table_name ) and (t.table_name='STUDENT') 建立位图索引:(选做,理解位图索引的意义,什么情况下才使用位图索引?) 例3.2为学生选课数据库中的Student的ssex列上建立位图索引。 create bitmap index turing.bm_ixdex_student on turing.student(ssex) tablespace turing.tbs_test local(partition ix_p1 tablespace tbs_01 partition ix_p2, partition ix_p3 tablespace tbs_02 partition ix_p4, partition ix_p5 tablespace tbs_03 ) 查看位图索引的创建情况。建立位图索引时,如果报以下错误:“ORA-00439: 未启用功能: Bit-mapped indexes”,是因为该Oracle版本不具有bitmap index功能或未装bitmap index功能,使用以下查询可以确定:以dba身份连入Oracle,执行以下查询: select *

相关主题
文本预览
相关文档 最新文档