SQL --索引

索引 INDEX

伪列

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

SELECT emp.*,ROWNUM FROM emp

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

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

查询第四到第六条数据

SELECT C.*, ROWNUMFROM (SELECT B.*, ROWNUM DFROM (SELECT EMP.*, ROWNUM A FROM EMP WHERE ROWNUM <= 6) BORDER BY A DESC) CWHERE 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.mzph.cn/pingmian/263.shtml

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

相关文章

【创建型模式】建造者模式

一、建造者模式概述 建造者模式定义&#xff1a;将一个复杂对象的构建与它的表示分离&#xff0c;使得同样的构建过程可以创建不同得表示。(对象创建型模式)。 建造者模式分析&#xff1a; 1.将客户端与包含多个部件得复杂对象得创建过程分离&#xff0c;客户端无需知道复杂对象…

【unity】【C#】游戏音乐播放和发布

今天我们来认识一下有关 unity 音乐的一些知识 我们先创建 AudioClips 文件夹&#xff0c;这个文件夹通常就是 unity 中存放音乐的文件夹&#xff0c;然后拖进音乐文件进去 这里为大家提供了两个音乐&#xff0c;有需要可以自取 百度网盘&#xff1a;https://pan.baidu.com/s…

RIP最短路实验(华为)

思科设备参考&#xff1a;RIP最短路实验&#xff08;思科&#xff09; 一&#xff0c;技术简介 RIP&#xff08;Routing Information Protocol&#xff0c;路由信息协议&#xff09;是一种基于距离矢量的内部网关协议&#xff0c;工作原理是每个路由器周期性地向邻居路由器发…

React Ant Design 简单实现如何选中图片

效果&#xff1a; 代码&#xff1a; 定义的初始值和方法 const [selected, setSelected] useState(0); // 表示当前选中的图片索引const handleClick (index) > {if (selected index) {setSelected(null); // 如果点击的是已选中的图片&#xff0c;则取消选中状态} else…

JVM虚拟机(十)Java内存泄漏的排查思路

目录 一、可能产生内存泄露的地方二、复现堆内存泄漏三、如何排查堆内存问题&#xff1f;3.1 获取对内存快照 dump3.2 使用 Visual VM 去分析 dump 文件3.3 定位内存溢出问题 一、可能产生内存泄露的地方 在进行排查 Java 的内存泄漏问题之前&#xff0c;首先我们要知道哪里可…

【任务调度】Apache DolphinScheduler快速入门

Apache DolphinScheduler基本概念 概念&#xff1a;分布式、去中心化、易扩展的可视化DAG工作流任务调度系统。 作用&#xff1a;解决数据处理流程中错综复杂的依赖关系&#xff0c;使调度系统在数据处理流程中开箱即用。Apache DolphinScheduler是一款开源的调度工具&#xff…

windows下python opencv ffmpeg读取摄像头实现rtsp推流 拉流

windows下python opencv ffmpeg读取摄像头实现rtsp推流 拉流 整体流程1.下载所需文件1. 1下载rtsp推流服务器1.2 下载ffmpeg2. 开启RTSP服务器3. opencv 读取摄像头并调用ffmpeg进行推流4. opencv进行拉流整体流程 1.下载所需文件 1. 1下载rtsp推流服务器 下载 RTSP服务器 下…

jenkins 部署 vue 项目

jenkins 部署 vue 项目 环境 系统&#xff1a;CentOS7.9 Jenkins&#xff1a;最新LTS版本 nginx: 1.24.x gitLab: 打包机&#xff1a;jenkins所在服务器 目标机器&#xff1a;nginx所在服务器 jenkins部署配置 关键脚本 #node -v #已经安装node_module就无需执行install安…

虚拟现实(VR)开发框架

虚拟现实&#xff08;VR&#xff09;开发框架为开发者提供了构建VR应用程序所需的基本工具和功能。它们通常包括3D引擎、场景图、输入系统、音频系统和网络功能。下面是一些流行的VR开发框架。北京木奇移动技术有限公司&#xff0c;专业的软件外包开发公司&#xff0c;欢迎交流…

怎样实现opc采集数据后传给web后端

现在很多老工厂要进行数字化改造&#xff0c;现场生产的各种数据需要传到web后端&#xff0c;很多工厂现场原有的自动监控系统已经采集了现场的各种数据&#xff0c;只是没有形成联网。如果前端自动化系统全部废除&#xff0c;重新做数字化控制系统&#xff0c;成本投入太大&am…

hexo实现个人博客及涉及的技术学习

一、背景 最近,一直想做一个属于自己的网站.可以从零开始搭建一个网站,顺便可以把日常中学到的技术用于实战,还可以顺便记录自己的所思所感,记录成长的过程. 方案 一开始的方案是从零开始,模仿常见个人博客的设计,基于vueSpringbootMySQL的去实现网站. 新建项目之后,发现vu…

线上线下交友社区系统 可打包小程序 支持二开 源码交付!

社交网络的普及&#xff0c;人们交友的方式发生了巨大的变化。过去&#xff0c;我们主要通过线下的方式来结识新朋友&#xff0c;比如在学校、工作场所、社交活动或者兴趣小组中。然而&#xff0c;随着移动端软件的发展&#xff0c;线上交友也逐渐变得流行。 方便性&#xff1a…

deepspeed笔记

文章目录 一、deepspeed是什么&#xff1f;二、能训多大的模型&#xff0c;耗时如何&#xff1f;三、RLHF训练流程四、通信策略 一、deepspeed是什么&#xff1f; 传统的深度学习&#xff0c;模型训练并行&#xff0c;是将模型参数复制多份到多张GPU上&#xff0c;只将数据拆分…

java可盈保险合同管理系统的设计与实现(springboot+mysql源码+文档)

风定落花生&#xff0c;歌声逐流水&#xff0c;大家好我是风歌&#xff0c;混迹在java圈的辛苦码农。今天要和大家聊的是一款基于springboot的可盈保险合同管理系统。项目源码以及部署相关请联系风歌&#xff0c;文末附上联系信息 。 项目简介&#xff1a; 基于Spring Boot的…

[蓝桥杯 | 暴搜] 学会暴搜之路

虽然会调侃蓝桥杯是暴力求解的&#xff0c;但是本弱弱不会搜&#xff0c;不知道如何搜&#xff0c;于是写下这篇碎碎念&#xff0c;记录看到过的&#xff0c;惊艳自己的暴搜。 小总结 题目特征&#xff1a;很复杂的排列组合 说是暴力&#xff0c;其实就是枚举罢了&#xff0…

CTF中常见的四种python逆向

说在前面&#xff1a; 什么是pyc文件&#xff1f; pyc是一种二进制文件&#xff0c;是由py文件经过编译后&#xff0c;生成的文件&#xff0c;是一种byte code&#xff0c;py文件变成pyc文件后&#xff0c;加载的速度有所提高&#xff0c; pyc 文件是 Python 编译过的字节码文…

大屏数字字体+渐变色

vue数据大屏使用数字字体_vue数字字体-CSDN博客 用css实现文字字体颜色渐变的三种方法_css 字体颜色渐变-CSDN博客

OpenHarmony多媒体-ijkplayer

简介 ijkplayer是OpenHarmony环境下可用的一款基于FFmpeg的视频播放器。 演示 编译运行 1、通过IDE工具下载依赖SDK&#xff0c;Tools->SDK Manager->OpenHarmony SDK 把native选项勾上下载&#xff0c;API版本>9 2、开发板选择RK3568&#xff0c;ROM下载地址. 选择…

美女视频素材无水印哪里找?四个顶级资源站点

寻找高质量的美女视频素材无水印对于制作引人注目的视频内容至关重要。如果你正困惑于“美女视频素材无水印哪里找”&#xff0c;以下是四个提供优秀无水印美女视频素材的网站&#xff0c;可以满足你的各种创作需求。 蛙学网&#xff1a;多样化的美女视频素材 首先推荐的是蛙…

LeetCode第797题: 所有可能的路径

目录 1.问题描述 2.问题分析 1.问题描述 给你一个有 n 个节点的有向无环图&#xff08;DAG&#xff09;&#xff0c;请你找出所有从节点 0 到节点 n-1 的路径并输出&#xff08;不要求按特定顺序&#xff09;。 graph[i] 是一个从节点 i 可以访问的所有节点的列表&#xff08…