### 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中的索引与视图的创建、管理及优化等关键技术, 进一步提升数据库管理和数据处理的能力。
2025-06-03 16:50:55 414KB
1
vue 利用高德地图的巡航轨迹, 做带进度条和倍速的轨迹回放demo,npm run serve启动,npm install安装依赖,默认端口打开即可见
2024-01-15 15:43:01 224KB
1
基于C_S结构的Socket程序设计 滑动窗口协议模拟程序 Web Server程序 无线局域网802.11协议CSMACA算法模拟程序 路由器基本功能实现程序等等。。。很全的
1
Radmin+Server-3.5+完美绿色破解版(x32+x64通用)+第三版
2022-12-24 22:53:19 17.69MB Radmin+Serve
1
MACSV系统OPC Server通信软件使用说明.
2022-11-18 09:54:14 208KB MACSV系统OPC Serve
1
vue3项目,带增删改,连带node_modules包,下载后运行npm run serve启动,如果依赖安不上npm i --legacy-peer-deps npm i eslint-plugin-vue,再npm run serve
2022-11-08 14:54:52 107.79MB vue3
1
基于Python 的类ServerLess 的脚本开发、管理及执行平台.zip基于Python 的类ServerLess 的脚本开发、管理及执行平台.zip基于Python 的类ServerLess 的脚本开发、管理及执行平台.zip
1
一、实验题目 1.利用管理工具创建数据库,表和表间的关系 2.利用SQL语句创建数据库,表和表间的关系
2022-10-23 18:04:12 1.45MB 数据库
1
1. 内含 Zotero 四大超好用插件(pdf-translate/ZotFile/茉莉花/Zotero Scihub) 2. 另包含 PDFtk serve 的安装程序,结合 茉莉花 插件使用
2022-10-19 11:04:19 3.24MB Zotero pdf-translate ZotFile 茉莉花
通过Rufus软件,镜像下载到U盘安装,显示器亮后一直按delete进入BIOS选择boot 进行安装。相关步骤说明已上传文档,中间步骤偶有不同,一般选择yes、continue即可。
2022-08-03 18:01:45 2.06MB ubuntu
1