数据库学习SQL Server 第三章 约束、索引和视图

第三章 约束、索引和视图@TOC

1.简介

约束,比如说要求字段非空,就是最简单的非空约束;
表格阻止更改和重新创建的问题(工具–选项–设计–取消阻止保护)

2.CHEAK约束

表设计器,右键–选择cheak约束,比如要求收入=工资+奖金的约束,若添加值的时候,不遵循cheak约束将会报错。

3.主键约束

4.创建唯一键

在表格中,若这一列被创建为唯一键,有重复输入会报错

5.索引介绍

起到目录作用,方便检索
优点:加速数据检索、加速连接、对查询进行优化,强制实施列的唯一性,通过创建唯一索引,保证不重复
缺点:创建单独花时间,但是占空间大,减慢数据修改的速度,每一次数据更新,索引也会单独更新维护

5.1索引类型

索引主要目的是提高了SQL Server系统的性能,加快数据的查询速度与减少系统的响应时间
一.索引种类也有很多,一般分为两种,按聚集索引和非聚集索引分类
1.非聚集索引:
非聚集索引表中数据完全分离,是逻辑上的连续,物理存储并不连续。就像字段,聚集索引是连续的,a后面肯定是b,非聚集索引就不连续了,就像图书馆的某个作者的书,有可能在第1个货架上和第10个货架上。比聚集索引更占空间,但是可以在表中建立多个,理论上一个表中
2.聚集索引:对表的物理数据进行排序 存储记录是物理上连续存在,所需要的空间很大,相当于数据所需空间的1.2倍
还有一个小知识点就是:聚集索引一个表只能有一个,而非聚集索引一个表可以存在多个。
二.索引的另一种分类方式,唯一索引和不唯一索引
1.唯一索引:确定表中字段的值无重复,设置为唯一索引的列,不能有重复值。无论是聚集索引还是非聚集的,都可以设置成为唯一索引,
2.非唯一索引:可以允许有重复值,非唯一索引在提取数据时,效率更低,需要的资源大于唯一索引
三.单列索引和多列索引
1.单列索引:单独一个字段建立索引,比如姓名建立一个索引,年龄建立一个索引
2.多列索引:多个字段组合建立索引,比如工资和奖金组合建立一个索引,又叫组合索引

5.2创建索引

1.代码查看索引
Exec sp_helpindex 表名
2.创建索引
Create index new_index on TABLE_NAME/VIEW(view_name order)
*创建索引 索引名称 表名 /视图 (字段 顺序,默认正序)

UNIQUE: 建立唯一索引。
CLUSTERED: 建立聚集索引。
NONCLUSTERED: 建立非聚集索引。
Index_property: 索引属性。
若不指明采用的索引结构,默认为非聚集。

5.3 修改索引

1.修改索引名称
exec sp_rename ‘table.new_index_rename’, ‘new_index1’, ‘index’
重命名语句 表名.索引名 新索引名 ‘index’
sp_rename 修改名称所用的语句
2.删除索引
drop index table_name.index_name

6.视图

6.1概念

视图是从一个或者多个表导出的表的集合,但视图是一个虚拟表,在视图中可以使用SELECT语句查询数据,以及使用insert、update和delete语句修改记录,对于视图的操作最终转化为对基本数据表的操作。视图不仅可以方便操作,而且可以保障数据库系统的安全性。
视图一经定义便存储在数据库中,与其相对应的数据并没有像表数据那样在数据库中在存储一份,通过视图看到的数据只是存放在基本表中的数据。可以对其进行增删该查,通过视图对数据修改,基本表数据也对应变化,反之亦然。
视图的优点和作用
简化用户对数据的理解,简化对它们的操作
作为一种安全机制。通过视图用户只能查看和修改他们所能看到的数据。
逻辑数据独立性:帮助用户屏蔽真实表结构变化带来的影响。
缺点:视图的查询是先将指令请求转化为底层于原表的操作,如果视图很复杂,查询就会占用大量资源,不如直接用表查询

6.2 视图分类

SQL Server的视图可以分为3类:标准视图,索引视图,分区视图
1.标准视图:组合了一个或多个表中的数据,可以获得使用视图中的大多数好处,包括重点将放在特定的数据上及简化数据操作。
2.索引视图:索引视图是被具体化了的视图,即它已经经过计算并存储。可以为视图创建索引,对视图创建一个唯一的聚集索引。索引视图可以显著提高某些类型查询的性能,索引视图尤其适于聚合许多行的查询,但它们不太适于经常更新的基本数据集。
3.分区视图:在一台多多台服务器间水平连接一组成员表的分区数据,这样,数据看上去如同来自一个表。连接本地同一个SQL Server实例中的成员表的视图是一个本地区分视图。

6.3视图的基本操作和语法

1.创建视图
既可以使用SQLServer 创建视图
CREATE VIEW view_name 创建视图 视图名
AS
SELECT sentences select语句
2.修改视图
alter view view——name 修改视图 视图名
as
select sentences select语句
3.删除视图
drop view view_name1,view_name2,…,view_nameN;
–该语句可以同时删除多个视图,只要在删除各视图名称之间用逗号分隔即可。

6.4:视图和表的区别

视图是已经编译好的SQL语句,是基于SQL语句的结果集的可视化表,而表不是;
视图(除过索引视图)没有实际的物理记录,而基本表有;
表是内容,视图是窗口;
表占物理空间,而视图不占物理空间,视图只是逻辑概念的存在;
视图是查看数据表的一种方法,可以查询数据表中某些字段构成的数据,只是一些SQL语句的集合。从安全角度说,视图可以防止用户接触数据表,从而不知表结构;
表属于全局模式的表,是实表;视图数据局部模式的表,是虚表;
视图的建立和删除只影响视图本身,不影响对应的基本表。
作者:阿赫瓦里
出处:http://www.cnblogs.com/selene/

猜你喜欢

转载自blog.csdn.net/l654247808/article/details/83654225