建设网站需要的硬件设备,哪个网站做高中的题好,茶叶公司网站源码,用asp.net做的网站这里写目录标题视图视图特点视图定义优点索引相关sql三种索引区别解释视图
视图特点
只是虚表#xff0c;并不实际存放数据#xff0c;所有数据都来自于基本表建立在一个或几个基本表或视图之上基本表数据变化视图也随之变化只保存视图定义等之类东西
视图定义
# 定义视图…
这里写目录标题视图视图特点视图定义优点索引相关sql三种索引区别解释视图
视图特点
只是虚表并不实际存放数据所有数据都来自于基本表建立在一个或几个基本表或视图之上基本表数据变化视图也随之变化只保存视图定义等之类东西
视图定义
# 定义视图视图展现的就是子查询的结果
# 子查询不允许有order by 或者 distinct
CREATE VIEW view_name[(列名 [,列名....])]
AS 子查询
[WITH CHECK OPTION]; # 自动执行检查操作# e.g.
CREATE VIEW IS_Student
as
select Sno, Sname, Sage
from Student
where Sdept IS
with check option;# 插入操作自动添加Sdept IS
# 修改操作同上
# 删除操作同上
# 如果Sdept不为IS拒绝操作
# 如果没有提供Sdept自动添加# 删除视图
DROP VIEW view_name [cascade]其余操作增删查改操作与基本表相同
优点
简化用户操作以多种角度看待数据提供一定的逻辑独立性有一定的安全性适当视图有利用更清晰的表达
索引
索引目的加快查询速度 一般 primary key unique会自动为其建立索引 索引类别
unique 唯一索引cluster 聚集索引noncluster 非唯一索引
相关sql
# 建立索引
CREATE [UNIQUE][CLUSTER] INDEX 索引名称
ON 表名 (列名[,列名......])# 删除索引
DROP INDEX 索引名三种索引区别解释
一张表只能有一个聚集索引可以有许多个非聚集索引 数据库表里面的数据比作比作一本字典。聚集索引相当于决定了字典中第一章第二章的排列顺序。添加非聚集索引相当于为其添加了一个目录。相当于字典以偏旁为规则排列了字典的内容但是可以有拼音目录笔画目录来查找这个字。
聚集索引能够大大加快group by等块查找语句的速度。因为数据库底层使用B与HASH进行存储在操作系统中文件以分页进行存储。当以某个字段顺序进行存储时候查找这个字段也就是将这个字段所在页调入内存查找而这个页也包含了这个字段值的附近值所以进行块查找时候就不需要大量进行IO操作只需要找内存里的页即可。
而为什么添加索引能够加快查找速度
因为原来在物理存放时候可能按照其他某个字段进行聚集存放但是如果按照这个字段进行查找就只能进行顺序查找。如果为这个字段建立了索引相当于根据这个字段添加了一个目录查找速度就上去了。在物理结构当中应该是添加了一个B树的除了叶子节点上部分。而且如果这个字段不是unique字段那么有可能会有重复SqlServer会为这个字段添加一个hash值做到一一对应然后再进行一个B树。
SqlServer默认为主键添加聚集索引