学习笔记(二):视图、索引

本文深入探讨了数据库中视图和索引的概念及其在数据管理和查询优化中的关键作用。详细解释了视图作为虚拟数据表的优势,如增强可读性、数据安全性和简化查询复杂度,以及创建和修改视图的语法。同时,阐述了索引的类型,包括聚集和非聚集索引,其在提升数据检索速度和确保数据唯一性方面的应用,以及创建索引的语法和最佳实践。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

知识点内容:
视图
索引
视图:
概念:
View其实是执行查询语句后得到的结果,可以仿真成数据表来使用,也成为“虚拟数据表”
视图与数据表的区别:
数据表实际存储记录的地方
视图不保存任何记录,存储的是查询语句
视图的优点:
增强可读性
数据安全及保密:针对不同用户,可以创建不同视图,限制其所能浏览和编辑的数据内容。
降低查询复杂度
方便维护
创建视图的语法:
IF(EXISTS(SELECT * FROM SYS.OBJECTS WHERE NAME =’V_STU’))
DROP VIEW V_STU
CREATE VIEW V_STU AS SLECT ID,NAME,AGE,SEX FROM STUDENT
修改视图的语法
ALTER VIEW V_STU AS SELECT ID,NAME,SEX FROM STUDENT;
ALTER VIEW V_STU(编号,名称,性别) AS SELECT ID,NAME,SEX FROM STUDENT
索引:
概念:
就是数据表中数据和相应的存储位置的列表,
作用:
可以提高在表或视图中的查找数据的速度
分类:
聚集索引
非聚集索引
聚集索引与非聚集索引区别:
聚集索引:
每个表只允许创建一个聚集索引
物理的重排表的数据以符合索引约束
用于经常查找数据列
非聚集索引
做多可以由249个非聚集索引
创建一个键值指向数据在数据页中的位置
用于从表中查找大哥值的列
创建索引的语法:
CREATE [UNIPUE][CLUSTERED|NOCLUSTERED]
INDEX INDEX_NAME
ON TABLE_NAME(COLUMN_NAME…)
[WITH FILLFACTOR=X]
UNIQUE唯一索引
CLUSTERED聚集索引
NOCLUSTERED非聚集索引
FILLFACTOR填充因子大小,范围在0-100之间,表示索引页填满在空间所占的百分比
实列:
IF(EXISTS(SELECT * FROM SYS.INDEXES WHERE NAME=’IDX_STU_NAME’))
DROP INDEX STUDENT.IDX_STU_NAME
GO
CREATE INDEX IDX_STU_NAME ON STUDENT(NAME)
适合创建索引的列:
当数据库的某一列被频繁的用于数据库查询时,或者该列用于数据库进行排序时可以创建成索引。
不适合创建索引的列:
如果列中有几个不同的值,或者表中仅包含几行值
因为索引在搜索数据所花的时间比在表中逐行搜索花的时间更长
索引的优点:
通过创建唯一性索引,可以保证数据库表中每一行数据的唯一性。
可以大大加快数据的检索速度,是创建索引的最主要的原因。
加速表和表之间的连接,特别是在实现数据的参考完整性方面特别有意义。
在使用分组和排序 子句进行数据检索时,同样可以显著减少查询中分组和排序的时间。
通过使用索引,可以在查询的过程中,使用优化隐藏器,提高系统的性能。
索引缺点:
耗费时间长,
创建索引和维护索引要耗费时间,这种时间随着数据量的增加而增加。
空间就会更大。
索引需要占物理空间,除了数据表占数据空间之外,每一个索引还要占一定的物理空间,如果要建立聚簇索引,那么需要的空间就会更大。
降低了数据的维护速度
当对表中的数据进行增加、删除和修改的时候,索引也要动态的维护,这样就降低了数据的维护速度

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值