SQL --索引

索引 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.mfbz.cn/a/554477.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

工业控制(ICS)---MMS

MMS 工控领域的TCP协议&#xff0c;有时wireshark会将response包解析为tcp协议&#xff0c;影响做题&#xff0c;如果筛选mms时出现连续request包&#xff0c;考虑wireshark解析错误&#xff0c;将筛选条件删除手动看一下 initiate&#xff08;可以理解为握手&#xff09; i…

QQ浏览器模仿Arc,推垂直工作栏引领新体验潮流|TodayAI

之前在硅谷大受欢迎的AI浏览器Arc一经推出就立即引起了广泛关注&#xff0c;Arc自称不仅仅是一款浏览器&#xff0c;而且还是一个“与互联网同规模的平台”。如今&#xff0c;中国的QQ浏览器也想借Arc的热潮之势&#xff0c;同样采用了类似Arc的垂直工作栏&#xff0c;声称能够…

【总结】jdk安装配置后,执行报错java: error while loading shared libraries: libjli.so

目录 问题现象排查分析解决方法 问题现象 安装jdk后&#xff0c;配置好了环境变量&#xff0c;但执行java -vesion命令时&#xff0c;报错。 java: error while loading shared libraries: libjli.so: cannot open shared object file: No such file or directory 看起来这个…

就业分析丨云计算数通双认证学员,入职海外年薪50W

扫码联系誉天猎头部&#xff0c;可享高薪岗位内推、职业规划岗前测评等服务 誉天&#xff0c;我的职业启航之地 大家好&#xff0c;我是誉天学员万*,回想起那段为梦想而奋斗的日子&#xff0c;我的心中充满了感慨。誉天在行业内一直深受好评&#xff0c;在我心中播下了技能的种…

14.多态(多态的构成条件、虚函数的重写、抽象类也就是纯虚函数的类、虚函数表、单继承和多继承的虚函数表)

1.多态的概念 ​ 多态的概念&#xff1a;通俗来说&#xff0c;就是多种形态&#xff0c;具体点就是去完成某个行为&#xff0c;当不同的对象去完成时会产生出不同的状态。 举个例子&#xff1a;比如买票这个行为&#xff0c;当普通人买票时&#xff0c;是全价买票&#xff1b;…

java动态代理--JDK代理

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

目标检测——防护装备数据集

一、重要性及意义 防护装备中的头盔和背心检测具有至关重要的重要性和深远的意义&#xff0c;主要体现在以下几个方面&#xff1a; 首先&#xff0c;它们对于保护工作人员的人身安全起着至关重要的作用。在各类工作环境中&#xff0c;尤其是那些涉及高空作业、机械操作或交通…

windows10 VS2017 grpc1.48.0环境配置

本文介绍在Windows10 下使用Visual Studio 2017编译gRPC 1.48.0并配置开发环境&#xff0c;以及开发、配置一个简单的c服务端以及客户端。&#xff08;过程令人头疼&#xff0c;参阅了大量博客&#xff0c;实际操作都存在问题&#xff0c;整理一下&#xff0c;希望对后来者有帮…

每日一练

这是一道牛客的dd爱框框的题 题目解析: 就是求大于x的最短子序列 我的思路:是滑动窗口 public static void main(String[] args) {Scanner in new Scanner(System.in);// 注意 hasNext 和 hasNextLine 的区别while (in.hasNextInt()) { // 注意 while 处理多个 caseint n in.…

基于springboot实现信息化在线教学平台设计【项目源码+论文说明】计算机毕业设计

基于springboot实现信息化在线教学平台设计演示 摘要 随着信息技术在管理上越来越深入而广泛的应用&#xff0c;管理信息系统的实施在技术上已逐步成熟。本文介绍了信息化在线教学平台的开发全过程。通过分析信息化在线教学平台管理的不足&#xff0c;创建了一个计算机管理信息…

时序分解 | Matlab实现TVF-EMD时变滤波器的经验模态分解信号分量可视化

时序分解 | Matlab实现TVF-EMD时变滤波器的经验模态分解信号分量可视化 目录 时序分解 | Matlab实现TVF-EMD时变滤波器的经验模态分解信号分量可视化效果一览基本介绍程序设计参考资料 效果一览 基本介绍 Matlab实现TVF-EMD(时变滤波器的经验模态分解)可直接替换 Matlab语言 1.…

2024年思维100春季线上赛倒计时2天,快来做思维100历年真题700道

今天是2024年4月18日&#xff0c;距离2024年春季思维100活动第一阶段的线上比赛4月20日还有2天。我们来从历年的思维100真题中来分析和推测&#xff0c;把历年真题和背后的知识点吃透了&#xff0c;举一反三&#xff0c;并建立自己的解题思路和技巧。从而提高思维100的考试成绩…

OSPF星型拓扑和MGRE全连改

一&#xff0c;拓扑 二&#xff0c;要求 1&#xff0c;R6为ISP只能配置IP地址&#xff0c;R1-R5的环回为私有网段 2&#xff0c;R1/4/5为全连的MGRE结构&#xff0c;R1/2/3为星型的拓扑结构&#xff0c; 3&#xff0c;R1为中心站点所有私有网段可以互相通讯&#xff0c;私有网段…

JavaWeb--05Vue项目简介

Vue项目简介 1 创建vue项目2 Vue项目目录结构3 运行Vue项目3 Vue项目开发流程 1 创建vue项目 环境准备好了&#xff0c;接下来我们需要通过Vue-cli创建一个vue项目&#xff0c;然后再学习一下vue项目的目录结构。Vue-cli提供了如下2种方式创建vue项目: 命令行&#xff1a;直接…

基于大数据的手机销售数据分析可视化系统,爬取京东和淘宝的的手机商品数据进行分析,Flask,Python,数据可视化

介绍 该系统主要是通过爬取京东和淘宝的的手机商品数据进行分析。爬虫python脚本通过打开浏览器授权登录后按照搜索“手机”关键字后出现的商品列表进行爬取&#xff0c;获取标题名&#xff0c;解析付款人数&#xff0c;品牌&#xff0c;评论人数&#xff0c;发货地&#xff0…

集合-CollectionListSet

Collection体系的特点、使用场景总结 如果希望元素可以重复&#xff0c;又有索引&#xff0c;索引查询要快? 用ArrayList集合, 基于数组的。(用的最多) 如果希望元素可以重复&#xff0c;又有索引&#xff0c;增删首尾操作快? 用LinkedList集合, 基于链表的。 如果希望增…

大屏-flex布局

<div class"container"><div class"title">标题</div><div class"content"><div class"item"></div><div class"item" style"width: calc((100% - 30) / 3 * 2)"><…

【Mybatis】一级缓存与二级缓存源码分析与自定义二级缓存

1.前言 缓存的本质就是内存,缓存在我们现在应用的价值是程序与数据库之间搭建的一个桥梁,提高用户的查询效率,尽量避免数据库的硬盘查询。 2.换出算法 LRU: 最不常用的对象会被换出到硬盘中(或者说最少使用的对象),通过给每个对象记录使用次数可以实现。 FIFO:先入先出,第一…

4.17作业

#include "double_link_list.h" node_p create_double_link_list() //创建双向链表 {node_p H(node_p)malloc(sizeof(node));if(HNULL){printf("空间申请失败\n");return NULL;}H->data0;H->priNULL;H->nextNULL;return H; } node_p create_node…

照片jpg格式小于50kb怎么弄?jpg压缩到指定大小

我们经常需要处理大量的图片&#xff0c;特别是在分享到社交媒体时&#xff0c;然而&#xff0c;图片文件的大小常常成为困扰我们的问题&#xff0c;尤其是当我们的设备存储空间有限时。有些平台甚至会需要将图片压缩到50kb大小&#xff0c;那么&#xff0c;如何有效地压缩图片…