数据库试图和索引的创建与使用

本文详细介绍了数据库中的索引和视图概念,包括聚集和非聚集索引的区别,如何创建、使用和删除索引,以及视图的定义、使用和删除方法。通过本文,读者将了解到索引如何提高数据检索速度,以及视图如何提供数据抽象。

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

一、索引

1、索引是数据表中数据和相应存储位置的列表
2、利用索引可以提高在表或试图中查找数据的速度

索引主要分为:
    
    聚集索引
    非聚集索引


聚集索引:聚集索引是指表中数据行的物理存储顺序与索引顺序完全相同
非聚集索引:非聚集索引不改变表中数据行的物理存储位置,数据与索引分开存储,通过索引指向的地址与表中的数据发生关系

    每个表中只允许有一个聚集索引,最多可以有249个非聚集索引
    聚集索引用于经常查找的数据的列,非聚集索引用于查找单个值的列
    表中有主键会自动生成聚集索引

判断是否存在索引index_name,如果存在则删除

if exists(select * from sys.indexes where name='index_name')
drop index index_name

创建索引:

    create [unique] [clustered/nonclustered]
    
    index index_name
    
    on table_name(列_name)
    
    [with fillfactor=x]

    fillfactor 填充因子:指定1-100之间的值,表示索引页填充的百分比


删除索引:

    drop index table_name.index_name

使用索引:
    
    select * from stuinfo with(index=index_name) where...

 

二、视图


视图是一张虚拟表,
视图中并不存放数据,存储的是查询语句

定义视图的查询不能包含 compute,compute by,into

定义视图的查询不能包含order by,除非在select 语句的选择列表中还有一个top

判断是否存在试图view_name,如果存在则删除

if exists(select * from sys.views where name='view_name')
drop view view_name

定义视图:
    
    create view view_name[列名,...]
    
    with encryption

    as

    select 查询语句

    go
    
使用视图:同表的使用方法一致

    select * from view_name


视图加密防止信息泄漏,避免他人恶意破坏

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值