视图和索引(数据库学习)

当时SQL server数据库准备考试了,我花了两个星期把整本书看了,这些是当时做的笔记(针对老师划得重点),现在学习Java做了几个项目后,发现有很多东西不是特别理解,特地再次复习一下,并且自己再思考思考,有兴趣可以看GitHub文章

1.理解什么是视图。视图的优点。

引入—数据库的基本表是按照数据库设计人员的观点设计的,并不一定符合所有用户的需求。

SQL Server 可以根据用户需求重新定义表的数据结构,这种数据结构就是视图(用户外模式)

视图:是从一个或几个基本表(模式)导出来的表,是一个虚表,并不表示任何物理数据。

(数据库只储存视图的定义,不储存视图对应的数据,及也可通过视图修改基本表中数据)

视图优点:

         -|:为用户集中数据,简化用户的数据查询和处理。

         -|:保证数据的逻辑独立性

         -|:重新定制数据,使数据便于共享;合并分割数据,有利于数据输出到应用程序中。

         -|:数据保密。

2.视图的创建、修改、使用、删除

看实验报告

扫描二维码关注公众号,回复: 6622043 查看本文章

创建原则:当前数据库、必须遵循标示符规则、可在其他视图之上建立视图、如果视图中某列为(算术表达式、内置函数或常量派生而来,用户需要为其指定特点的名称)

使用(insert、update、delete)视图修改基本表中数据,需满足可更新条件:

         -|:只引用一个基本表的列。视图依赖多表时,不能通过视图插入删除数据、只能修改一个表数据。

         -|:视图中被修改的列必须直接引用表列中的基础数据(非聚合函数、计算、集合运算)

         -|:被修改的列不应是创建视图时受group by、having、distinct、top语句影响的。

创建(create view 视图名称 as 查询语句)

修改(alter  view 视图名称 as 查询语句)

使用(select *from 视图名称),同数据库查询类似

删除(drop view 视图名称)

3.什么是索引。索引的分类。创建索引时应考虑哪些问题?

索引(index):是对数据库表中一个或多个列的值进行排序的结构 ,其主要目的是提高SQL Server 系统的性能,加快查询数据的速度。(通过记录表中的关键值指向基本表中的记录)

根据组织方式分为:(最多存在250个)

         -|:聚集索引,会对表中数据进行物理排序。(只能有一个,当定义主键约束时,会自动用主建列作为聚合索引建)

         -|:非聚集索引,不会对表中数据进行物理排序。(目录纯粹是目录,正文纯粹是正文)

创建索引时应考虑的问题

         -|:对一个表中建大量的索引,应经行权衡。(经常更新少索引,更新少的数据量大的多索引)。

         -|:对小型表进行索引可能不会产生优化效果。

         -|:对于主键和外键列应考虑建索引。(主键查询、外键连接)

         -|:很少在查询中使用的列及值很少的列不应考虑建索引。

         -|:视图中如果包含聚合函数或连接时,创建视图的索引可以显著提高查询性能。

4.如何创建索引、查看索引信息、删除索引

创建(create index 索引名 on 基本表(列名))

         -|:间接创建(定义表结构或修改表结构时,定义了主键约束(pramary key)自动生成聚集索引、唯一性约束(unique)非聚集唯一索引。

         -|:创建索引视图

查看索引(exec 存储过程(sp_helpindex或者sp_help) 基本表)

删除索引(drop index 基本表.索引名)

         -|:必须删除表约束(primary key、unique),才能删除约束。(根据约束自动生成的索引)

         -|:删除表时,自动删除此表上的索引。

猜你喜欢

转载自blog.csdn.net/weixin_43126117/article/details/90759188