时间:2021-07-01 10:21:17 帮助过:43人阅读
My SQLServer→6 视图、索引 【六】视图、索引 视图的概念:视图时包含一张或多张表的列组成的数据集,该表中的记录是由一条查询语句执行后得到的查询结果所构成的。视图是一张虚拟表包含一系列带有名称的列和行数据。 2. 视图是存储在数据库中的查询的SQL语
My SQLServer→6 视图、索引
【六】视图、索引
2. 视图是存储在数据库中的查询的SQL语句,它出于两种原因:①.安全原因,可以隐藏一些数据。②.是使复杂的查询语句易于理解和使用
3. 为什么使用视图
①限制用户只能存取表内特定的列。
②不用重新建表即可存取想要的数据。
③省略复杂的SELECT命令和表间的连接产生数据,直接使用视图即可得到相关的数据。
4. 如何创建视图
l 只能在当前数据库中创建视图,在视图中最多只能引用1024列,视图中记录的数目限制只由其基表中的记录数相同。
l 视图名称必须遵循标识符得规则,且对每个用户必须唯一。此外,该名称不得与该用户拥有的任何表名相同
l 如果视图引用的基表或者视图被删除,则该视图不能再被使用,直到创建新的基表和视图。
l 如果视图中某一列是函数,数学表达式。常量或者来自多张表的列名相同,则必须为列定义名称。
l 不能再视图上创建索引不能再规程、默认。触发器的定义中引用视图。
当通过视图查询数据时,香港服务器租用,SQL Server要检查以确保语句中涉及的所有数据库对象的存在,每个数据库对象咋语句的上下文中有效,而且数据修改语句不能违反数据库的完整性规则。
语法:
Create view view_name[(column_list)]
AS
Select_statement(SELECT语句)
*注意:
·View_name:为新创建的视图指定名称
·Column_list:当前表中列的名称。如果忽略这一选项,将自动使用当前基表中的列名称。
·Select_statement:定义了从一张或多张表中检索出行和列的SELECT语
句
·在视图中的select语句中不能包含 ORDER BY 或 INTO 字句,另外在查询中不能引用临时表。
5. 使用视图的优点
l 视点集中
l 简化操作
l 定制数据
l 合并分割数据
l 安全性
*注意:
唯一索引既可以是聚集索引,也可以使非聚集索引,唯一性约束所在的列允许为空值,但是主键约束不允许空值。
8. 创建索引前的准备
l 最好能对空表创建索引,索引建议应在创建表的同时设置索引。
l 如果既要创建非聚集索引,那么最好先创建聚集索引,在创建非聚集索引。
9.如何创建索引
在T-SQL中使用CREATE INDEX 命令来创建索引
语法:
Create [unique][clustered | nonclustered] INDEX index_name
On table_name(column_name [,…])
[
With
Fillfacor=fillfactor
]
各参数的含义:
l Unique:用来指定所要创建的索引是否是唯一约束,建立唯一索引的字段中不能有重复数据。
l Clustered | nonclustered :指定 clustered 来创建聚集索引,使用 nonclustered来创建非聚集索引,两者不能同时使用,每张表只能创建一个聚集索引,香港空间,但是每张表可以创建249个非聚集索引。
l Index_name:为新创建的索引指定名称,索引名要符合命名规范。
l Table_name:创建索引表的名称
l Column_name:索引中包含列的名称
l Fillfactor:指定索引页的填充率,指示该索引页填充空间所占的百分比。指定一个1-100之间的值。
*注意:在删除索引时,必须为Drop index 语句指定表名,和索引名。
posted on
Powered by:
博客园
Copyright © ^o^April