SQLServer2008第7章索引与视图
- 格式:ppt
- 大小:913.00 KB
- 文档页数:49
实验六:关系图、索引和视图的定义及维护一、实验目的1.掌握创建关系图的方法。
2.掌握创建、查看和删除索引的操作和方法。
3.理解视图的含义,能使用SQL Server企业管理器创建视图并对其进行管理。
二、实验环境已安装SQL Server 企业版的计算机(120台);具有局域网环境,有固定IP;三、实验学时2学时四、实验要求1.索引和视图的创建和管理也可以用查询分析器实现,参照课本上的相关Transact-SQL命令,写出对应的Transact-SQL实现代码。
2.将视图的创建、修改、删除过程与实验二中表的创建、修改、和删除进行对照,看看有什么相同点和不同点。
3.完成实验报告;五、实验内容及步骤以系统管理员身份登录到SQL Server服务器,在SQL Server2005界面中实现第1题操作,其余题目用SQL Server2005界面及T-SQL 语句实现:1.使用创建数据库关系图向导为学生选课数据库中的Student表,Course表,SC表创建关系图。
2.为Student表创建一个基于Sname(姓名)的按降序排列的聚簇索引Stusname。
CREATE CLUSTERED INDEX Stusname ONStudent(Sname DESC)3.为学生—课程数据库中的Student,Course,SC 3 个表建立索引。
其中student按学号升序建唯一索引,course按课程号升序建唯一索引,SC按学号升序和课程号降序建唯一索引,索引名称分别为Stusno,Coucno,Scno。
CREATE UNIQUE INDEX Stusno ON Student(Sno);CREATE UNIQUE INDEX Coucno ON Course(Cno);CREATE UNIQUE INDEX SCno ON SC(Sno ASC,Cno DESC);4.删除 Student表中的Stusname索引。
第7章索引关键词:索引索引类型创建索引查看索引删除索引学习要求:本章主要阐述了SQL Server 2000中索引的创建和使用方法。
并且全面地、系统地介绍了索引的概念、索引的优点;索引的分类;创建、修改和删除索引的方法。
重点分析了索引的创建和使用方法。
学习和掌握本章,是对SQL Server 2000数据库的灵活运用。
7.1 索引简介引言索引是对数据库表中一个或多个列的值进行排序的结构。
索引是一个表,这个表中包含了某个表中一列或者多列值的集合,以及这些值在数据表中的存储位置的物理地址。
利用索引可以快速访问数据库表中的特定信息,它可以使数据库程序无须对整个表进行扫描,就可以在其中找到所需数据,因为索引是有序排列的,所以,可以通过高效的有序查找算法(如折半查找等)找到索引项,再根据索引项中记录的物理地址,找到查询结果的存储位置。
7.1.1 创建索引的原因索引是为了加速检索而创建的一种存储结构。
索引的优点:● 提高查询速度。
● 提高连接、ORDER BY和GROUP BY执行的速度。
● 查询优化器依靠索引起作用。
在执行查询时,SQL Server会自动对查询进行优化。
但是SQL Server的优化是依靠索引来进行的。
因此,在建立索引后,SQL Server会依据建立的索引,决定采取哪些索引,使得检索的速度最快。
● 强制实施行的惟一性。
创建惟一索引,可以保证表中的数据不重复。
7.1.2 建立索引应该考虑的问题索引的创建可提高查询速度,但它是以占用更多的存储空间为代价的,所以选择在哪些属性上建立索引就至关重要。
一个原则就是创建了索引后查询效率应该得到明显的改善。
通常可以在主键、外键、作为连接的属性、经常查询的属性上建立索引。
有关建立索引的原则已在第1章讨论过。
7.2 索引类型7.2.1 B_树索引结构一棵秩为d的B树应满足(秩是与物理块大小有关的量):(1)以块为结点,每块最多包含2d个关键字。
(2)除根结点外,每个结点至少包含d个关键字(根结点至少包含一个关键字)。
Sql2008全文索引简明教程如果不存在此服务的,需要确认是否安装全文索引功能--检查数据库PS2是否支持全文索引,如果不支持 --则使用sp_fulltext_database 打开该功能if(select databaseproperty('PS2','isfulltexte nabled'))=0execute sp_fulltext_database 'en able'全文目录是用来存储全文索引的-J 20193^0 L J 两据犀关系图 I+I 一I 表 SOm 」同丈词(±1 口可骗程性s s ervi ce Broker" 曰立存$ ___________全文目录gTtsCi+i 」吩氏方案 田LJI 分N 全文非索引宝表 N 責金性二、为表定义全文索引、新建全文目录、开启 SQL Full-text Filter Daemon Launcher服务提醒:开始-> 管理工具-> 服务r 斬建苴直血* :H 1**相疔© ►■《痒7圍T 警喝團口二(FS4 J J*^OTu+于斬建衰00… 设计◎诰择前1000行⑴ 编辑前200 循写裳脚本対© 直看依赖关条S存储(A)定文全文家引®)■■启用全交索引⑷.选中需要操作的数据库,启用全文检索执行 SQL 语句,启用全文检索:Execute sp_fulltext_database 'enable'文住㈤ 堀辑砂 査昏© 査冏畑 顶目即 碉试⑴ 工旦⑵ gnix) tizt) 朝韵onSQTJDnP 育X 塔Tat orExecute st XulLtext database j enetle"l_ 出.ZQLGmru 10.S) 1GJ7 TIN IOSH04TOOD\AJjkiLiiili .id ) 0 一I 埶囁岸S I 」.赛、樹摘屋 Eh 」数瘫慣磐回 J 20ie_i f在需要全文检索的 数据表上点击右键-> 全文索引-> 定义全文索引2013_bS一i 数拥库关系图d 克四、点击下一步,按提示选择 1•确认下一步+d.bo. d.3 3 a [+ E+f+E EEIbo. li llo.王E国匡一ibc. dild.j ibo. i]d.bo. diibe. iiibc. Aillbo. i]2•选择唯一索引,通常是主键3•选择要建立的全文索引列,对于断字符的选择如果列存的是中文就选择chinese如果是英文就选择English4•选择索引更新方式,可以先自动更新,以后数据量大了可以设置添加全文索引的计划5•选择全文目录Oddness赤水市旅游车 赤水床狒车站五、全文索引的SQL 查询关键字 建立好全文索引后就可以使用 SQL 语句来查询了,主要用带三个关键字 CONTAINS FREETEXTCONTAINSTABL K FREETEXTTABLE 1. CONTAINS搜索单个词和短语的精确或模糊的匹配项, 要搜索的内容必须是个有 意义的词语,比如说 苹果” 建设厅”不能是一些没意义的词语, 比如 阿迪撒啊是”儿儿的”这样的词语即使LIKE 是能查询出来,但全文索引对这样没意义的词语可能没有建立索 引,查不出来SELECT FROMdbo.BusinessWHERECONTAINS (Addres 旅游') 实现功能:查询Business 表中Address 列包含 旅游”的行>essiD BusinesslypelD Busiiesslype Name MarneF*honeBusiness Scopemi 3宾馆©店赤水红城商劳宾馆 D852-29M7S9 42 円26会師0£53 28S6111详细查看: /zh -cn/Iibrary/ms187787.aspx 2. FREETEXT和CONTAIN 啖似,不同的是它会先把要查询的词语先进性分词然后 在查询匹配项select* from dbo.Bus in ess where freetext (Address,'带婴儿旅游')BosinessScone AddressURL QQPin^n赤水市齢车站咅http;//qghQswtiQ林市步行衔爱多爭婴儿游济http://addlyyyg赤水时车站妾hrttpz//26hs详细查看: /zh -cn/library/ms176078.aspx 3. CONTAINSTABLE 在查询方式上与 CONTAINS 几乎一样。
创建SQL Server 2008分区对齐索引视图数据恢复软件 在此练习中,您将创建分区对齐索引视图。
索引可以包含表中所有行的数据,不过,它消除了分区的某些优势。
但是,可以创建分区对齐视图,在分区对齐视图上又可以创建索引。
然后,无论查询是否显式使用分区对齐视图,都可以使用这些分区对齐索引。
注意:您可以复制此练习中所用的脚本,这些脚本位于C:\SQLHOLS\Partitioning\Solution\ Partition Processing 文件夹中的 Partition Processing.ssmssln 解决方案中。
1.创建分区对齐视图(1)在解决方案资源管理器中,右键单击该连接,然后单击新建查询。
(2)右键单击 SQLQuery1.sql,然后单击重命名。
(3)键入 Create Views.sql,然后按 Enter。
(4)键入下面的代码。
USE AdventureWorksDWGOCREATE VIEW vw_InternetSales2001WITH SCHEMABINDINGASSELECT[InternetSalesID],[ProductKey],[FullDateAlternateKey] as OrderDate,[fisp].[OrderDateKey],[SalesOrderNumber],[OrderQuantity],[UnitPrice]FROM [dbo].[FactInternetSalesPartitioned] AS fisp INNER JOIN [dbo].[DimTime] AS dt ON[fisp].[OrderDateKey]=[dt].[TimeKey]WHERE [DueDateKey]<185GOCREATE VIEW vw_InternetSales2002WITH SCHEMABINDINGASSELECT[InternetSalesID],[ProductKey],[FullDateAlternateKey] as OrderDate,[fisp].[OrderDateKey],[SalesOrderNumber],[OrderQuantity],[UnitPrice]FROM [dbo].[FactInternetSalesPartitioned] AS fisp INNER JOIN [dbo].[DimTime] AS dt ON[fisp].[OrderDateKey]=[dt].[TimeKey]WHERE [DueDateKey] BETWEEN 185 AND 549GOCREATE VIEW vw_InternetSales2003WITH SCHEMABINDINGASSELECT[InternetSalesID],[ProductKey],[FullDateAlternateKey] as OrderDate,[fisp].[OrderDateKey],[SalesOrderNumber],[OrderQuantity],[UnitPrice]FROM [dbo].[FactInternetSalesPartitioned] AS fisp INNER JOIN [dbo].[DimTime] AS dt ON[fisp].[OrderDateKey]=[dt].[TimeKey]WHERE [DueDateKey]>549GO(5)单击执行。
CREATE VIEW [ schema_name . ] view_name [ (column [ ,...n ] ) ][ WITH <view_attribute> [ ,...n ] ]AS select_statement[ WITH CHECK OPTION ] [ ; ]<view_attribute> ::={[ ENCRYPTION ][ SCHEMABINDING ][ VIEW_METADATA ] }参数schema_name视图所属架构的名称。
view_name视图的名称。
视图名称必须符合有关标识符的规则。
可以选择是否指定视图所有者名称。
column视图中的列使用的名称。
仅在下列情况下需要列名:列是从算术表达式、函数或常量派生的;两个或更多的列可能会具有相同的名称(通常是由于联接的原因);视图中的某个列的指定名称不同于其派生来源列的名称。
还可以在SELECT 语句中分配列名。
如果未指定column,则视图列将获得与SELECT 语句中的列相同的名称。
注意:AS指定视图要执行的操作。
select_statement定义视图的SELECT 语句。
该语句可以使用多个表和其他视图。
需要相应的权限才能在已创建视图的SELECT 子句引用的对象中选择。
视图不必是具体某个表的行和列的简单子集。
可以使用多个表或带任意复杂性的SELECT 子句的其他视图创建视图。
在索引视图定义中,SELECT 语句必须是单个表的语句或带有可选聚合的多表JOIN。
视图定义中的SELECT 子句不能包括下列内容:COMPUTE 或COMPUTE BY 子句∙ORDER BY 子句,除非在SELECT 语句的选择列表中也有一个TOP 子句。
注意:∙INTO 关键字∙OPTION 子句∙引用临时表或表变量。
因为select_statement使用SELECT 语句,所以按照FROM 子句的指定,使用<join_hint> 和<table_hint> 提示是有效的。
sqlserver系统表与系统视图详细说明
•SQL Server系统表
•系统视图,可分为:
系统表:
sysaltfiles 主数据库保存数据库的文件
syscharsets 主数据库字符集与排序顺序
sysconfigures 主数据库配置选项
syscurconfigs 主数据库当前配置选项
sysdatabases 主数据库服务器中的数据库
syslanguages 主数据库语言
syslogins 主数据库登陆帐号信息
sysoledbusers 主数据库链接服务器登陆信息sysprocesses 主数据库进程
sysremotelogins主数据库远程登录帐号
syscolumns 每个数据库列
sysconstrains 每个数据库限制
sysfilegroups 每个数据库文件组
sysfiles 每个数据库文件
sysforeignkeys 每个数据库外部关键字
sysindexs 每个数据库索引
sysmenbers 每个数据库角色成员
sysobjects 每个数据库所有数据库对象
syspermissions 每个数据库权限
systypes 每个数据库用户定义数据类型
sysusers 每个数据库用户
目录视图:。
实验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 studentsdbgocreate index grade_indexon grade (分数)(4)为studentsdb数据库的grade表的“学号”和“课程编号”字段创建一个复合唯一索引,命名为grade_id_c_ind。
create index grade_id_c_indon grade (学号,课程编号)(5)分别使用SQL Server管理平台和系统存储过程sp_helpindex查看grade表和student_info表上的索引信息。
第一章1.数据库技术的发展经历了哪3个阶段?答:数据库技术的发展经历了人工管理、文件系统、数据库系统3个阶段。
2.数据模型通常由哪3个部分组成?答:数据模型通常是由数据结构、数据操作和完整性约束3部分组成3.下面哪些是关系数据库?(1)Access (2)SQL Server(3)Oracle (4)XML第二章1.SQL Server2008都有哪些版本?答:SQL Server 2008的版本有:SQL Server 2008分为SQL Server 2008企业版、标准版、工作组版、Web版、开发者版、Express版、Compact 3.5版。
2.SQL Server2008的主要特点有哪些?答:SQL Server 2008的主要特点为:可信任、高效、智能。
3.在安装SQL Server 2008时,可以选择哪些身份验证模式?答:在安装SQL Server 2008时,可以选择:Windows身份验证模式、混合模式(SQL Server 身份验证和Windows身份验证)第三章1.启动SQL Server 2008服务的两种方式分别是什么?如何操作?答:启动SQL Server 2008服务的两种方式分别是:后台启动SQL Server 2008服务和通过SQL Server配置管理器启动SQL Server2011。
后台启动SQL Server 2008服务步骤:选择“开始”/“控制面板”/“控制面板”/“系统和安全”/“管理工具”/“服务”命令,打开“服务”窗口。
在“服务”窗口中找到需要启动的SQL Server 2008服务,单击鼠标右键在弹出的快捷菜单中选择“启动”命令,等待Windows启动SQL Server 2008的服务。
通过SQL Server配置管理器启动SQL Server2011的步骤:首先打开“SQL Server Configuration Manager”管理工具。
SQL Server 2008复习资料第1章数据库基础知识重点掌握:1、数据库(DB)、数据库管理系统(DBMS)和数据库系统(DBS)的基本概念及三者之间的关系。
数据库系统(DBS)是由哪几个部分组成的?什么是DBA?DBS:数据库系统 (DataBase System),是采用了数据库技术的计算机系统,是一个实际可运行的、按照数据库方法存储、维护和向应用系统提供数据支持的系统,它是数据库、硬件和软件,以及数据库管理员(DBA)的集合体。
DB:数据库(DataBase)DBMS:数据库管理系统(DataBase Management System),是指数据库系统中对数据进行管理的软件系统,它是数据库系统的核心组成部分。
可以通过DBMS对DB进行定义、查询、更新及各种控制.三者联系: DBS包含DB和DBMS。
2、数据库的概念模型:E-R图是设计概念模型的有效工具。
E-R图中4个基本成分:矩形框、椭圆框、菱形框和直线。
能熟练地将E-R图转换成关系模式。
3、关系模型的基本术语:关系、属性及值域、关系模式及其表示、元组、主键Primary Key、外键Foreign Key4、关系模型的完整性规则:关系模型中可以有3类完整性约束,要求通过实例运用规则(1)实体的完整性规则(2)参照完整性规则(3)用户定义的完整性规则一、选择题1、在数据库系统中,负责对数据库进行管理的有()A、操作系统和DBAB、DBMSC、操作系统和DBMSD、DBMS和DBA2、下列关于数据库的说法不正确的是()A、数据库就是长期存储在计算机中、有组织、可共享的数据集合B、数据库中的数据没有任何冗余C、数据库中的数据可同时被多个用户共享D、数据库中的数据是按一定的数据模型组织、描述和存储的3、数据库(DB)、数据库系统(DBS)和数据库管理系统(DBMS)三者之间的关系是()。
A、DBS包括DB 和DBMSB、DBMS包括DB和DBSC、DB包括DBS 和DBMSD、DBS就是DB,也就是DBMS4、DBMS目前最常用的模型是()。
实验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 studentsdbgocreate index grade_indexon grade (分数)(4)为studentsdb数据库的grade表的“学号”和“课程编号”字段创建一个复合唯一索引,命名为grade_id_c_ind。
create index grade_id_c_indon grade (学号,课程编号)(5)分别使用SQL Server管理平台和系统存储过程sp_helpindex查看grade表和student_info表上的索引信息。