实验三 SQL复杂查询与视图

实验三 SQL复杂查询与视图
实验三 SQL复杂查询与视图

实验三 SQL复杂查询与视图

一.实验目的:

1.掌握SQL语言中SELECT语句的多种查询方式。

2. 掌握视图的创建与删除方法。

3.掌握视图的查询与更新方法。

4.掌握聚焦函数的使用方法。

5.掌握集合查询方法。

二.实验内容:

1.多表查询

①查询编号为300的客户通过的代理商的姓名和地址。

②查询产品编号为0033、订货数量大于100的客户编号及其姓名。

③查询每个客户的订单,显示客户编号、客户名、订单编号及订货日期。

④查询所有2000年以后订货项目。

⑤查询提成金额为100000以上(含100000)的代理商所对应的客户。

2、嵌套查询

分别用带有IN谓词的子查询和带比较运算符的子查询实现以下操作

①查询与“刘晨”在同一个系学习的学生。

②查询选修了课程名为“操作系统”的学生。

3.建立视图

①建立含有订单号及拥有该订单的客户编号和代理商号三个字段的视图。

②建立一个含有产品编号、产品库存量及产品在订量三个字段的视图。

③建立一个含有客户编号、客户所订的产品、该产品的订购价及该产品的描述四个字段的视图。

④建立一个含计算机科学系的学生及年龄不大于19岁的学生的视图。

⑤建立一个既选修了课程1又选修了课程2的学生视图。

4.在视图基础上的查询

①查询所有订单的客户和代理商。

②查询编号为400的客户所订的产品以及该产品的单价。

③查询选修课程1的所有学生。

11

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数据库的《学生表》和《课程表》创建主键索引。

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

索引 --为表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)

实验三 索引和视图

实验三索引和视图 一、实验目的 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(学号)升序建唯一索引

视图与索引作业

视图与索引作业 -标准化文件发布号:(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、名、姓及其上级的 姓

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

数据库原理实验报告实验 四视图与索引 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中的任意一条数据的供应数量。

视图和索引(数据库实验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='计算机'

实验训练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触发器实现。

实验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管理平台建立

索引和视图实验报告

7-1编程在teaching 数据库中的student 表的sname 列上创建唯一索引 IDX_sname。 USE teaching GO CREATE UNIQUE INDEX IDX_sname ON student(sname) 7-2 编程在teaching数据库中的student表的studentno和classno列上创建组合索引IDX_sc。 USE teaching IF EXISTS(SELECT name FROM sysindexes WHERE name='IDX_sc') DROP INDEX student.sc GO CREATE INDEX IDX_sc ON student(studentno,classno) 7-3 重新组织teaching 数据库中student 表上的IDX_sc 索引。 USE teaching ALTER INDEX IDX_sc ON dbo.student REORGANIZE 7-4 重新生成teaching 数据库中student 表上的IDX_sname 索引,设置填充索引,将填充因子设置为80%,设置将中间排序结果存储在tempdb中。 USE teaching ALTER INDEX IDX_sname ON dbo.student REBUILD WITH(PAD_INDEX =ON,FILLFACTOR= 80,SORT_IN_TEMPDB =ON) 7-5 重新生成teaching 数据库中student 表上的C_studentno 索引,将其修改为聚集唯一索引,并指定该索引的叶级页的填充度为70%。 USE teaching GO CREATE UNIQUE CLUSTERED INDEX C_studentno ON dbo.student(studentno) WITH(PAD_INDEX =ON,FILLFACTOR= 70,DROP_EXISTING =ON)

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 (学号,课程编号)

实验七 索引与视图实验

实验七索引与视图实验 一、实验目的及要求 本实验目的是掌握视图和索引的两种创建方式,并掌握视图的使用,理解索引的优点。基本要求包括: ●理解视图与基本表的区别。 ●掌握通过管理器和SQL进行视图的定义、修改和删除方法。 ●掌握通过管理器和SQL进行索引的定义和删除方法。 ●理解索引的功能及类型。 ●理解通过视图对基本表的修改。 二、实验原理及背景知识 (一)了解视图的知识 1、视图的概念与实质 视图是一种虚表,具有表的外观和部分特征,但是视图的实质是一组SELECT语句构成的SQL语句。对视图的修改都会转换为对基本表的修改,但不是所有的视图都可以修改的。 2、创建视图的SQL语法格式 CREATE VIEW view_name AS SELECT语句 WITH CHECK OPTION 其中WITH CHECK OPTION选项表示强制视图上执行的所有数据修改语句都必须符合由SELECT语 句设置的准则。 (二)了解索引的知识 1、理解索引的作用 索引是用来加快数据查询速度的一种对象。索引的维护需要耗费一定资源,因此索引不是越多越好,一般经常查询的列才创建索引,经常修改的表一般不创建索引。 2、了解索引的类型 聚簇索引:索引顺序跟数据物理存储顺序一致,每个表至多有一个聚簇索引。 唯一性索引:这种索引要求字段的值是唯一的,不能重复,但可以为空。 组合索引:建立在组合字段上的创建索引。 3、创建索引的语句格式 CREATE [UNIQUE]|[ CLUSTERED] INDEX index_name ON table_name(colum_name [ASC/DESC][,colum_name[ASC/DESC]]......) 4、创建非主键聚簇索引 在SQL Server 2005中,会自动在主键上创建聚簇索引。如果需要在非主键上创建聚簇索引,则首先要删除主键约束,再重新创建非聚簇索引的主键约束,最后再在其他字段上创建聚簇索引。

实验9 视图与索引_答案

实验9 视图与索引 1.实验目的 (1)掌握使用SQL Server管理平台和Transact-SQL语句CREATE VIEW 创建视图、ALTER VIEW 修改视图的用法。 (2)掌握使用SQL Server管理平台和Transact-SQL语句CREATE INDEX 创建索引、查看索引、DROP INDEX删除索引的方法。 (3)了解删除视图的Transact-SQL语句DROP VIEW的用法。 (4)了解索引和视图更名的系统存储过程sp_rename的用法。 2.实验内容及步骤 请先附加studentsdb数据库,然后完成以下实验。 (1)student_info表为基础,使用SQL Server管理平台建立名为 v_stu_i的视图,使视图显示学生姓名、性别、家庭住址。 go create view v_stu_i as select姓名,性别,家庭住址 from student_info; (2)使用Transact-SQL语句CREATE VIEW建立一个名为v_stu_c的视图,显示学生的学号、姓名、所学课程的课程编号,并利用视图查询学号为 '0003'的学生情况。 答: go create view v_stu_c as select a.学号,a.姓名,b.课程编号 from student_info a inner join grade b on a.学号=b.学号; (3)基于student_info表、curriculum表和grade表,建立一个名为 v_stu_g的视图,视图中具有所有学生的学号、姓名、课程名称、分数。答:go

create view v_stu_g as select a.学号,a.姓名,c.课程名称,b.分数 from student_info a inner join grade b on a.学号=b.学号 inner join curriculum c on b.课程编号=c.课程编号 (4)使用视图v_stu_g查询学号为'0001'的学生的所有课程与成绩,效果 如下图所示。 答:select*from v_stu_g where学号='0001' (5)分别使用SQL Server管理平台和Transact-SQL语句修改视图v_stu_c,使之显示学号、姓名、每个学生所学课程数目。 答: --方式一,利用子查询 select学号,姓名, (select count(*)from grade b where b.学号=a.学号) as 所学课程数目from student_info a --方式一,利用左外连接 select a.学号,姓名,b.所学课程数目 from student_info a left join (select学号,count(distinct课程编号)as所学课程数目 from grade group by学号) b on a.学号=b.学号 (6)使用Transact-SQL语句ALTER VIEW修改视图v_stu_i,使其具有列 名学号、姓名、性别。 答: alter view v_stu_i as select学号,姓名,性别from student_info; go (7)使用系统存储过程sp_rename将视图v_stu_i更名为v_stu_info。

索引和视图实验答案

《索引和视图》实验 一、实验目的与要求 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 2003 2、数据库管理系统:SQL Server 2005 三、实验内容 1.分别使用SQL Server管理平台和Transact-SQL语句为教务管理系 统数据库的《学生信息》和《课程信息》创建主键索引。 (1) 使用SQL Server管理平台为教务管理系统数据库的《学生信息》和《课程信息》创建主键索引。

(2) 使用Transact-SQL语句为教务管理系统数据库的《学生信息》和《课程信息》创建主键索引。 USE教务管理系统 GO create unique nonclustered index学生信息_idx on学生信息(学号) GO USE教务管理系统 GO create unique nonclustered index课程信息_idx on课程信息(课程编号) GO 2.使用SQL Server管理平台按《课程信息》的课程编号列创建唯一 性索引。

数据库实验5 索引和视图(答案)

实验5 索引和视图 学号:18103317 专业:电子信息工程 一、实验内容 1.分别使用SQL Server管理平台和Transact-SQL语句为studentsdb数据库的《学生表》和《课程表》创建主键索引。 2.使用SQL Server管理平台按《课程表》的课程编号列创建唯一性索引。 3.分别使用SQL Server管理平台和Transact-SQL语句为studentsdb数据库的《成绩表》的“分数”字段创建一个非聚集索引,命名为《成绩_index》。 CREATE INDEX 成绩_index ON 成绩表(分数) 4.为studentsdb数据库的《成绩表》的“学号”和“课程编号”字段创建一个复合唯索引,命名为《成绩表_id_c_ind》。 CREATE UNIQUE INDEX 成绩表_id_c_ind ON 成绩表(学号,课程编号) 5.分别使用SQL Server管理平台和系统存储过程sp_helpindex查看《成绩表》和《学生表》上的索引信息。 6.使用SQL Server管理平台的“向导'工具对《成绩表》创建一个聚集索引和唯一索引。 7.使用系统存储过程sp_rename将索引《成绩表_index》更名为《成绩表_ind》。 Sp_rename ‘grade.grade_index’,’grade_ind’,’INDEX’ 8.分别使用SQL Server管理平台和Transact-SQL语句DROP INDEX删除索《成绩表_ind》再次使用系统存储过程sp_helpindex查看《成绩表》上的索引信息。 DROP INDEX grade.grade_ind 9.在studentsdb数据库中,以《学生表》为基础,使用SQL Server管理平台建立名为v_stu_i的视图,使视图显示学生姓名、性别、家庭住址。

实验三 索引和视图讲解

徐龙琴、刘双印设计制作实验三索引和视图 实验三索引和视图 一、实验目的 1.掌握利用SSMS和T—SQL语句创建和删除索引的两种方法。 2.掌握利用SSMS和T—SQL语句创建、查询、更新及删除视图的方法。

语句建立该数据库不能为空值,数数数 ) ) '21',,'自动化'',王建平( Student insertintovalues'S01',''男') 刘华( Student insertintovalues'S02',''自动化'19'女',,''', ) '18',,''计算机'',范林军,( Student insertintovalues'S03'''女) ( Student insertintovalues'S04''19''','李伟'男,,'数学',) '18',数学,'''男','黄 河,'S05'( Student into insertvalues' )'数学','20','男','长江','S06'(values Student into insert 徐龙琴、刘双印设计制作实验三索引和视图

Course table create( , key primary)(char Cno 4 null, not 10 (char Cname ) 10(char) Cpno

)2(char Credit , ). 徐龙琴、刘双印设计制作索引和视图实验三 ) '4'NULL,'英语',insert into Course values('C01',) '2'','C05 ',into Course values('C02','数据结构insert) '2''C02','values('C03','数据 库,intoinsert Course ) '3''C03','DB_'C04',设计',insert into Course values() '3'NULL, 'C05'(,'C++',insert into Course values) ,'3'','C07',insert into Course values('C06''网络原理) '3''C05','C07'(,'操作系统',intoinsert Course values

实验: 索引和视图

实验4索引和视图 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.实验内容及步骤 请先附加studentsdb数据库,然后完成以下实验。 (1)分别使用SQL Server管理平台和Transact-SQL语句为studentsdb数据库的student_info表和curriculum表创建主键索引。 答: (2)使用SQL Server管理平台按curriculum表的'课程编号'列创建唯一性索引。 (3)分别使用SQL Server管理平台和Transact-SQL语句为studentsdb数据库的grade表的'分数'字段创建一个非聚集索引,命名为grade_index。 答: (4)为studentsdb数据库的grade表的'学号'和'课程编号'字段创建一个复合唯一索引,命名为grade_id_c_ind。 答: (5)分别使用SQL Server管理平台和系统存储过程sp_helpindex查看grade表和student_info表上的索引信息。 答: (6)使用SQL Server管理平台对grade表创建一个聚集索引和唯一索引。 (7)使用系统存储过程sp_rename将索引grade_index更名为grade_ind。 答: (8)分别使用SQL Server管理平台和Transact-SQL语句DROP INDEX删除索引 grade_ind。再次使用系统存储过程sp_helpindex查看grade表上的索引信息。 答: (9)在studentsdb数据库中,以student_info表为基础,使用SQL Server管理平台建立名为v_stu_i的视图,使视图显示学生姓名、性别、家庭住址。 (10)在studentsdb数据库中,使用Transact-SQL语句CREATE VIEW建立一个名为 v_stu_c的视图,显示学生的学号、姓名、所学课程的课程编号, 并利用视图查询学号为'0003'的学生情况。 答: (11)基于student_info表、curriculum表和grade表,建立一个名为v_stu_g的视图,视图中具有所有学生的学号、姓名、课程名称、分数。 使用视图v_stu_g查询学号为'0001'的学生的所有课程与成绩,如图-9所示。

视图和索引(数据库实验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(定义时不加withcheck option),存放全部计算机系老师得信息。 视图定义代码: CREATE VIEWV_TCSAS ?SELECTtno,tn,sex,age,prof,sal,comm,T.dno FROMT,D WHERET、dno=D.dno AND D.dn=’计算机' 视图查询语句与查询结果截图: SELECT*FROMV_TCS 2.定义视图V_sal,存放全体教师得教师号,教师姓名,教师酬金(工资+岗位津贴),职称信息。视图定义代码: CREATEVIEWV_sal AS SELECTtno教师号,tn教师姓名,sal+comm教师酬金,prof支撑信息 FROMT

视图查询语句与查询结果截图: SELECT*FROMV_sal 3.向V_TCS中插入一条计算机专业教师得新记录,并查询V_TCS视图得全部记录。视图更新代码: INSERTINTOV_TCS SELECT'T10','良瑗’,'女’,20,'讲师',6000,8000,D.dno FROM D ?WHERED。dn='计算机' 视图查询语句与查询结果截图: SELECT*FROM V_TCS

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

一、实验步骤 (一)附加上次实验所创建的数据库“db_Library”,并回顾该数据库的数据表信息。(二)练习创建和管理视图 1、使用管理控制台创建一个名为“计算机系借阅信息_VIEW”的视图,要求显示计算机系读者2011-1-1以后借阅的图书信息,包括“读者姓名”、“图书编号”和“借阅日期”三个字段。 打开sql server管理控制台窗口,打开新建视图对话框。在添加表中添加tb_borrow和 tb_reader表,在选中输出复选框中选中:读者编号,图书编号,借阅日期。 use db_library go select * from 读者借阅信息_VIEW where 所在系='计算机'and 借阅日期>'2011_1_1' 2、使用T-SQL语句创建一个名为“读者借阅信息_VIEW”的视图,要求显示所有的读者借阅信息,包括“读者编号”、“姓名”、“系部”、“图书编号”、“图书名称”和“借阅日期”等字段。 use db_library go create view 读者借阅信息_VIEW as select tb_readder.读者编号,tb_reader.姓名,tb_reader所在系,tb_book.图书编 号,tb_book.书名,tb_borrow.借阅日期 from tb_reader,tb_borrow,tb_book where tb_reader.读者编号=tb_borrow.读者编号and tb_book.图书编号=tb_borrow.图书编号 Select * from读者借阅信息_VIEW 3、使用管理控制台查看“读者借阅信息_VIEW”视图的定义信息和依赖的对象。 打开管理控制台,在数据库“db_Library”下的“视图”对象;在左边窗口右击“读者借阅息_VIEW”该视图,在在窗口中选中“查看依赖关系”选项。 4、使用系统存储过程查看“计算机系续借阅信息_VIEW”视图的定义信息和依赖的对象。use db_library go sp_helptext读者借阅信息_VIEW _ sp_depends 读者借阅信息_VIEW 5、使用管理控制台修改“计算机系借阅信息_VIEW”视图,要求显示计算机系或外语系读者2011-1-1以后借阅的图书信息,包括“读者姓名”、“所在系”、“图书编号”和“借阅日期”四个字段。 打开管理控制台,右击“读者借阅信息_VIEW”视图,选择修改,在弹出的复框中选择 “tb-reader, tb_borrow表,选择“读者姓名”、“所在系”、“图书编号”和“借阅日期”四个字段,在所在系里选中计算机系和外语系,并保存该修改。 6、修改“计算机系借阅信息_VIEW”视图的名称为“计算机外语借阅信息_VIEW”。

相关文档
最新文档