INDEX(索引)

  • 可以在表中创建索引,以便更加快速高效地查询数据。
  • 用户无法看到索引,它们只能被用来加速搜索/查询。

PS:更新一个包含索引的表需要比更新一个没有索引的表花费更多的时间,这是由于索引本身也需要更新。因此,理想的做法是仅仅在常常被搜索的列(以及表)上面创建索引。

索引新增:

--在表上创建一个简单的索引。允许使用重复的值
CREATE INDEX 索引名
ON 表 (列) --在表上创建一个唯一的索引。不允许使用重复的值:唯一的索引意味着两个行不能拥有相同的索引值。
CREATE UNIQUE INDEX 索引名
ON 表 (列) --若希望索引不止一个列(联合索引),可以在括号中列出这些列的名称用逗号隔开
CREATE INDEX 索引名
ON 表 (列1, 列2) 索引查询: --查询某个表的索引
SELECT * FROM USER_INDEXES WHERE TABLE_NAME=UPPER('表名'); --根据“索引名”查询索引的字段
SELECT * FROM USER_IND_COLUMNS WHERE INDEX_NAME=('索引名'); --根据“索引名”查询创建的索引(PS:第一个参数INDEX是固定写法)
SELECT DBMS_METADATA.GET_DDL('INDEX','索引名') FROM DUAL ;

DROP(撤销/删除)

--删索引
DROP INDEX 索引名 --删表(表结构也删)
DROP TABLE 表
--删表(只删数据)
TRUNCATE TABLE 表 --删库(这个有点刺激哈,别乱整~)
DROP DATABASE 数据库名称

ALTER(增、删、改)

--增加一列
ALTER TABLE 表
ADD 列 数据类型 --删除一列
ALTER TABLE 表
DROP COLUMN 列 --改列的数据类型(Oracle 10G 以后的版本可以省略COLUMN关键字)
ALTER TABLE 表
MODIFY COLUMN 列 数据类型

AUTO INCREMENT(自增)

  • Auto increment 会在新记录插入表中时生成一个唯一的数字,可以利用这一特性自动生成主键序列号。
  • 在 Oracle 中,必须通过 sequence 对象(该对象生成数字序列)创建 auto-increment 字段。
--创建序列
CREATE SEQUENCE 序列名
MINVALUE 1--最小值
START WITH 1--1为起始
INCREMENT BY 1--以1为递增量
CACHE 10--缓存10个值 --调用nextval函数自增
INSERT INTO 表 (ID,列2,列3)
VALUES (序列名.nextval,值2,值3)

VIEWS(视图)

  • 视图是基于 SQL 语句的结果集的可视化的表。
  • 视图包含行和列,就像一个真实的表。视图中的字段就是来自一个或多个数据库中的真实的表中的字段。
  • 可以向视图添加 SQL 函数、WHERE 以及 JOIN 语句,也可以呈现数据,就像这些数据来自于某个单一的表一样。

视图的作用:

  1. 视图隐藏了底层的表结构,简化了数据访问操作,客户端不再需要知道底层表的结构及其之间的关系。
  2. 视图提供了一个统一访问数据的接口。(即可以允许用户通过视图访问数据的安全机制,而不授予用户直接访问底层表的权限)
  3. 从而加强了安全性,使用户只能看到视图所显示的数据。
  4. 视图还可以被嵌套,一个视图中可以嵌套另一个视图。
--创建视图
CREATE VIEW 视图名称 AS 查询语句 --更新视图
CREATE OR REPLACE VIEW 视图名称 AS 查询语句 --撤销视图
DROP VIEW 视图名称

Oracle学习(四)SQL高级--表优化相关(序列、视图等)的更多相关文章

  1. Oracle学习(二)SQL高级--表数据相关

    SQL高级语句 top / limit / rownum / percent (前XXX条数据) --top(SQL Server / MS Access) select top 条数 from 表; ...

  2. Oracle学习(三)SQL高级--表结构相关(建表、约束)

    一.建表语句 CREATE DATABASE(创建数据库) --创建数据库 create database 数据库名字; CREATE TABLE(创建表) --创建表 CREATE TABLE 表名 ...

  3. oracle学习 四(持续更新中)无法为表空间 MAXDATA 中的段创建 INITIAL 区

    解决建立表的时候出现的 ORA-01658: 无法为表空间 MAXDATA 中的段创建 INITIAL 区 出现这个问题是因为表空间的大小不足,可以给他扩容这样的话也会多出来一个数据文件.具体写法如下 ...

  4. oracle/ms sql 系统表

    sql server系统表详细说明 sysaltfiles 主数据库 保存数据库的文件 syscharsets 主数据库字符集与排序顺序 sysconfigures主数据库 配置选项 syscurco ...

  5. Oracle数据库的sql语句性能优化

    在应用系统开发初期,由于开发数据库数据比较少,对于查询sql语句,复杂试图的编写等体会不出sql语句各种写法的性能优劣,但是如果将应用系统提交实际应用后,随着数据库中数据的增加,系统的响应速度就成为目 ...

  6. oracle学习 十 数据库的语句优化(持续更)

    平时关注Oracle数据库的网友都知道,Oracle性能优化保证了Oracle数据库的健壮性.下面就此提出需要注意的两个原则.   原则一:注意WHERE子句中的连接顺序: ORACLE采用自下而上的 ...

  7. MySQL 学习四 SQL优化

    MySQL逻辑架构: 第一层:客户端层,连接处理,授权认证,安全等功能.   第二层:核心层,查询解析,分析,优化,缓存,内置函数(时间,数学,加密),存储过程,触发器,视图   第三层:存储引擎.负 ...

  8. MS SQL SERVER索引优化相关查询

        查找缺失索引 -- =============================================   -- Description: 查询当前数据库中缺失的索引,知道你进行优化的 ...

  9. Oracle language types(语言种类) 表的相关操作 DDL数据定义语言

    数据定义语言 Data Definition Language Statements(DDL)数据操纵语言 Data Manipulation Language(DML) Statements事务控制 ...

随机推荐

  1. LeetCode 92 | 大公司常考的面试题,翻转链表当中指定部分

    今天是LeetCode专题的第58篇文章,我们一起来看看LeetCode 92题,翻转链表II(Reverse LInked List II). 这题的官方难度是Medium,2451个赞同,145个 ...

  2. 在服务器上使用python-gym出现的关于显示的问题

    疫情期间在家连着实验室的服务器继续学习,用到关于强化学习相关的包 gym 时,在render上出现了问题. 环境: Ubuntu18.04 服务器python 3.7.6gym 0.17.1jupyt ...

  3. Java 8新的时间日期库,这二十个案例看完你还学不会算我的!!!

    Java对日期,日历及时间的处理一直以来都饱受诟病,尤其是它决定将java.util.Date定义为可修改的以及将SimpleDateFormat实现成非线程安全的.看来Java已经意识到需要为时间及 ...

  4. 学习一下 JVM (二) -- 学习一下 JVM 中对象、String 相关知识

    一.JDK 8 版本下 JVM 对象的分配.布局.访问(简单了解下) 1.对象的创建过程 (1)前言 Java 是一门面向对象的编程语言,程序运行过程中在任意时刻都可能有对象被创建.开发中常用 new ...

  5. MPI中的cannon算法

    Cannon算法 算法过程 假设矩阵\(A,B\)和\(C\)都可以分成\(m\times m\)块矩阵,即\(A = (A_{(ij)})_{m\times m},B = (B_{(ij)})_{m ...

  6. vimrc备份

    备份一下我的 gvim 配置文件 " 使vimrc文件立马生效 autocmd BufWritePost $MYVIMRC source $MYVIMRC " 设置自己的Leade ...

  7. 基于id3算法根据房价数据进行画图预测python

    根据已给的波士顿房价数据,对波斯顿房价进行预测.即,实现给出若干条件(如房间数.社区的低收入阶层的比率和镇上学生与教师数量比例的部分数据),要能说出给出的条件是否能够有效进行预测,如可以做有效预测,则 ...

  8. 使用xShell 连接 docker 使用说明

    方式一:当不知道docker里镜像的root密码的时候 1.从Docker Hub下载需要的镜像 docker pull 镜像名字 2.使用docker run命令启动容器 docker run -i ...

  9. e3mall商城的归纳总结3之后台商品节点、认识nginx

    一  后台商品节点 大家都知道后台创建商品的时候需要选择商品的分类,而这个商品的分类就就像一棵树一样,一层包含一层又包含一层.因此这里用的框架是easyUiTree.该分类前端使用的是异步加载模式(指 ...

  10. python爬取B站视频弹幕分析并制作词云

    1.分析网页 视频地址: www.bilibili.com/video/BV19E… 本身博主同时也是一名up主,虽然已经断更好久了,但是不妨碍我爬取弹幕信息来分析呀. 这次我选取的是自己 唯一的爆款 ...