学习资料笔记

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

创建视图和索引

※视图常常被称为虚表。在视图被创建以后,你可以对视图采用如下命令:select,insert,

update,delete。

※索引是与磁盘上数据的存储方式不同的另外一种组织数据的方法。◎使用视图

※视图并不占用数据库或表的物理空间。

※创建视图的语法如下:

CREATE VIEW [(col1,col2...)]

AS SELECT

FROM ;

※视图可以是多级的,也就是可以用视图来创建视图。但这会加大维护工作的复杂性。

1。列的重命名

注意:

当在视图中使用SQL的计算功能时,SQL会要求你给出一个虚字段的名字,这是可以理解,因为象

COUNT(*)或A VG(PAYMENT)是不能作为列名的。

2。SQL对视图的处理过程

※运行SELECT语句-->查找表-->未找到-->查找视图。

3。在SELECT语句中的使用约束

在视图的SELECT语句中:

※不能使用UNION操作。

※不能使用ORDER BY子句,但在视图中,使用GROUP BY子句可以有ORDER BY子句相同的功能。

4。在视图中修改数据

在视图创建以后,就可以用Insert,Update,Delete语句来更新,插入,删除视图中的数据。

5。在视图中修改数据的几个问题

※对于多表视图,不能使用DELETE语句。

※除非底层表的所有非空列都已经在视图中出现,否则,你不能使用Insert语句。有这个限制的原

因是SQL不知道该将什么数据插入到NOT NULL限制列中(没有在视图中出现的)。

※如果对一个归并的表格插入或更新记录,那么所有被更新的记录必须属于同一个物理表。

※如果你在创建视图时使用了DISTINCT语句,那么你就不能插入或更新这个视图中的记录。

※你不能更新视图中的虚拟列(它是用计算字段得到的)。

6。通用应用程序的视图

下面有几个视图需要完成的任务:

※提供了用户安全功能。

※可以进行单位换算。

※创建一个新的虚拟表格。

※简单的结构化复合查询。

-->视图与安全性

-->在单位换算中使用视图

-->在视图中使用简单的结构化复合查询

7。删除视图的语句

DROP VIEW view_name;

注意:该命令会使所有与DROP掉的视图相关联的视图不能正常运行。一些数据库系统甚至会将所有

与DROP掉的视图相关联的视图也删除掉。

◎使用索引

在SQL中使用索引有以下几个原因:

※在使用UNIQUE关键字时强制性地保证数据的完整性。

※可以容易地使用索引字段或其他字段进行排序。

※提高查询的执行速度。

1。什么是索引

创建索引的语法:

CREATE INDEX index_name

ON table_name(col1[,col2...]);

注意:在不同的数据库系统中,创建索引的语法差别很大。

删除索引的语法:

DROP INDEX index_name;

备注:当表被删除时,所有与表相关的索引也将被删除。

2。使用索引的技巧

※对于小表来说,使用索引对于性能不会有任何提高。

※当你的索引中有极多不同的数据和空值时,索引会使性能有极大的提高。

※当查询返回的数据很少时,索引可以优化你的查询(比较好的情况是少于全部数据的25%)。如

果要返回的数据很多时,索引会加大系统开销。

※索引会提高数据的返回速度,但是它使数据的更新速度变慢。如果要进行大量的更新操作,请先

删除索引,在执行完更新操作后,再恢复索引。

※索引会占用你的数据库空间,在设计数据库的可用空间时要考虑到。

※如果对字段的索引已经对两个表进行了归并操作,这一技术可以极大地提高归并的速度。

※大多数数据库系统不允许对视图创建索引。

※不要对经常需要更新或修改的字段创建索引,更新索引的开销会降低你所期望获得的性能。

※不要将索引和表存储在同一个驱动器上,分开存储会去掉访问的冲突,从而使结果返回的更快。

3。对更多的字段进行索引

这也叫复合索引。

4。在创建索引时使用UNIQUE关键字

复合索引通常使用UNIQUE关键字来防止有相同数据的多个记录多次出现。

在创建索引时,可以使用DESC关键字。

5。索引与归并

在归并查询中,对表中唯一属性的字段或用以归并操作的字段创建索引,可以大大比高归并的效率

6。群集(簇)的使用

当使用群集索引时,数据的表中的物理排列方式将会被修改。使用群集索引通常比传统的不使用群

集的索引速度要快。

许多数据库系统(如Sybase的SQL Server)只允许一个表有一个群集索引。

用于创建群集索引的字段常常是主关键字。

※用Sybase的Transact-SQL创建群集索引的例子:

CREATE UNIQUE CLUSTERED INDEX id_index ON book(id);

※在Oracle中,群集具有与众不同的概念。

群集是SQL的第三方特性。

Transact_SQL小手册

*******************Transact_SQL********************

--语句功能

相关文档
最新文档