码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 【数据库系统概论】数据定义之索引的创建、修改与删除


    • 前言 ❓
    • 建立索引
      • 语法
      • 示例
    • 修改索引
      • 语法
      • 示例
    • 删除索引
      • 语法
      • 示例
    • 感谢 💖

    前言 ❓

    前面【数据库系统概论】数据定义之基本表的定义/创建、修改和删除提过,SQL的数据定义功能包括定义表、定义视图和定义索引。索引属于数据库系统三级模式结构中的内模式范畴。

    建立索引是加快查询速度的有效手段。用户可以根据需要为表中的单列(或多列)建立索引,也可以在一个表上建立一个或多个索引,以提供多种存取路径,从而加快查询速度。

    数据库索引有多种类型,常见的索引包括顺序文件上的索引、B+树索引、hash索引等。关于索引,可以看看这篇文章:【MySQL】什么是索引?如何选择索引类型?

    索引虽然能够加速数据库查询,但需要占用一定的存储空间,当基本表更新时,索引要进行相应的维护,这些都会增加数据库的负担,因此要根据实际应用的需要有选择地创建索引。

    建立索引

    DBA或表的属主(即建立表的人:Owner)根据需要建立索引。有些DBMS自动建立以下列上的索引:PRIMARY KEY 和 UNIQUE。

    语法

    CREATE [UNIQUE] [CLUSTER] INDEX <索引名> ON <表名>(<列名>[<次序>][,<列名>[<次序>] ]…);
    
    • 1
    • <表名>指定要建索引的基本表名字
    • 索引可以建立在该表的一列或多列上,各列名之间用逗号分隔
    • 用<次序>指定索引值的排列次序,升序:ASC,降序:DESC。缺省值:ASC
    • UNIQUE表明此索引的每一个索引值只对应唯一的数据记录
    • CLUSTER表示要建立的索引是聚簇索引

    示例

    为Student表、Course表、SC表分别建立索引,其中Student表按学号升序建立唯一索引,Course表按课程号升序建立唯一索引,SC表按学号升序和成绩降序建立唯一索引。

    CREATE UNIQUE INDEX Stusno ON Student(Sno);
    CREATE UNIQUE INDEX Coucno ON Course(Cno);
    CREATE UNIQUE INDEX SCno ON SC(Sno ASC, Grade DESC);
    
    • 1
    • 2
    • 3

    修改索引

    对于索引的修改往往只涉及到改名。

    语法

    ALTER INDEX <旧索引名> RENAME TO <新索引名>;
    
    • 1

    示例

    将SC表的SCno索引名改为SCSno:

    ALTER INDEX SCno RENAME TO SCSno;
    
    • 1

    删除索引

    索引一经建立就由系统使用和维护。但是入股哦数据修改频繁,系统就会花费许多时间来维护索引,从而降低了查询效率。这时可以删除一些不必要的索引。

    语法

    DROP INDEX <索引名>;
    
    • 1

    删除索引时,系统会从数据字典中删去有关该索引的描述。

    示例

    删除Student表中的Stusno索引:

    DROP INDEX Stusno;
    
    • 1

    感谢 💖

    好啦,这次的分享就到这里,感谢大家看到这里🤞

  • 相关阅读:
    [杂谈]-八进制数
    使用QNX qcarCamera获取摄像头数据
    大数据:脚本实现WordCount,结果以压缩格式输出到HDFS
    Apache DolphinScheduler如何完全设置东八区?
    JavaScript 14 JavaScript 数据类型
    还在为没机器练手搭集群而苦恼?快进来免费领机器了!
    【高数】高数平面立体几何
    Python带你入门安全测试
    【二】2D测量 Metrology——get_metrology_object_result_contour()算子
    前端食堂技术周刊第 48 期:ESLint 新配置系统、Vue3 中文文档正式上线、Astro 1.0、小程序新渲染引擎
  • 原文地址:https://blog.csdn.net/m0_60511809/article/details/133707702
  • 最新文章
  • 沪漂五周年了:我越来越迷茫了
    Agentic Skill Routing 实战:别再把所有 Skill 塞进 AI Agent 上下文
    MySQL-Seconds_behind_master的精度误差
    [MAF预定义ChatClient中间件-03]CachingChatClient——利用缓存省钱省时间
    AI的至暗历史:从万众期待到被政府撤资,AI的两次死亡徘徊
    Agent OS :五种驯服不确定性的范式
    PortSwigger SQL注入LAB11
    数据库即时编译JIT
    [Begin]AI Learn Data Day 0
    深度学习进阶(二十七)现代 LLM 的核心架构设计其二:SwiGLU
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
小工具 小游戏
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1

京公网安备 11010502049817号