Oracle 其他数据库对象
其他数据库对象:
序列(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 其他数据库对象相关推荐
- Oracle的数据库对象有哪些
Oracle的数据库对象有哪些: 数据库的功能就是组织管理和存储各种数据库对象.数据库中的对象是我们进行数据管理的基本.本篇会回顾一下数据库对象的一些基本知识,让我们更加清晰的了解这些Oracle数据 ...
- oracle无创建directory权限,【DIRECTORY】普通用户创建Oracle DIRECTORY数据库对象的权限需求及探索...
可能遇到的报错信息如若在创建DIRECTORY之前普通用户sec未获得相应权限,将会收到最为常见的"ORA-01031: insufficient privileges"错误.模拟 ...
- 再过五分钟,你就懂Oracle的数据库对象了
数据库的功能就是组织管理和存储各种数据库对象.数据库中的对象是我们进行数据管理的基本.本篇会回顾一下数据库对象的一些基本知识,让我们更加清晰的了解这些Oracle数据库对象. 1. 表(Table) ...
- Oracle Class4. 数据库对象(同义词,序列,视图,索引,簇)
------------------------2013-5-9------------------------ 索引的建立情况:经常用于查询,排序和分组的列(即经常在where,order或grou ...
- Oracle其它数据库对象:视图、序列、同义词
SQL> --视图: 由一个或者多个表组成的逻辑表 SQL> -创建一个视图,包含了10,20的员工信息 SQL> --创建一个视图,包含了10,20的员工信息 SQL> ed ...
- Oracle数据库对象,同义词、序列、视图、索引
数据库对象简介 Oracle 数据库对象又称模式对象 数据库对象是逻辑结构的集合,最基本的数据库对象是表 其他数据库对象包括: 同义词是现有对象的一个别名. 简化SQL语句 隐藏对象的名称和所有者 提 ...
- oracle 伪列访问序列,Oracle数据库对象,同义词、序列、视图、索引
数据库对象简介 Oracle 数据库对象又称模式对象 数据库对象是逻辑结构的集合,最基本的数据库对象是表 其他数据库对象包括: 同义词是现有对象的一个别名. 简化SQL语句 隐藏对象的名称和所有者 提 ...
- 历史快照_实用脚本--合理估算oracle数据库及数据库对象历史增长情况
概述 很多时候我们都需要估算oracle数据库及数据库对象历史增长情况,来评估是否需要扩容,扩多少.下面介绍一下怎么通过AWR来查找一段时间内,数据库及数据库段对象(堆表.索引)等的空间增长信息. D ...
- 简述oracle的主要数据库对象,Oracle数据库数据对象分析
Oracle数据库数据对象分析 Oracle数据库数据对象中最基本的是表和视图,其他还有约束.序列.函数.存储过程.包.触发器等.对数据库的操作可以基本归结为对数据对象的操作,理解和掌握Oracle数 ...
最新文章
- Xilinx FPGA开发工具总结
- MySql-5.1.32的data文件夹找不到是什么原因呢?
- PHPCMS 学习
- 前端学习 -- HtmlCss -- 框架集
- WinSock服务程序
- vs2017 java sdk_系统无法找到Visual Studio 2017 ASP.NET核心项目
- java lambda使用_使用Java 8和Lambda简化ReadWriteLock
- 将速度加快到自己的个人代码生成器中
- 【manacher】Strings in the Pocket
- mysql数据库python基础知识_python学习之Mysql数据库编程基础知识介绍
- js日期格式化写法及获取当前日期年月日、上一月
- HTTP的padding状态
- 禅道 非内置mysql_禅道
- 生产环境服务CPU飙升问题分析
- oracle的em能干什么,Oracle中EM的配置
- 《CSS新世界》读书笔记
- 超细!在浏览器输入xxxhub 回车之后发生了什么?
- 大学生创新创业万学答案
- vue-项目使用过程中遇到的一些问题
- Oracle日志挖掘之LogMiner
热门文章
- Chrome 插件开发-桌面通知设置实战演示,设置通知显示、存在时间
- Python+selenium 自动化 - 实现自动导入、上传外部文件实例演示
- PHP 知识点笔记-常用数据类型
- 微信小程序根据坐标点解析地址常见报错:请求来源未被授权
- Valid Sudoku
- warpAffine函数
- 【topoSort拓扑排序】1424. 奖金(简单题目看拓扑排序)
- 支持向量机ModuleNotFoundError: No module named ‘sklearn.datasets.samples_generator‘
- 引入 ServletContextListener @Autowired null 解决办法
- java 深克隆(深拷贝)与浅克隆(拷贝)详解