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

上传者: 43990727 | 上传时间: 2025-06-03 16:50:55 | 文件大小: 414KB | 文件类型: DOC
### SQL Server 实验知识点解析 — 索引与视图 #### 一、实验目标概述 本实验旨在通过一系列操作加深对SQL Server中索引和视图的理解与应用能力。具体包括以下几个方面: 1. **索引创建**:熟练掌握通过SQL Server图形界面工具以及Transact-SQL语句(`CREATE INDEX`)来创建索引。 2. **索引查看**:学会使用SQL Server图形界面工具和Transact-SQL语句(`sp_helpindex`)来查看索引信息。 3. **索引删除**:熟悉使用SQL Server图形界面工具和Transact-SQL语句(`DROP INDEX`)来删除索引。 4. **索引重命名**:了解如何使用系统存储过程`sp_rename`来重命名索引。 5. **视图创建**:掌握使用SQL Server图形界面工具和Transact-SQL语句(`CREATE VIEW`)创建视图的方法。 6. **视图修改**:学习如何使用Transact-SQL语句(`ALTER VIEW`)来修改已有的视图。 7. **视图删除**:了解使用Transact-SQL语句(`DROP VIEW`)删除视图的基本方法。 #### 二、实验内容详解 ##### 1. 创建主键索引 - **SQL Server管理平台**: 打开SQL Server Management Studio (SSMS),选择目标数据库,找到表`student_info`或`curriculum`,右键点击“设计”,在表设计器中选中主键列,设置为主键。 - **Transact-SQL语句**: ```sql USE studentsdb; GO -- 为student_info表创建主键索引 ALTER TABLE student_info ADD CONSTRAINT PK_student_info PRIMARY KEY (学号); -- 为curriculum表创建主键索引 ALTER TABLE curriculum ADD CONSTRAINT PK_curriculum PRIMARY KEY (课程编号); ``` ##### 2. 创建唯一性索引 - **SQL Server管理平台**: 同上,但需在索引属性中设置唯一性。 - **Transact-SQL语句**: ```sql USE studentsdb; GO CREATE UNIQUE INDEX idx_unique_course ON curriculum (课程编号); ``` ##### 3. 创建非聚集索引 - **SQL Server管理平台**: 与创建主键索引相似,但在属性中选择非聚集类型。 - **Transact-SQL语句**: ```sql USE studentsdb; GO CREATE NONCLUSTERED INDEX grade_index ON grade (分数); ``` ##### 4. 创建复合唯一索引 - **SQL Server管理平台**: 选择多列并设置为唯一索引。 - **Transact-SQL语句**: ```sql USE studentsdb; GO CREATE UNIQUE INDEX grade_id_c_ind ON grade (学号, 课程编号); ``` ##### 5. 查看索引信息 - **SQL Server管理平台**: 在表设计视图中右键表 -> “修改” -> “索引/键”。 - **Transact-SQL语句**: ```sql USE studentsdb; GO EXEC sp_helpindex @objname = 'grade'; EXEC sp_helpindex @objname = 'student_info'; ``` ##### 6. 创建聚集索引和唯一索引 - **SQL Server管理平台**: 同创建主键索引,但在属性中选择聚集类型和唯一性。 - **Transact-SQL语句**: ```sql USE studentsdb; GO CREATE CLUSTERED INDEX idx_grade_clustered ON grade (学号); CREATE UNIQUE INDEX idx_grade_unique ON grade (课程编号); ``` ##### 7. 重命名索引 - **Transact-SQL语句**: ```sql USE studentsdb; GO EXEC sp_rename 'grade.grade_index', 'grade_ind', 'INDEX'; ``` ##### 8. 删除索引 - **SQL Server管理平台**: 在表设计视图中选择索引 -> 右键点击 -> “删除”。 - **Transact-SQL语句**: ```sql USE studentsdb; GO DROP INDEX grade.grade_ind; ``` ##### 9. 创建视图 - **SQL Server管理平台**: 新建查询窗口 -> 输入`CREATE VIEW`语句 -> 执行。 - **Transact-SQL语句**: ```sql USE studentsdb; GO -- 创建v_stu_i视图 CREATE VIEW v_stu_i AS SELECT 学号, 性别, 家庭住址 FROM student_info; -- 创建v_stu_c视图 CREATE VIEW v_stu_c AS SELECT 学号, 姓名, 课程编号 FROM student_info JOIN curriculum ON student_info.学号 = curriculum.学生编号 WHERE 学号 = '0003'; ``` ##### 10. 修改视图 - **SQL Server管理平台**: 编辑视图 -> 修改查询 -> 保存。 - **Transact-SQL语句**: ```sql USE studentsdb; GO ALTER VIEW v_stu_c AS SELECT 学号, 姓名, COUNT(*) AS 课程数目 FROM student_info JOIN curriculum ON student_info.学号 = curriculum.学生编号 GROUP BY 学号, 姓名; ``` ##### 11. 删除视图 - **Transact-SQL语句**: ```sql USE studentsdb; GO DROP VIEW v_stu_c; ``` 通过以上实验内容的操作与实践, 学生们可以深入理解SQL Server中的索引与视图的创建、管理及优化等关键技术, 进一步提升数据库管理和数据处理的能力。

文件下载

评论信息

免责申明

【只为小站】的资源来自网友分享,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,【只为小站】 无法对用户传输的作品、信息、内容的权属或合法性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论 【只为小站】 经营者是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。
本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二条之规定,若资源存在侵权或相关问题请联系本站客服人员,zhiweidada#qq.com,请把#换成@,本站将给予最大的支持与配合,做到及时反馈和处理。关于更多版权及免责申明参见 版权及免责申明