oracle中索引的使用
声明:以下内容是自己跟着教学视屏学习之后整理而来(主要是自用),如有侵权请告知,将尽快删除。
一、索引
1. 概述:
数据库对象之一
索引用于提高查询效率
索引的内建工作对用户是透明的,由数据库自行维护,我们只需要指定是否添加索引。
索引是为表中字段添加的。当一个字段经常出现在WHERE中作为过滤条件,或 ORDER BY 或 DISTINCT中时可以为其添加索引以提高查询效率。
2.索引的使用
(1) 单一索引
--创建索引
CREATE INDEX idx_emp_ename_ning
ON emp(ename)
SELECT ename,job,deptno
FROM emp_ning
WHERE ename='惜月'
(2) 复合索引:基于多个列的索引
CREATE INDEX idx_emp_job_sal_ning ON emp_ning(job,sal)
SELECT empno,ename,sal,job FROM emp_ning ORDER BY job,sal
(3)创建基于函数的索引
--在emp表的ename列上执行大小写无关的搜索
CREATE INDEX emp_ename_upper_idx_ning ON emp_ning(UPPER(ename))
SELECT * FROM emp_ning WHERE UPPER(ename)='惜月'
(4) 修改和删除索引
a.重建索引:如果经常在索引列上执行DML操作,需要定期重建索引
ALTER INDEX idx_emp_ename_ning REBUILD
b.删除索引
DROP INDEX idx_emp_ename_ning
二、结构化查询语言
参考文档:https://www.cnblogs.com/pinnsvin/p/5528272.html
结构化查询语言(sql)可以分为:
a. 数据定义语言(DDL)
b. 操纵语言(DML)
c. 事物控制语言(TCL)
d. 数据查询语言(DQL)
e. 数据控制语言(DCL)
1. 数据定义语言(DDL, Data Definition Language)
DDL作用是增删该数据库对象
语法:
a. CREATE:创建数据库对象(数据库对象主要包括:用户、数据库、表、视图、存储过程、存储函数、触发器、索引等);
CREATE TABLE employee_baobao(
id NUMBER(4),
name VARCHAR2(20) NOT NULL,
gender CHAR(1) DEFAULT 'M',
birth DATE,
salary NUMBER(6,2),
job VARCHAR2(30),
deptno NUMBER(2)
);
b. ALTER:修改数据库对象;
ALTER TABLE myemp_baobao
ADD(
hiredate DATE DEFAULT SYSDATE
)
DESC myemp_baobao
b. DROP:删除数据库对象
DROP TABLE employee_baobao
2 . 数据查询语言(DQL,Data Query Language)
主要是一些查询的sql语句。
语法:
select * from t1
3.数据操纵语言(DML, Data Manipulation Language)
主要是修改表中数据的一些sql语句。
语法结构:
a. INSERT
INSERT INTO myemp_baobao
(id,name,job,salary)
VALUES
(1,'JACK','MANAGER',5000)
b. UPDATE
update t_f_prj set f_name = 'xxx' where pk_id = ''
c. DELETE
delete from t1 where pk_id = '';
4.数据控制语言(DCL, Data Control Language)
主要是用来对数据库权限进行控制。由 GRANT 和 REVOKE 两个指令组成。
a.DCL:控制用户的访问权限;
b. GRANT:授权语句,对应的是REVOKE(撤销授权语句)。
oracle中索引的使用的更多相关文章
- 索引优化原则及Oracle中索引总结
索引建立原则 确定针对该表的操作是大量的查询操作还是大量的增删改操作. 尝试建立索引来帮助特定的查询.检查自己的sql语句,为那些频繁在where子句中出现的字段建立索引. where语句中不得不对查 ...
- Oracle中索引名称的唯一性
数据库索引处理是遇到的一点问题,简单记录下 oracle的规定,在同一个SCHEMA下的对象是不能用相同的名字命名的,一般创建索引名用“表名_字段名”,这样能很快知道这个索引,是属于哪个表的. col ...
- Oracle中索引的使用 索引性能优化调整
索引是由Oracle维护的可选结构,为数据提供快速的访问.准确地判断在什么地方需要使用索引是困难的,使用索引有利于调节检索速度. 当建立一个索引时,必须指定用于跟踪的表名以及一个或多个表列.一旦建立了 ...
- oracle中索引快速全扫描和索引全扫描的区别
当进行index full scan的时候 oracle定位到索引的root block,然后到branch block(如果有的话),再定位到第一个leaf block, 然后根据leaf bloc ...
- Oracle中的索引详解
Oracle中的索引概述 索引与表一样,也属于段(segment)的一种.里面存放了用户的数据,跟表一样需要占用磁盘空间.索引是一种允许直接访问数据表中某一数据行的树型结构,为了提高查询效率而引入,是 ...
- [转]Oracle中的索引详解
原文地址:http://www.oschina.net/question/30362_4057 一. ROWID的概念 存储了row在数据文件中的具体位置:64位 编码的数据,A-Z, a-z, 0- ...
- oracle中的B-TREE索引
在字段值情况不同的条件下测试B-TREE索引效率 清空共享池和数据缓冲区alter system flush shared_pool;alter system flush buffer_cache; ...
- Oracle中如何导出存储过程、函数、包和触发器的定义语句?如何导出表的结构?如何导出索引的创建语句?
Oracle中如何导出存储过程.函数.包和触发器的定义语句?如何导出表的结构?如何导出索引的创建语句? QQ群里有人问:如何导出一个用户下的存储过程? 麦苗答:方法有多种,可以使用DBMS_MET ...
- Oracle中B-TREE索引的深入理解(转载)
索引概述 索引与表一样,也属于段(segment)的一种.里面存放了用户的数据,跟表一样需要占用磁盘空间.只不过,在索引里的数据存放形式与表里的数据存放形式非常的不一样.在理解索引时,可以想象一本书, ...
随机推荐
- Tomcat配置Manager管理员
修改文件: D:\MyDev\Tomcat\apache-tomcat-7.0.68\conf\tomcat-users.xml 配置内容: <role rolename="mana ...
- php的serialize()函数和unserialize()函数
适用情境:serialize()返回字符串,此字符串包含了表示value的字节流,可以存储于任何地方.这有利于存储或传递 PHP 的值,同时不丢失其类型和结构.比较有用的地方就是将数据存入数据库或记录 ...
- django 处理静态文件
settings: STATIC_URL = 'static/'STATIC_ROOT = os.path.join(BASE_DIR, 'static') urls: from django.con ...
- oracle安全应用角色例子
今天在做看OCP的时候有道题是关于应用安全角色的,不是很明白,在网上找了个例子按照步骤验证了下.QUESTION 48You want to create a role to meet these r ...
- topcoder srm 715 div1 -23
1.一个计算器,它执行的是一个只包含‘+’,‘-’的字符串$s$.初始化值为0,每遇到一个‘+’增加1,否则减少1.并保存运算过程的最大最小值$Max,Min$,最后的答案是$Max-Min$.比如$ ...
- c++ vector常见用法
//输出尾巴的元素 cout<<vec.back(); //定义vector迭代器 vector<int>::iterator ite=vec.begin(); for(ite ...
- uniGUI试用笔记(七)
uniGUI的文件下载由于TUniSession的存在而变得非常简单,最典型的一个例子就是将列表中的所有数据导出到Excel中.服务器上采用TMS FlexCel控件,先将数据集中的记录导入到Exce ...
- Python 数据分析 - 索引和选择数据
loc,iloc,ix三者间的区别和联系 loc .loc is primarily label based, but may also be used with a boolean array. 就 ...
- sudo中的 各类授权 名称包含的操作 权限命令?
sudo是 do something as super user: 或者说: as Super User Do something: 就是 为 "非根用户赋予根用户的权限" 使用 ...
- vue 弹性布局 实现长图垂直居上,短图垂直居中
vue 弹性布局 实现长图垂直居上,短图垂直居中 大致效果如下图,只考虑垂直方向.长图可以通过滚动条看,短图居中效果,布局合理 html代码(vue作用域内): <div class=" ...