实验三 索引和视图
实验3视图和索引的创建与使用
学号:710301114辽宁师范大学海华学院上机实验报告2011~ 2012 第 1 学期课程名称:数据库原理与应用实验学时: 2实验项目:视图和索引的创建与使用专业班级:实验人:指导教师:2011年10月19日实验日期:2011 年10 月19 日第08 教学周实验目的:1、掌握创建视图的方法2、掌握修改和使用视图的方法3、掌握创建索引的方法4、掌握修改和使用索引的方法实验内容:一、视图的创建视图是查看数据库对象表中的数据的一种方法。
视图存储了预定义的查询语句,作为数据库的对象存储在数据库中以备以后使用。
熟土本身没有存放真正的数据,实际数据仍在基本表中。
1、用CREATE VIEW语句创建视图格式:create view 视图名称[(列[,…])][with encryption] 将视图源代码加密AsSelect 语句[with check option] 在更新视图数据时,检查添加、更新数据是否符合视图本身的定义1、利用资源管理器创建新建一个名为user_view1视图,在该视图中查询成绩高于80的学生的学号和姓名。
运行结果如下:代码如下:select Student.Sno,Student.Sname,Sc.Gradefrom Student,Scwhere(Student.Sno=Sc.Sno and Sc.Grade>80)视图的修改1、利用企业管理器查看视图属性来修改;2、用T-SQL语句修改。
给user_view1视图增加列名代码如下:Alter view user_view(Sno,Sname,Grade,Cno) asselect Student.Sno,Student.Sname,SC.Grade,o from Student, SC, Coursewhere(Student.Sno= SC.Sno and SC.Grade>80and o=o)删除视图Drop view 视图名1,视图名2,…重命名视图Sp_rename 旧视图名,新视图名二、关系图。
实验三_视图和索引
实验三视图和索引一、实验目的使学生掌握SQL SERVER中的视图创建、查看、修改和删除的方法;索引的创建和删除方法二、实验内容在学生-课程数据库中(1)用图形工具和T-SQL两种方法创建视图,取名为view_stu_grade,要求查看学生的学号,姓名,课程名和成绩。
(2)若发现视图定义的结构不能很好满足要求,还可以对它进行修改。
(3)删除视图(4)尝试分别为student表的每一个属性列添加一个惟一索引,将出现的现象和原因分析一下。
(5)删除索引三、实验过程要求个人填写(要求有文字描述和适当的图片辅助说明)注:图片需要上机运行SQL Server软件之后,可用QQ的抓图工具把运行窗口抓下来,粘贴在word文档中。
(1)①用图形工具创建视图:展开stud_course数据库,右键单击“视图”,在弹出的快捷菜单中有“新建视图”菜单项,单击“新建视图”,就会出现新建视图对话框,保存视图,给视图取名为view_stu_grade.②用T-SQL创建视图:查看结果:(2)若发现视图定义的结构不能很好满足要求,还可以对它进行修改。
如需要修改则点击视图选中view_stu_grade右键修改例如将视图修改为显示出计算机科学系男生的情况,并要求加密(3)删除视图①用图形工具删除视图②用T-SQL删除视图(4)①选中Student表打开索引,右键新建索引,如图操作②创建索引问题1(未选择要添加到索引键的表列)解决办法问题2(记录相同不能建立唯一索引)解决办法:不建立唯一结果(5)删除索引①图形工具删除索引单击鼠标右键要删除的索引,选择“删除”命令,然后弹出“删除对象”对话框,单击确定按钮,即可删除索引。
②用T-SQL语句删除索引四、实验总结要求个人填写(实验中发现的问题和解决的办法)本次实验练习了视图创建、查看、修改和删除的方法;索引的创建和删除方法。
通过这次实验我认识到视图的作用,能够简化用户的操作,视图使用户能以多钟角度看待同一数据,适当的利用视图可以更清晰的表达查询。
实验三 数据库中的数据查询及视图操作实验报告
实验三数据库中的数据查询及视图操作实验报告实验三数据库中的数据查询及视图操作实验报告一、实验目的本实验的主要目的是熟悉数据库中的数据查询和视图操作。
通过本实验,我们可以掌握使用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语句后,我们可以得到每个班级的人数统计结果。
索引和视图实验报告
7-1编程在teaching 数据库中的student 表的sname 列上创建唯一索引IDX_sname。
USE teachingGOCREATE UNIQUE INDEX IDX_sname ON student(sname)7-2 编程在teaching数据库中的student表的studentno和classno列上创建组合索引IDX_sc。
USE teachingIF EXISTS(SELECT name FROM sysindexes WHERE name='IDX_sc')DROP INDEX student.scGOCREATE INDEX IDX_sc ON student(studentno,classno)7-3 重新组织teaching 数据库中student 表上的IDX_sc 索引。
USE teachingALTER INDEX IDX_sc ON dbo.student REORGANIZE7-4 重新生成teaching 数据库中student 表上的IDX_sname 索引,设置填充索引,将填充因子设置为80%,设置将中间排序结果存储在tempdb中。
USE teachingALTER INDEX IDX_sname ON dbo.studentREBUILD WITH(PAD_INDEX =ON,FILLFACTOR= 80,SORT_IN_TEMPDB =ON)7-5 重新生成teaching 数据库中student 表上的C_studentno 索引,将其修改为聚集唯一索引,并指定该索引的叶级页的填充度为70%。
USE teachingGOCREATE UNIQUE CLUSTERED INDEX C_studentnoON dbo.student(studentno)WITH(PAD_INDEX =ON,FILLFACTOR= 70,DROP_EXISTING =ON)7-6 删除teaching 数据库中student 表上的聚集索引C_studentno 和非聚集索引UC_classno。
实验三:索引和视图的操作()
实验三:索引和视图的操作实验日期:2014年5月14日姓名:李怀彬一、实验目的1、掌握使用SQL语句创建索引和视图;2、掌握在视图上对表中的数据进行操作:查询、修改等。
3、看懂SQL Server的查询执行计划,了解通过建立索引来改善查询的执行性能。
二、实验要求1.使用T-SQL 语句创建索引和视图,通过视图操作表中的数据。
2.请将试验内容中的每道题的T-SQL语句写在实验报告中。
3.独立完成实验内容,并提交书面实验报告。
三、实验内容本实验所使用的数据库为实验二创建的数据库jdglsys。
1、在客房业务表上查找在2010年2月10日后有客户入住的客房号,入住时间;查看相应的select语句的查询执行计划并分析SELECT客房号,入住时间FROM客房业务WHERE (入住时间>'2010-02-10 00:00:00')分析:通过比较执行计划,只有I/O和CPU的开销发生了变化,其他没变。
具体见下图:2、在客房业务表上创建以“入住时间”为索引关键字升序排序的非聚集索引index_time ;USE[jdglsys]CREATE NONCLUSTERED INDEX[index_time]ON[dbo].[客房业务]([入住时间]ASC)3、执行问题1中的select语句,再查看此时的查询执行计划,查询执行计划是否有变化?分析:I/O和CPU的开销发生了变化,其他没变。
具体见上图所示:4、在客房业务表上查找在2010年2月10日后有客户入住的所有入住时间;查看select 语句的查询执行计划并分析。
SELECT入住时间FROM客房业务WHERE (入住时间>CONVERT(DATETIME,'2010-02-10 00:00:00', 102))分析:select语句后对客房业务表进行扫描时物理运算方式为索引查找。
如下图所示5、查找客户入住的客房的客房号、入住客户身份证号、姓名、入住时间、该客房对应的类型编号、客房面积、客房名称以及客房价格。
数据库原理 实验三 数据查询、索引与视图
《数据库原理》实验报告
一、目的
1.掌握SELECT语句的基本语法;
2.掌握子查询的表示;
3.掌握连接查询的表示;
4.掌握SELECT语句的统计函数的作用和使用方法;
5.掌握SELECT语句的GROUPBY和ORDERBY子句的作用和使用方法。
6.掌握使用创建、删除索引的基本方法
7.掌握视图的定义(创建和删除),查询,更新(注意更新的条件);
8.掌握索引分析与维护的常用方法。
二、实验使用环境:
WindowXP SP2 SQL Server 2005
三、实验内容与设计思想
根据自已所选的题目,完成对表的查询、统计、视图的创建。
1
2
3
4
5
6
7
8
9
10
11
12
13
14.1
14.2
四、出现问题及解决方案
1.函数名字不正确,大小写错误导致无效
2.标点符号在中文状态下打的,出现语法错误
五、实验小结
学会了建立视图,视图加密,更新的方法,创建索引,为一个表创建聚集索引和非聚集索引。
这次实验对sql基本的语法进一步的巩固了解,主要学到了SELECT语句的基本用法,子查询、连接查询的使用方法,还有select语句中group by、order by、compute等字句的用法,以及基本的SQL函数。
数据库实验报告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)创建存储过程的操作。
索引和视图实验答案
《索引和视图》实验一、实验目的与要求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、操作系统:Windows XP或Windows 20032、数据库管理系统:SQL Server 2005三、实验内容1.分别使用SQL Server管理平台和Transact-SQL语句为教务管理系统数据库的《学生信息》和《课程信息》创建主键索引。
(1) 使用SQL Server管理平台为教务管理系统数据库的《学生信息》和《课程信息》创建主键索引。
(2) 使用Transact-SQL语句为教务管理系统数据库的《学生信息》和《课程信息》创建主键索引。
USE教务管理系统GOcreate unique nonclustered index学生信息_idxon学生信息(学号)GOUSE教务管理系统GOcreate unique nonclustered index课程信息_idxon课程信息(课程编号)GO2.使用SQL Server管理平台按《课程信息》的课程编号列创建唯一性索引。
3.分别使用SQL Server管理平台和Transact-SQL语句为studentsdb数据库的《成绩表》的“分数”字段创建一个非聚集索引,命名为《成绩_index》。
(1)使用SQL Server管理平台为教务管理系统数据库的《成绩表》的“分数”字段创建一个非聚集索引,命名为《成绩_index》。
索引和视图学习报告【最新】
索引与视图学习报告一、学习目标:1、了解索引的概念和作用2、理解索引的创建的使用3、理解视图的基本概念和作用4、掌握视图的创建、查看及删除操作二、学习要求:1、了解索引和视图的含义,目的和作用,索引一经建立,就由系统使用和维护,无需用户干预。
2、通过看书和网上查阅资料,想同学多问多思考。
三、学习内容:1、索引:(1)索引定义:索引就是数据表中数据和相应的存储位置的列表,利用索引可以提高在表或视图中的查找数据的速度。
(2)数据库中索引主要分为两类:聚集索引和非聚集索引。
SQL Server 2005还提供了唯一索引、索引视图、全文索引、xml索引等等。
聚集索引和非聚集索引是数据库引擎中索引的基本类型,是理解其他类型索引的基础。
聚簇索引:聚集索引是值表中数据行的物理存储顺序和索引的存储顺序完全相同。
聚集索引根据索引顺序物理地重新排列了用户插入到表中的数据,因此,每个表只能创建一个聚集索引。
聚集索引经常创建在表中经常被搜索到的列或按顺序访问的列上。
在默认情况下,主键约束自动创建聚集索引。
非聚簇索引:非聚集索引不改变表中数据列的物理存储位置,数据与索引分开存储,通过索引指向的地址与表中的数据发生关系。
非聚集索引没有改变表中物理行的位置,索引可以在以下情况下使用非聚集索引:1、如果某个字段的数据唯一性比较高2、如果查询所得到的数据量比较少其他类型索引:除了以上索引,还有以下类型索引:A、唯一索引:如果希望索引键都不同,可以创建唯一索引。
聚集索引和非聚集索引都可以是唯一索引。
B、包含新列索引:索引列的最大数量是16个,索引列的字节总数的最高值是900。
如果当多个列的字节总数大于900,切又想在这些劣种都包含索引是,可以使用包含性列索引。
C、视图索引:提供视图查询效率,可以视图的索引物理化,也就是说将结果集永久存储在索引中,可以创建视图索引。
D、XML索引:是与xml数据关联的索引形式,是XML二进制blob的已拆分持久表示形式。
西安石油大学数据库实验3索引及视图操作
实验报告课程名称:数据原理与应用学院名称:计算机学院专业班级:计 1201学生姓名:张文江学号:0122实验 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 ,cno,gradefrom SC,Swhere dept='网络工程'and =利用视图JSGV查问“网络工程”专业的学生选课多于 2 门的学生学号;select distinct snofrom JSGVgroup by sno having (count(*)>2)考证可否利用视图JSGV中插入一条“网络工程”专业学生选修“高等数学”课程的记录,并查问结果信息;insert into JSGV values (' ' ,' c03' ,' 85' )删除视图JSGV。
数据库实验报告 索引和视图
西北师范大学计算机科学与工程学院学生实验报告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实验结果:实验总结:通过本次实验掌握了索引、统计信息和视图等数据库对象的基本概念和基本操作。
数据库实验报告:视图 和索引
一、实验步骤(一)附加上次实验所创建的数据库“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”视图的定义信息和依赖的对象。
数据库原理索引视图实验报告
数据库组成原理实验报告题目:索引、视图的定义院系:计算机科学与工程学院班级:姓名:学号:一、实验题目索引、视图的定义二、实验日期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语句通过视图向员工数据表中添加一条记录,要求"姓名"字段值为"马中兴"。
实验3 索引和视图的创建、修改和删除
实验三索引和视图的创建、修改和删除1 实验目的
1.熟悉数据库的交互式SQL工具中数据定义的基本操作。
2.熟悉通过SQL对数据库进行操作:建立、删除索引,建立和更新视图。
2 实验工具SQL Server2005
利用SQL Server2005及其交互式查询工具来熟悉SQL中数据定义的基本操作。
3 实验内容和要求
1. 在前面实验中建立的数据库进行实验所要求的各种操作。
2. 熟悉索引的创建和删除。
熟悉视图的创建和更新。
3. 根据要求认真填写实验报告,记录所有的实验用例。
4 实验步骤
在SQL查询分析器利用CREATE、DROP语句创建和删除视图、索引。
在SQL查询分析器利用SELECT、INSERT、UPDATE、DELETE语句查询、更新视图。
步骤:
1、利用查询分析器用CREATE语句建立索引
注:聚簇索引的关键字是clustered
2、利用查询分析器用DROP语句删除索引。
3、利用查询分析器用CREATE语句建立视图
4、利用查询分析器SELECT语句查询视图。
5、利用查询分析器用INSERT、UPDATE、DELETE语句更新视图
6、利用查询分析器用DROP语句删除视图
7、上机练习p98-3、5、8,p117-4、6。
实验三 索引和视图
实验三索引和视图一、实验目的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 coursevalues('C03','数据库','C02',2) insert into coursevalues('C04','DB_设计','C03',3)insert into coursevalues('C05','C++',null,3)insert into coursevalues('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 scvalues('S01','C01',92)insert into scvalues('S01','C03',84)insert into scvalues('S02','C01',90)insert into scvalues('S02','C02',94)insert into scvalues('S02','C03',82)insert into scvalues('S03','C01',72)insert into scvalues('S03','C02',90)insert into scvalues('S04','C03',75)2.索引的建立、删除①用SSMS的方式为Student表按Sno(学号)升序建唯一索引②用T—SQL语句为Course表按Cno(课程号)升序建唯一索引,create unique index course_cnoon course(cno asc)③用T—SQL语句为SC表按Sno(学号)升序和Cno(课程号)号降序建唯一索引。
实验报告 3(视图、索引的创建与使用)
撰写人姓名:撰写时间:审查人姓名:实验全过程记录一、实验目的1、熟练掌握视图的创建与维护操作,熟练使用视图访问数据;2、熟练掌握索引的创建与维护操作,熟练使用索引以方便查询。
二、实验内容:1、在“对象资源管理器”中使用向导和在在“查询编辑器”中使用T-SQL语句创建视图,并修改视图。
再通过视图向数据库添加、修改、删除数据。
2、使用步骤1中两种方法进行索引的创建、修改、删除操作。
三、实验用仪器设备及材料软件需求:操作系统:Windows XP或更新的版本数据库管理系统:SQL Server 2005或更新的版本硬件需求:Pentium Ⅲ1G以上的CPU处理器、256MB以上的内存、1.5G以上自由硬盘空间、打印机、打印纸、CD-ROM驱动器等。
四、实验步骤:1、在“对象资源管理器”中展开需要建立视图的“公司管理系统”数据库,用鼠标右键单击“视图”对象,选择快捷菜单“新建视图”选项,打开新建“视图”对话框,根据需要选择添加的表和视图。
现添加“职工表”、“项目表”和“客户表”。
在视图设计窗口中,创建“查询姓‘李’的职工负责的上海的项目名称”的视图。
据此设置视图的输出列、列名、表名等属性。
保存该视图并利用此视图进行查询操作。
2、选择当前数据库为“公司管理系统”数据库。
在“查询编辑器”中使用T-SQL语句创建“查询客户表中所有地址在‘北京’的客户编号和名称”的视图。
通过此视图向数据库中的表进行添加、修改、删除等更新记录操作。
3、在“对象资源管理器”中展开需要建立索引的“职工表”,选中“索引”选项并展开。
选中“索引”对象,单击鼠标右键,在快捷菜单中选择“新建索引”选项,打开“新建索引”对话框。
根据“职工表”的“出生日期”列创建一不唯一、也不是聚集的索引。
设置完毕后保存该索引并进行相应的查询输出以观察索引设置的输出效果。
4、在“查询编辑器”中使用T-SQL语句对“客户表”的“客户名称”列和“地址”列创建一不唯一的、也不是聚集的复合索引。
实验三 索引和视图
实验三索引和视图
一实验目的
1、掌握创建视图的T-SQL语句的用法
2、掌握使用SQL Server Management Studio 创建视图和索引的方
法
3、掌握查看视图和索引的系统存储过程的用法
4、掌握修改视图的方法
5、掌握创建索引的命令
二实验内容
1.建立计算机系学生视图,该视图包含学生的学号、姓名和出生日期信息并查看视图定义
2.建立学生表中全体学生年龄的视图,该视图包含学生的学号、姓名、和年龄信息
3.建立选修“数据库”的学生的视图,该视图包含学生的学号和姓名信息
4.建立学生成绩视图,该视图包含学生的学号、姓名、课程名称和成绩信息,并进行加密
5.修改题目4中的学生成绩视图,该视图包含学生的学号、姓名、课程名称、成绩和班级信息
6.在数据库中,为“课程”表创建一个基于“课程号,课程名称”组合列的非聚集、复合索引khh_kcmc_index
7.查看学生表的索引
8.建立学生表的姓名唯一性索引,并且填充因子为60%。
实验三 索引、视图
实验三:索引、视图1 实验目的1.通过实验进一步理解视图的建立和更新2 实验工具SQL Server 2000利用SQL Server 2000及其交互式查询语言对数据库中的表进行熟练操作。
3 实验内容和要求实验要求建立视图,视图查询,视图更新;实验方法①将实验需求用SQL语句表示;②执行SQL语句;③查看执行结果,如果结果不正确,进行修改,直到正确为止。
实验内容1:(建立视图) 建立计算机系的学生的视图STUDENT_CS。
2:(建立视图) 建立由学号和平均成绩两个字段的视图STUDENT_GR。
3:(视图查询) 利用视图STUDENT_CS,求年龄大于19岁的学生的全部信息。
4:(视图查询) 利用视图STUDENT_GR,求平均成绩为88分以上的学生的学号和平均成绩。
5:(视图更新) 利用视图STUDENT_CS,增加学生('98004','李华','CS','02',20,'女')6:(视图更新) 利用视图STUDENT_CS,将学生年龄增加1岁。
观察其运行结果并分析原因。
7:(视图更新) 利用视图STUDENT_GR,将平均成绩增加2分。
观察其运行结果并分析原因。
8:(视图更新) 删除视图STUDENT_CS中学号为‘96002’的学生的全部数据。
9:(视图更新) 删除视图STUDENT_GR的全部数据。
10:(删除视图) 删除视图STUDENT_CS和STUDENT_GR。
11:(索引建立)为Score表按学号升序和课程号降序分别建立索引,索引名分别为SC_NDXSNO和SC_NDXCNO。
为Score表按分数降序建立索引,索引名为GRADE_NDX12:删除索引SC_NDXSNO4 实验总结①SQL语句以及执行结果;②对重点实验结果进行分析;③实验中的问题和提高;④收获与体会。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验三索引和视图
一、实验目的
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(学号)升序建唯一索引
②用T—SQL语句为Course表按Cno(课程号)升序建唯一索引,
create unique index course_cno
on course(cno asc)
③用T—SQL语句为SC表按Sno(学号)升序和Cno(课程号)号降序建唯一索引。
create unique index sc_sno_cno
on sc(sno asc,cno desc)
④能否用T—SQL语句再为表Students的Sname(姓名)和Sno(学号)列上建立一个聚簇索引?
若不能说明原因?
不能,因为student表中主键sno唯一,则已默认存在聚集索引,而每个表只能有一个聚集索引,故不能再建立另一个聚集索引。
⑤用T—SQL语句删除基本表SC上的唯一索引。
drop index sc_sno_cno
on sc
3.用T—SQL完成如下视图的建立、查询、修改及删除
1)建立数学系学生的视图C_Student,并要求进行修改和插入操作时仍需保证该视图只有
数学系的学生,视图的属性名为Sno,Sname,Sage,Sdept。
create view c_student
as select sno,sname,sage,sdept
from student
where sdept='数学'
with check option
2) 用SSMS的方式建立学生的学号(Sno)、姓名(Sname)、选修课程名(Cname)及成绩(Grade)
的视图Student_CR。
3) 定义一个反映学生出生年份的视图Student_birth(Sno, Sname, Sbirth)。
create view student_birth
as select sno,sname,2013-sage as'sbirth' from student
go
4)建立先修课程为空的课程视图v_course
create view v_course
as select cno,cname
from course
where cpno is null
go
5) 建立成绩高于90分的女生成绩视图v_F_grade(包括学号,姓名,课程号及成绩列)create view v_f_grade
as select student.sno,sname,o,grade
from student,sc,course
where student.sno=sc.sno and o=o
and ssex='女'and grade>90
go
6)建立视图S_AVGAGE(其中包括性别SSEX与平均年龄AVG_AGE两列)用以反映男生、女
生的平均年龄
create view s_avgage
as select ssex,avg(sage)as'avg_age'
from student
group by ssex
7)对前面创建的视图S_AVGAGE执行更新操作:
UPDATE S_AVGAGE
SET AVG_AGE = 85
WHERE ssex = '女'
上述语句能否成功执行?为什么?
对视图或函数'S_AVGAGE' 的更新或插入失败,因其包含派生域或常量域。
8) 在数学系的学生视图C_Student中找出年龄(Sage)小于20岁的学生姓名(Sname)和年龄
(Sage)。
select sname,sage
from c_student
where sage<20
9) 在Student_CR视图中查询成绩在85分以上的学生学号(Sno)、姓名(Sname)和课程名称
(Cname)。
select sno,sname,cname
from student_cr
where grade>85
10) 将数学系学生视图C_Student中学号为S05的学生姓名改为“黄海”。
update c_student
set sname='黄海'
where sno='S05'
11) 向数学系学生视图C_Student中插入一个新的学生记录,其中学号为“S09”,姓名为
“王海”,年龄为20岁。
insert into c_student(sno,sname,sage,sdept)
values('S09','王海',20,'数学')
12) 删除数学系学生视图C_Student中学号为“S09”的记录。
delete
from c_student
where sno='S09'
实验三索引和视图徐龙琴、刘双印设计制作
四、思考题
1.在一个表中可以有多个聚簇索引吗?为什么?
聚簇索引也叫簇类索引,是一种对磁盘上实际数据重新组织以按指定的一个或多个列的值排序。
由于聚簇索引的索引页面指针指向数据页面,所以使用聚簇索引查找数据几乎总是比使用非聚簇索引快。
每张表只能建一个聚簇索引,并且建聚簇索引需要至少相当该表120%的附加空间,以存放该表的副本和索引中间页。
2.视图有哪些优点?
使用视图的优点如下:
查询的简单性:将复杂的查询(如多表的连接查询)定义为视图,保留了用户所关心的数据内容,剔除了那些不必要的冗余数据,使其数据环境更加容易控制,从而达到简化用户浏览和操作的目的;
安全保护:数据库管理员可以在限制表用户的基础上进一步限制视图用户,可以为各种不同的用户授予或撤销在视图上的操作权限,这样,视图用户只能查询或修改他们各自所能见到的数据,从而保证数据库中数据的安全;
掩盖数据库的复杂性:使用视图可以把数据库的设计和用户的使用屏蔽开来,当基本表发生更改或重新组合时,只需要修改视图的定义即可。
用户还能够通过视图获得和数据库中的表一致的数据。
3.总结创建视图的方法有几种,各种方法实现的步骤,各举一例实现。
两种。
一种是SSMS创建,另一种是T—SQL语句创建。