引言:相对第四章的比较细化、针对对象较单一的知识点,第五章的内容对于数据库来说,则较为宏观:索引、视图和架构。

第五章 操作架构、索引和视图

一、创建视图

方法1:

CREATE VIEW view_name(view_column_name)
AS query_expression
[WITH CHECK OPTION]

方法2:

创建:相应的数据库-右击视图-新建视图-选择表         
关联表:选中相应列后-拖动到想关联表的列            
命名技巧:V_+视图名

二、修改和删除视图

方法1:

ALTER VIEW<view_name>[<column name list>]           
AS
<SELECT statement>
[WITH CHECK OPTION]

方法2:

相应的数据库-视图-右击相应的视图-设计

三、用视图修改数据

*注意事项:
-SELECT列表不能含有DISTINCT
DISTINCT:将列中重复项合并为一项
-SELECT 列表中不能含有表达式
-在FROM子句中不能引用多个表
-引用不可更新的视图
-不能出现GROUP BY或HAVING子句

四、索引概述

索引:某个表中一列或多列的集合和相应的指向表中物理标识这些值的数据页的逻辑指针清单
表的存储:一部分存放表的数据页面;一方面存放于索引页面。在索引中搜索会更快(相当于目录)

索引的优点:
-保证数据记录唯一性
-加快数据检索速度
-加快表与表间连接速度
-在排序(ORDER BY)和分组(GROUP BY)提高性能
-可以检索过程中使用优化隐藏器,提高系统性能

创建索引:

CREATE
[UNIQUE][CLUSTERED|NONCLUSTERED]
INDEX index_name
ON
Table_name|view_name
(column_name[1,…,N])

删除索引

频繁进行数据变动,会不断修改索引,造成系统的性能下降

语句删除:

Drop index table_name view_name

聚集索引和非聚集索引

聚集索引:
-确定表中数据的物理顺序
-对于经常需要搜索范围值的列特别有效
1.含有大量非重复值的列
2.使用BETWEEN、>、>=、<或<=返回一共范围值的列
3.被连续访问的列
4.返回大型结果集的查询
5.经常被使用连接或GROUP BY子句的查询访问的列

非聚集索引
非聚集索引存储在一共位置,索引存储在另一个位置
索引带有指针指向数据的存储位置,索引中的项目按索引值的顺序存储

五、架构

创建架构:

打开:想架构的数据库-安全性-架构

创建架构:

方法1:

相应的数据库-安全性-右击架构-新建架构

方法2:

SQL语句创建:

CREATE SCHEMA schema_name_clause
<schema_name_clause>
{
|AUTHORIZATION owner_name
|schema_name AUTHORIZATION owner_name
}
{
Table_definition|view_definition|grant_stateme
Revoke_statement|deny_statement
}

*正在使用的架构不可删除