SQL --索引

news2024/11/25 4:50:12

索引 INDEX

伪列

伪装起来的列,不容易被看见,要特意查询才能看见
ROWNUM:
是对查询结果自动生成的一组连续的自然数序号。

SELECT emp.*,ROWNUM FROM emp

例题:查询emp表中,前三个员工

SELECT * FROM * from emp where ROWNUM <=3;

查询第四到第六条数据

SELECT C.*, ROWNUM
  FROM (SELECT B.*, ROWNUM D
          FROM (SELECT EMP.*, ROWNUM A FROM EMP WHERE ROWNUM <= 6) B
         ORDER BY A DESC) C
 WHERE ROWNUM < 4;

查询工资前三名

SELECT * FROM (SELECT * FROM EMP ORDER BY SAL DESC) WHERE ROWNUM <= 3;

注意!
查询结果必须包含第一条数据

ROWID:
类似于身份证,每条数据在存入到数据库时,数据库会自动分配一组18位的不重复字符串。作用是记录每条数据的物理位置。

SELECT emp.*,ROWID FROM emp;

索引

索引:实际上是一个指针,指向表中的数据,可以提高查询效率,可以理解为目录。
索引会降低DML语句速度
Oracle会自动的使用和维护索引。


索引的分类

按照存储内容不同

B-TREE索引

存储的是(索引列原始数据+ROWID)
Oracle默认的索引类型,最常用的索引类型
创建B-TREE索引

CREATE INDEX 索引名 ON 表名(列名)

索引名尽量以ind 开头
注意:一个字段上不能创建多个索引但一个字段可以存在与多个索引中
B-TREE索引常用在列基数比较大的时候
列基数:不重复的数据


位图索引

存储的是(位图+ROWID)
是指在创建位图索引时,会扫描整张表,位索引列每个取值创建一个不重复的位图,根据位图描述该取值
使用场景:列基数比较小的时候

CREATE BITMAP INDEX 索引名 ON 表名(列名1.....)
反向建索引

存储的是(索引列原始数据反向存储+ROWID)
B-TREE索引的一种特殊形式,所有的数据反向存储
使用场景:当某个节点(叶)占比过高 比如(身高)

CREATE INDEX 索引名 On 表名(列名1.....) REVERSE
基于函数的索

存储的是(索引列原始数据经过函数处理+ROWID)
是B-TREE索引的一种特殊形式,创建索引是添加函数
使用场景:当经常查询某列,用函数查询,比如LENGTH(ename)

CREATE INDEX ind_aa ON emp(LENGTH(ename))
SELECT * FROM emp WHERE LENGTH(ename) = 5;

按照列的个数不同

单列索引

基于一个字段创建的索引

复合索引(联合索引)

基于多个字段创建的索引
如果是基于ABC三个字段创建的索引,在使用时必须遵循最左原则 如 WHERE条件后面必须是 WHERE A =…AND B=… AND C=…,不能换位置
如果写 WHRER A=… AND C=… 也可以 但是效率会折扣
不能写c a…

按照唯一性

唯一索引

索引列数据唯一

CREATE UNIQUE INDEX 索引名 ON 表名(列名)

注意:
1.位图索引不能创建唯一索引
2.主键约束或者唯一约束的列,会自动创建一个同名的唯一索引

非唯一索引

索引列数据可以重复

索引扫描

是指根据条件在对应的索引列,从大概位置开始检索,检索到最后一条符合条件的数据为止,然后将符合条件的数据的ROWID取出,根据ROWID取出整行数据

全盘扫描

是指按照条件在对应的条件列,从第一条开始检索,检索到最后一条为止,然后将符合条件的数据的ROWID取出,根据ROWID取出整行数据

ROWID扫描

是最快的


在这里插入图片描述

索引失效

在这里插入图片描述
索引不是越多越好

删除索引

drop index 索引名

修改索引

ALTER INDEX 索引名 RENAME TO 新索引名

禁用索引的方法

ALTER INDEX 索引名 UNUSABLE

解禁索引的语法

ALTER INDEX 索引名 REBUILD

查看用户下所有索引

SELECT INDEX_NAME FROM USER_INDEXES

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1604814.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Midjourney 实现角色一致性的新方法

AI 绘画的奇妙之处&#xff0c;实乃令人叹为观止&#xff01;就像大千世界中&#xff0c;寻不见两片完全相同的树叶一般&#xff0c;AI 绘画亦复如是。同一提示之词&#xff0c;竟能催生出千变万化的图像&#xff0c;使得AI所绘之作&#xff0c;宛如自然之物般独特&#xff0c;…

将百度网盘中数据集直接下载到服务器上

步骤&#xff1a; 1:下载安装bypy pip install bypybypy&#xff0c;是一个使用 python 编写的命令行百度网盘客户端 2:初始化 bypy info将这个链接复制到浏览器中打开 复制授权码&#xff0c;粘贴到服务器命令&#xff0c;回车 等待一会&#xff0c;会显示你云盘空间大小信…

【小白学机器学习14】确定零假设h0的技巧:先根据错误的严重程度确定第1类错误α,再确定零假设h0

目录 1 前言: 如何确定H0的逻辑思路 1.1 推导的原理 2 假设检验的2类错误 2.1 什么叫2类错误 2.2 这两类错误的计算公式 2.2.1 计算公式 2.2.2 第1类错误和第2类错误的特点 3 如何设计H0的一些例子和思考 3.1 很多书上的原则1&#xff1a;备择假设通常才是研究者最想证…

多高的学历才能轻松找到工作?这个热点有点扯吧~

先来唠唠 昨天刷脉脉的时候&#xff0c;热榜第一的内容吸引了我&#xff1a;多高的学历才能轻松找到工作&#xff1f; 现在这行情&#xff0c;不管多高得学历都很难说能轻松找到工作吧~ 评论区也有不少小伙伴发表自己的见解&#xff0c;比如&#xff1a; 学历固然是非常重要…

2D动画制作软件Moho Pro14 mac注册激活版

Moho Pro 14 for mac 是一款专业的2D动画制作软件。它具有强大的功能和工具&#xff0c;适用于动画制作师、插画师和设计师。 Moho Pro14 mac注册激活版下载 Moho Pro 14提供了丰富的动画功能&#xff0c;包括骨骼动画、形状插值、帧逐帧动画等。您可以使用骨骼工具来创建复杂的…

中缀表达式求值

题目 请写一个整数计算器&#xff0c;支持加减乘三种运算和括号。 示例1 输入&#xff1a;“12” 返回值&#xff1a;3示例2 输入&#xff1a;“(2*(3-4))*5” 返回值&#xff1a;-10示例3 输入&#xff1a;“32*3*4-1” 返回值&#xff1a;26 思路 经典的中缀表达式求值。…

Ubuntu 20.04.06 PCL C++学习记录(二十六)

[TOC]PCL中点云配准模块的学习 学习背景 参考书籍&#xff1a;《点云库PCL从入门到精通》以及官方代码PCL官方代码链接,&#xff0c;PCL版本为1.10.0&#xff0c;CMake版本为3.16&#xff0c;可用点云下载地址 学习内容 在代码中使用ICP迭代最近点算法&#xff0c;程序随机…

游戏前摇后摇Q闪E闪QE闪QA等操作

备注&#xff1a;未经博主允许禁止转载 个人笔记&#xff08;整理不易&#xff0c;有帮助&#xff0c;收藏点赞评论&#xff0c;爱你们&#xff01;&#xff01;&#xff01;你的支持是我写作的动力&#xff09; 笔记目录&#xff1a;学习笔记目录_pytest和unittest、airtest_w…

负荷预测 | Matlab基于TCN-LSTM-Attention单变量时间序列多步预测

目录 效果一览基本介绍程序设计参考资料 效果一览 基本介绍 1.负荷预测 | Matlab基于TCN-LSTM-Attention单变量时间序列多步预测&#xff1b; 2.单变量时间序列数据集&#xff0c;采用前12个时刻预测未来96个时刻的数据&#xff1b; 3.excel数据方便替换&#xff0c;运行环境ma…

请陪伴Kimi和GPT成长

经验的闪光汤圆 但是我想要写实的 你有吗&#xff1f; 岁数大了&#xff0c;希望如何学习新知识呢&#xff1f;又觉得自己哪些能力亟需补强呢&#xff1f; 看论文自然得用Kimi&#xff0c;主要是肝不动了&#xff0c;眼睛也顶不住了。 正好昨天跟专业人士学会了用工作流的办法跟…

buuctf之ciscn_2019_c_1

ciscn_2019_c_1 一、查看属性二、静态分析三、动态分析四、思路五、exp 一、查看属性 首先还是必要的查看属性环节&#xff1a; 可以知道该文件是一个x86架构下的64位小端ELF文件&#xff0c;开启了栈不可执行&#xff08;NX&#xff09; 执行一下&#xff0c;先有一个选择&…

树莓派+Openwrt连接校园网,打破校园网设备限制

前言 因为本校学生校园网只允许最多三个设备登录&#xff0c;对于同时拥有多个联网设备的我十分不友好&#xff0c;而且大多单片机如esp32的wifi模块是只允许一般的WPA/WPA2认证的&#xff0c;是不支持校园网的portal认证。所以我决定搞一个路由器。 然后我上网买了一个TP-Li…

加密软件作用有哪些?迅软DSE加密系统满足企业防泄密需求

加密软件在保护个人隐私、商业机密、敏感数据等方面发挥着重要作用&#xff0c;为用户和组织提供了重要的安全保障措施。保护数据的安全性和隐私性。通过加密软件&#xff0c;用户可以对文件、图纸、文档、源代码等进行加密处理&#xff0c;使其变得不可读取&#xff0c;只有授…

java动态代理--JDK代理

1.概述 JDK动态代理&#xff1a;只能代理实现了接口的类&#xff0c;代理对象是实现了目标对象所有接口的代理类 使用java.lang.reflect.Proxy类和java.lang.reflect.InvocationHandler接口来创建代理对象&#xff0c;工作通过反射机制完成。 2.实现接口InvocationHandler …

37、Tomato(VulnHub)

Tomato 一、nmap 2211是ssh的端口&#xff0c;21的ftp也不是弱密码 二、web渗透 随便看看 目录爆破 /seclists/Discovery/Web-Content/common.txt /antibot_image/antibots/readme.txt 发现该站点存在反爬机制 /antibot_image/antibots/info.php 提示我们该网页存在个参数 GET&…

汇编语言——将DX,AX组成的32位数逻辑左移3位

data segment data ends stack segment stacktop label worddw 100 dup (?) stack ends code segmentassume cs:code,ds:data,ss:stack main proc farmov ax,datamov ds,axmov ax,stackmov ss,axlea sp,top;0000 0001 1100 1010 | 0000 0010 0001 1111;逻辑左移三位后&#xf…

VsCode调试远程服务器上面的Docker容器

第一步 VsCode 连接ssh 下载安装VsCode(Visual Studio Code)&#xff0c;首次安装会提示你安装Chinese(Simplified)中文简体&#xff0c;安装完后重新打开就是汉化界面了。在左边侧边栏找到扩展选项&#xff0c;然后安装Remote Development插件&#xff0c;里面包含了Remote S…

FAT16文件系统

FAT16 大端存储&#xff1a;高位字节放在低地址端&#xff0c;低位字节放在高地址端。 小端存储&#xff1a;低位字节放在低地址端&#xff0c;高位字节放在高地址端。 举一个例子&#xff0c;比如数字0x12 34 56 78在内存中的表示形式为&#xff1a; 大端模式&#xff1a; 低地…

【Gradle】Gradle的构建过程

Gradle是一个基于Apache Ant和Apache Maven概念的项目自动化构建开源工具。它使用一种基于Groovy的特定领域语言(DSL)来声明项目设置&#xff0c;也增加了基于Kotlin语言的kotlin-based DSL&#xff0c;抛弃了基于XML的各种繁琐配置。 面向Java应用为主。当前其支持的语言C、J…

二、pwn - 零基础ROP之PIE保护绕过-碰撞

欲学本文,先看前文:一、pwn - 零基础ROP之Android ARM 32位篇(新修订,精华篇)-CSDN博客 代码、文件同第一篇,自行复制。本文唯一区别在于,我们不利用vulnerable_function打印的地址,无法定位pie base地址,直接随机碰撞(爆破)~ 有一定比例成功的可能,贴近实战! 多…