- 1、本文档共66页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第7章 索引和视图
第7章 索引和视图;本章学习目标;7.1 索引;;;;;;使用“对象资源管理器”创建索引;使用“对象资源管理器”创建索引;使用“对象资源管理器”创建索引;;属性和参数说明:
UNIQUE:建立唯一索引。
CLUSTERED:建立聚集索引。
NONCLUSTERED:建立非聚集索引。
index_name:索引名称,索引名称在表或视图中必须唯一,但 在数据库中不必唯一。
object:表名或视图名。
column:索引所基于的一列或多列。
ASC|DESC:确定特定索引列的升序或降序排序方向。默认值 为ASC(升序)。
INCLUDE(column_name[,...n]):指定要添加到非聚集索引的 叶级别的非键列。非聚集索引可以唯一,也可以不 唯一。
relational_index_option:索引属性。如DROP INDEX ix_Student表示先删除已经存在的索引,因为索引 名称不能重复,否则会出错。;【例7.1】使用T-SQL语句在CJGL数据库中的Student表
上创建名为IX_Student的唯一、聚集索引,该索引基于
表中的“学号”列。
T-SQL脚本语句如下:
USE CJGL
GO
CREATE UNIQUE CLUSTERED
INDEX IX_Student
ON Student(StuNo)
GO ;;;使用“对象资源管理器”显示索引
在“对象资源管理器”中找到相应的表,展开“索引”
前面的“+”号后,会列出已经存在的索引列表,可以用
鼠标右键单击其中一个索引名称,在打开的快捷菜单
中选择“属性”,即可弹出相应的“索引”属性窗口,进
行查看相关索引的信息。
如下页图所示:;;;;;;;;;;;;;;;;;;;;7.2 视图;;;使用“对象资源管理器”创建视图;使用“对象资源管理器”创建视图;使用“对象资源管理器”创建视图;使用“对象资源管理器”创建视图;使用T-SQL语句创建视图
T-SQL语句创建视图的基本语法如下:
CREATE VIEW view_name [(column[,...n])]
[WITHview_attribute[,...n]]
AS select_statement[ ;]
属性和参数说明:
view_name:
column:
WITH view_attribute:
AS:
select_statement:;【例7.11】用T-SQL语句在Student表上创建名为
v_Student的视图,该视图只具有查看所有姓“王”学生信
息的功能。
(1)创建视图
在“新建查询”窗口中输入以下SQL语句:
use CJGL
go
create view v_Student
as
select * from Student where 姓名 like 王%
go;; 接下来看一个较为复杂的例子(基表是多张表)
【例7.12】创建一个名为“v_C语言成绩”的视图,要求该
视图能显示所有“C语言程序设计”的成绩为合格的学生的
学号、姓名和分数。
题目分析:
根据本例的要求可知,所要查询的列有学号、姓名和分数,但是由于Score表中并没有相对应的列,所以这里的操作应该在表Score、Course和Student上进行。;在“查询”窗口中输入以下代码:
use CJGL
go
create view v_C语言成绩
as
select distinct Student.StuNo,Student.StuName,Score.Grade
from Student,Score,Course
where Score.Grade=60 and Student.StuNo=Score.StuNo and Score.CouNo=
(
select Course.CouNo
from Course
where CouName=C语言程序设计
)
go; 使用Group by子句、命名新列
【例7.13】创建一个名为“v_专业学生数”的视图,要求
该视图能显示各专业的学生总数。
在“查询”窗口中输入以下代码:
use CJGL
go
create view v_专业学生数
as
select 专业班级,count(*) 各专业学生数 from Student
group by 专业班级
go;;重命名视图
使用“对象资源管理器”重命名视图
操作比较简单,如下图所示:;;;修改视图
使用“对象资源管理器”修改视图
使用“对象资源管理器”创建视图的方法较为复杂
文档评论(0)