视图
含义:
视图是在数据库中选择性的查看数据,将数据保存为一个视图
语法格式:Create view 视图名 as 查询表达式 视图约束条件
添加视图:Alter view 视图名称,试图列 As 查询信息 约束条件
删除视图: drop view 视图名称
通过视图修改数据
注意事项:
-
Select 列表中含有distinct 因为distinct 是将列中的重复值变成一个
-
Select 列表中含有表达式,如计算列,函数等
-
在from子句中引用多个表
-
引用不接更新的视图
-
Group by 或having 子句
-
插入时部分字段是有设置为非空时。查询视图列为学号,姓名,原数据表中,出来学号姓名,还有性别,若是此时性别设置为非空,那么就没有办法在视图中插入数据
以上情况是没有办法更新视图中的数据的
索引
概念:
索引是一个单独的物理的数据库结构,他是某个表中一列或者若干列的集合和相应的志向表中物理标识这些值的数据也的逻辑指针清单,一个表中的存储是由两部分组成的,一部分用来存放数据库编排表中数据的内部方法,另一部分存放索引页面。索引就放在索引页面。简单地说可以把数据库看做一本书,把索引看做书的目录,通过目录查找书中的信息,显然比没有目录的书方便,快捷
优点:
1.保证数据记录的唯一性
2.加快数据检索速度
3.加快表与表之间的连接速度
4.在使用order by和group by子句中进行检索数据时,可以显著减少查询中分组和排序的时间
5.可以再见检索数据的过程中使用优化隐藏器,提高系统性能
创建索引
Create 索引类型(unique:唯一性索引 )(clustered|nonclustered:聚集性索引|非聚集索引) index 索引名字 on 表名|视图名 创建索引的列。
索引的类型:
聚集索引和非聚集索引
聚集索引
类似于电话簿,按姓氏排列数据,一个表中只能有一个聚集索引。但是该索引可以包含多个列。就像电话拨按形式和名字进行组织一样。
使用的情况
1,含有大量非重复值的列
2.使用between,>,>=,或<,<=返回一个范围值的列
3.被连续访问的列
4.返回大型结果集的查询
5.经常被使用连接或group by 子句的查询访问的列
非聚集索引
非聚集索引的数据存储在一个位置,索引存储在另一个位置,索引带有指针指向数据的存储位置。索引中的项目按所引致的顺序存储,而表中的兴县另一种顺序存储。
两者区别
非聚集索引与聚集索引具有相同的B-tree结构,但是与聚集索引有两个重大的区别:
1.数据行不按非聚集索引键顺序排序和存储
2.非聚集索引的叶层不包含数据页,相反,叶节点包含索引行。
在sql server 208汇总每个表可以创建的非聚集索引最多249个,其中包括primarykey 或者unique 月红素创建的任何索引,但不包括xml索引