其他数据库对象:
    序列(SEQUENCE)
    索引(INDEX)
    视图(VIEW)

  1.序列(SEQUENCE)
    对应的数据库字典:user_sequences
    作用:用来产生唯一性值的数据库特殊对象

  创建序列语法:
  create sequence 序列名
  start with n           表示从几开始,默认值是1
  ncrement by n          每计数一次增加多少,默认是1
  maxvalue n         序列最高峰值n
  minvalue n          序列最低峰值n
  cache n            提供n个预分配的序列,保存在内存中
  cycle | nocycle         是否循环
  oredr | noorder        有序还是无序序列

  例如:
    给员工创建一个序列
  create sequence tbl_emp_id start with 4;

  如何使用序列?
  nextval:取序列的下一个值(tbl_emp_id.nextval)
  currval:取序列的当的前值(tbl_emp_id.currval)

  在插入数据时使用:
  insert into tbl_emp values(tbl_emp_id.nextval,....)

  删除序列:
  drop sequence 序列名;

  索引(INDEX)
  对应的数据词典user_indexes

  它是一个比较重要的数据库对象,作用是可以有效的提高数据库的查询效率(数据库性能优化)

  创建索引的两种方式:
  1自动创建
  当表中的列添加了主键约束或者唯一性约束时,则系统会自动为此列创建唯一性的索引,索引名就是约束名

  2手动创建
  语法:
  create index 索引名 on 表名(列名...);

  create index 索引名 on emp(name)

  select salary from emp where name = 'mark';

  select salary from emp wehre rowid = (select rowid from emp where name= 'mark');

   注意:
    1.索引有自己独立的储存空间和命名空间
    2.创建索引也会相对牺牲一些数据库性能

索引的原理:
1.默认情况下,索引是采用BTree(二叉树)的数据结构

2.伪列(rowid),存放的数据行记录的正真“物理地址”。

--根据某物理地址查询某一行记录
//先获取记录的rowid
select rowid from s_emp where first_name="Carmen";

//根据行记录rowid查找相应的记录
select* from s_emp where rowid=(select rowid from s_emp where first_name="Carmen");

3.索引建立的原理:
把创建索引的列值与rowid合成一个键值树,这个键值对就是索引,然后把它们存放到指定的数据结构中(二叉树,位图)中,并且是独立的索引空间

4.索引查询的原理:
当我们的查询语句中where 条件的列建立了索引,则查询分为一下2步:
a.先查索引,在句列中的值直接找到rowid
b.根据第一步得到的rowid直接定位到相应的行记录结束查询

5.建立索引的策略:
a.主键和唯一性列 合适
b.不经常发生改变的列 合适
c.满足以上两个条件,经常做查询的列 合适
d.重复值太多的列 不合适
e.null值太多的列 不合适

6.删除索引

drop index 索引名;
-----------------------------------------------------

视图(VIEW)
对应的数据字典:user_view
他是一个数据库对象,它是表格的一个“窗口”,用来保存查询语句的对象,视图是依附于表的,并且与表格共享储存空间。

定义:本质就是一条合法的查询语句

作用:
1.配合权限,根据业务来做分级管理
2.减少复杂性,增加数据的安全性

创建视图的语法:
create view 视图名 as 子句;
with read only ;视图只读

例如:
--以只读方式创建s_emp表中id,salary两列的视图
create view view_name as select id,salary from s_emp with read only;
注意:操作视图必须拥有一定的权限,对只读视图不能进行DML操作

删除视图
drop view 视图名;

视图分类:
关系视图,内嵌视图,对象视图,物化视图
-----------------------------
补充:查询当前用户可执行什么操作
select * from session privs;

--查询某个权限可执行的所有操作
select* from DBA_SYS_PRIVS where grantee='DBA';(需要DBA)

--查询当前用户被赋予的系统角色
select *from SESSIONS_ROLES order by role;

--授予权限的两种方式:
1.grant createany view to 用户名
2.grant connect,resource,dba to 用户名

转载于:https://www.cnblogs.com/ty-v/p/7880529.html

Oracle 其他数据库对象相关推荐

  1. Oracle的数据库对象有哪些

    Oracle的数据库对象有哪些: 数据库的功能就是组织管理和存储各种数据库对象.数据库中的对象是我们进行数据管理的基本.本篇会回顾一下数据库对象的一些基本知识,让我们更加清晰的了解这些Oracle数据 ...

  2. oracle无创建directory权限,【DIRECTORY】普通用户创建Oracle DIRECTORY数据库对象的权限需求及探索...

    可能遇到的报错信息如若在创建DIRECTORY之前普通用户sec未获得相应权限,将会收到最为常见的"ORA-01031: insufficient privileges"错误.模拟 ...

  3. 再过五分钟,你就懂Oracle的数据库对象了

    数据库的功能就是组织管理和存储各种数据库对象.数据库中的对象是我们进行数据管理的基本.本篇会回顾一下数据库对象的一些基本知识,让我们更加清晰的了解这些Oracle数据库对象. 1. 表(Table) ...

  4. Oracle Class4. 数据库对象(同义词,序列,视图,索引,簇)

    ------------------------2013-5-9------------------------ 索引的建立情况:经常用于查询,排序和分组的列(即经常在where,order或grou ...

  5. Oracle其它数据库对象:视图、序列、同义词

    SQL> --视图: 由一个或者多个表组成的逻辑表 SQL> -创建一个视图,包含了10,20的员工信息 SQL> --创建一个视图,包含了10,20的员工信息 SQL> ed ...

  6. Oracle数据库对象,同义词、序列、视图、索引

    数据库对象简介 Oracle 数据库对象又称模式对象 数据库对象是逻辑结构的集合,最基本的数据库对象是表 其他数据库对象包括: 同义词是现有对象的一个别名. 简化SQL语句 隐藏对象的名称和所有者 提 ...

  7. oracle 伪列访问序列,Oracle数据库对象,同义词、序列、视图、索引

    数据库对象简介 Oracle 数据库对象又称模式对象 数据库对象是逻辑结构的集合,最基本的数据库对象是表 其他数据库对象包括: 同义词是现有对象的一个别名. 简化SQL语句 隐藏对象的名称和所有者 提 ...

  8. 历史快照_实用脚本--合理估算oracle数据库及数据库对象历史增长情况

    概述 很多时候我们都需要估算oracle数据库及数据库对象历史增长情况,来评估是否需要扩容,扩多少.下面介绍一下怎么通过AWR来查找一段时间内,数据库及数据库段对象(堆表.索引)等的空间增长信息. D ...

  9. 简述oracle的主要数据库对象,Oracle数据库数据对象分析

    Oracle数据库数据对象分析 Oracle数据库数据对象中最基本的是表和视图,其他还有约束.序列.函数.存储过程.包.触发器等.对数据库的操作可以基本归结为对数据对象的操作,理解和掌握Oracle数 ...

最新文章

  1. Xilinx FPGA开发工具总结
  2. MySql-5.1.32的data文件夹找不到是什么原因呢?
  3. PHPCMS 学习
  4. 前端学习 -- HtmlCss -- 框架集
  5. WinSock服务程序
  6. vs2017 java sdk_系统无法找到Visual Studio 2017 ASP.NET核心项目
  7. java lambda使用_使用Java 8和Lambda简化ReadWriteLock
  8. 将速度加快到自己的个人代码生成器中
  9. 【manacher】Strings in the Pocket
  10. mysql数据库python基础知识_python学习之Mysql数据库编程基础知识介绍
  11. js日期格式化写法及获取当前日期年月日、上一月
  12. HTTP的padding状态
  13. 禅道 非内置mysql_禅道
  14. 生产环境服务CPU飙升问题分析
  15. oracle的em能干什么,Oracle中EM的配置
  16. 《CSS新世界》读书笔记
  17. 超细!在浏览器输入xxxhub 回车之后发生了什么?
  18. 大学生创新创业万学答案
  19. vue-项目使用过程中遇到的一些问题
  20. Oracle日志挖掘之LogMiner

热门文章

  1. Chrome 插件开发-桌面通知设置实战演示,设置通知显示、存在时间
  2. Python+selenium 自动化 - 实现自动导入、上传外部文件实例演示
  3. PHP 知识点笔记-常用数据类型
  4. 微信小程序根据坐标点解析地址常见报错:请求来源未被授权
  5. Valid Sudoku
  6. warpAffine函数
  7. 【topoSort拓扑排序】1424. 奖金(简单题目看拓扑排序)
  8. 支持向量机ModuleNotFoundError: No module named ‘sklearn.datasets.samples_generator‘
  9. 引入 ServletContextListener @Autowired null 解决办法
  10. java 深克隆(深拷贝)与浅克隆(拷贝)详解