您的位置:首页 > 文旅 > 美景 > 软件开发项目管理文档_湖北建站方案_seo排名软件怎么做_qq代刷网站推广

软件开发项目管理文档_湖北建站方案_seo排名软件怎么做_qq代刷网站推广

2025/2/7 18:16:50 来源:https://blog.csdn.net/2302_80310672/article/details/144853838  浏览:    关键词:软件开发项目管理文档_湖北建站方案_seo排名软件怎么做_qq代刷网站推广
软件开发项目管理文档_湖北建站方案_seo排名软件怎么做_qq代刷网站推广

目录

1、视图

1.1 视图的定义

1.2 视图的分类

1. 标准视图

2. 索引视图

3. 分区视图

4. 系统视图

1.3 视图的优点

1.4 T-SQL创建视图

1. 原则

2. T-SQL创建视图

1.5 T-SQL修改视图

1.6 视图的使用

1. 查询

2. 通过视图修改基本表

1.7 T-SQL删除视图

2、索引

2.1 索引的定义

2.2 索引的分类

1.聚集索引

2. 非聚集索引

2.3 索引的优点

2.4 T-SQL创建索引

1. 索引创建的位置的建议

2. T-SQL创建索引

3. T-SQL创建索引视图

2.5 T_SQL查看索引

2.6 T-SQL删除索引


1、视图

1.1 视图的定义

视图所对应的数据不是以视图结构存储在数据库中,而是存储在视图所引用的表中

可以通过视图修改基本表

1.2 视图的分类

1. 标准视图

用户自定义的视图。

2. 索引视图

当对视图创建索引时,SQL Server会将视图的结果集存储为一个物理表,这个表被称为索引视图

3. 分区视图

在一台或多台服务器间水平连接一组成员中的分区数据。看起来像来自同一个表。

分为本地分区视图和分布式分区视图:在本地分区视图中,所有相关的表和视图,都连接在同一个SQL Server实例上;在分布式分区视图中,至少有一个相关表是连接在不同的(远程)服务器上的。

4. 系统视图

公开目录元数据。

1.3 视图的优点

1. 方便:视图已经对表进行预查询。在预查询的基础上查询,更方便。

2. 数据逻辑独立性:应用程序与数据库的逻辑结构是相互独立的。当构成视图的基本表结构发生改变时,只需要修改视图中的查询语句,使视图显示的数据结构保持不变,从而基于视图的应用程序无须改变。

3. 安全性:通过对不同的用户定义不同的视图,使用户只能查询和修改与自己相关的数据。

1.4 T-SQL创建视图

1. 原则

1. 只能在当前数据库中创建视图

2. 视图的名称需遵循标识符的规则,且在其所在的命名空间(通常是数据库本身)内必须是唯一的。不能与表名称相同

3. 不能创建临时视图;不能使用临时表或表变量创建视图;可以基于视图创建视图

4. 视图定义中的SELECT子句不可以包含ORDER BY除非有一个TOP字句

5. 视图定义中的SELECT子句不能包含INTO关键字(因为视图本身并不存储数据)、OPTION子句。

6. 如果某个视图依赖于已删除的表或视图,当有人使用视图时,报错。

2. T-SQL创建视图
CREATE VIEW [schema_name.]view_name[(column_name[,...n])]
AS
select_statement
[WITH CHECK OPTION]

column_name:给视图中的列取名。

AS:指定视图要执行的操作。不要忘了

WITH CHECK OPTION:保证通过视图修改基本表时,必须满足创建视图的select语句中的where中的条件。如:创建一个男生的视图,此时不能插入女生的记录。

创建一个view_sg视图,显示sno,sname,gender,sage

use teaching
go
create view view_sg
as
select sno,sname,gender,sage
from student

1.5 T-SQL修改视图

与创建视图一样,只是把CREATE换成了ALTER,

注意:修改时,继续包含WITH CHECK OPTION,才有作用,删了,就没有这个作用了。

1.6 视图的使用

1. 查询

和表的查询一样,只是from table,变成了 from view。

2. 通过视图修改基本表

1. 对数据的任何更新(updateinsertdelete),都只能引用一个基本表的列。

2. 如果视图仅包含某些列,当进行insert时,若另外的列不允许为空且没有默认值时报错

3. 若创建(或修改)视图时,加了WITH CHECK OPTION通过视图修改基本表时,必须满足创建视图的select语句中的where中的条件

4. 当视图依赖于多个表时,不能insert,delete,一次只能update一个表

5. 视图中修改的列必须是直接引用表中列的基础数据。如:视图中是平均分,那么没办法通过视图修改表。

6. 被修改的列不应受在创建视图时的GROUP BY,HAVING,DISTINCT,TOP的影响。如:视图中是前几名的分数,那么修改到了分数,那么前几名就可能变了。

1.7 T-SQL删除视图

DROP VIEW view_name

2、索引

2.1 索引的定义

索引包含由表或视图中的一列或多列生成的键,这些键存储在一个B树中,使用索引可以快速、高效地查找与键值关联的行。

2.2 索引的分类

索引有唯一索引(索引列不能有相同的记录),非唯一索引单列索引(索引列只有一列),复合索引

1.聚集索引

聚集索引会对表和视图进行物理排序只能有一个。表中没有聚集索引时,主键列会作一个聚集索引

2. 非聚集索引

非聚集索引不会对表和视图进行物理排序,如果表中不存在聚集索引,则表是未排序的。

2.3 索引的优点

1. 加快数据的检索速度

2. 创建唯一索引,可以使表中的每一行不同。(唯一性约束)

3. 加速表的连接

4. 可以减少分组和排序时间

5. 查询优化器会利用索引来提高查询性能

但是,也有一些缺点:

1. 维护索引,会消耗时间

2. 太多的索引,会消耗物理空间

2.4 T-SQL创建索引

1. 索引创建的位置的建议

1. 经常需要搜索的列。

2. 主键外键

3. 经常要排序的列。

4. 经常在WHERE中使用的列

5. 连接的列和使用聚合函数的列。

不建议使用索引的地方:

1. 记录少的列

2. 列的修改成本大于检索成本的列

2. T-SQL创建索引
CREATE [UNIQUE] [CLUSTERED|NONCLUSTERED] INDEX index_name
ON [table_name|view_name] (column_name[ASC|DESC] [,...n])

UNIQUE:唯一性,默认不唯一

CLUSTERED|NONCLUSTERED:聚集索引|非聚集索引,默认NONCLUSTERED(非聚集索引)。

ASC|DESC:升序|降序,默认ASC(升序)。

为student表建立一个按sage升序的非聚集索引。

use teaching
go
create index asc_sage
on student(sage)
3. T-SQL创建索引视图

在 SQL Server 中,只有带有 WITH SCHEMABINDING 的视图才能创建聚集索引。这是因为聚集索引要求数据物理存储在特定的顺序中,而 WITH SCHEMABINDING 确保了视图定义与基础表架构的稳定性,从而允许 SQL Server 实现这一物理存储要求。

不带 WITH SCHEMABINDING 的视图通常只能有非聚集索引。

创建一个索引female_view视图,并创建一个按sno升序的唯一聚集索引。

use teaching
go
create view female_view
with schemabinding
as
select sno,sname,gender,specialty 
from dbo.student -- 要指定架构名(schema_name),默认是dbo
where gender = '女'
go
create unique clustered index asc_q_sno
on female_view(sno)

2.5 T_SQL查看索引

use teaching
go
exec sp_helpindex student -- 查看student表中的索引
-- 或
exec sp_help student  -- student表中更详细的信息

2.6 T-SQL删除索引

DROP INDEX table_name.index_name

注意:指定哪个表的索引

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com