数据库对象简介

Oracle 数据库对象又称模式对象

数据库对象是逻辑结构的集合,最基本的数据库对象是表

其他数据库对象包括:

同义词是现有对象的一个别名。

简化SQL语句

隐藏对象的名称和所有者

提供对对象的公共访问

同义词共有两种类型:

CREATE USER test IDENTIFIED BYtest;GRANT CONNECT , CREATE SYNONYM TOtest;GRANT SELECT ON SCOTT.EMP TOtest;GRANT DELETE ON SCOTT.EMP TOtest;GRANT UPDATE ON SCOTT.EMP TO test;

CREATE SYNONYM staff FOR SCOTT.emp;

CREATE PUBLIC SYNONYM pub_emp FOR SCOTT.emp;

CREATE OR REPLACE PUBLIC SYNONYM pub_emp FOR SCOTT.emp;

DROPSYNONYM staff;DROP PUBLIC SYNONYM pub_emp;

序列

序列是用于生成唯一、连续序号的对象

序列可以是升序的,也可以是降序的

使用CREATE SEQUENCE语句创建序列

依次为:

序列案例

create tablet_testseq

(

idnumber primary key,

namevarchar2(10) NOT NULL);

createsequence seq_value

Startwith 1Incrementby 1;

访问序列

通过序列的伪列来访问序列的值

NEXTVAL 返回序列的下一个值

CURRVAL 返回序列的当前值

INSERT INTOt_testseqVALUES (seq_value.NEXTVAL, 'tom')INSERT INTOt_testseqVALUES (seq_value.NEXTVAL, 'jime');

SELECT seq_value.CURRVAL FROM dual;

更改和删除序列

ALTER SEQUENCE SEQ_VALUE MAXVALUE 5000 CYCLE;

DROP SEQUENCE SEQ_VALUE;

视图

selectdept.deptno,dname,loc,empno,ename,job,mgr,hiredatefromemp,deptwhere emp.deptno = dept.deptno and dname= ‘ SALES ‘;

--查看当前用户的系统权限

select * fromuser_sys_privs;--查看当前用户角色权限

select * fromuser_role_privs;--查看某个角色权限

select * from role_sys_privs where role =‘RESOURCE’;--创建视图

create viewdept_empas

selectdept.deptno,dname,loc,empno,ename,job,mgr,hiredatefromemp,deptwhere emp.deptno = dept.deptno;

select * from dept_emp where dname= ‘ SALES ‘;

视图以经过定制的方式显示来自一个或多个表的数据

视图可以视为“虚拟表”或“存储的查询”

创建视图所依据的表称为“基表”

视图的优点有:

提供了另外一种级别的表安全性

隐藏的数据的复杂性

简化的用户的SQL命令

隔离基表结构的改变

通过重命名列,从另一个角度提供数据

create viewdept_emp_orderas

selectdept.deptno,dname,loc,empno,ename,job,mgr,hiredatefromemp,deptwhere emp.deptno = dept.deptno order by dept.deptno;

create viewdept_sal_avgas

select dname,avg(sal) avg_salfromdept,empwhere dept.deptno = emp.deptno group by dname;

视图上的DML语句

在视图上也可以使用修改数据的DML语句,如

INSERT、UPDATE和DELETE

视图上的DML语句有如下限制:

只能修改一个底层的基表

如果修改违反了基表的约束条件,则无法更新视图

如果视图包含连接操作符、DISTINCT 关键字、集合操作符、聚合函数或 GROUP BY 子句,则将无法更新视图

如果视图包含伪列或表达式,则将无法更新视图

updatedept_empset ename = 'TOM'

WHERE empno = 7521;

Select ename from dept_emp where empno = 7521

Select ename from emp where empno = 7521

CREATE OR REPLACE [FORCE] VIEWview_name[(alias[, alias]...)]ASselect_statement[WITH CHECK OPTION]

[WITH READ ONLY];

DROP VIEW view_name;

索引概念

索引是与表相关的一个可选结构

用以提高 SQL 语句执行的性能减少磁盘I/O

在逻辑上和物理上都独立于表的数据

Oracle 自动维护索引

索引有各种类型,除了标准索引外,还有一些特殊类型的索引:

唯一索引

组合索引

反向键索引

位图索引

管理索引

CREATE INDEX 索引名 ON 表名 (索引字段)

CREATE INDEX idx_ename ON emp (ename)

ALTER INDEX 索引名 REBUILD [REVERSE][NOREVERSE] ;

ALTER INDEX idx_ename REBUILD;

DROP INDEX 索引名;

DROP INDEX idx_ename;

测试索引

create tablet_testseq

(

idnumber,

namevarchar2(10)

);

createsequence seq_value

startwith 1incrementby 1;

BEGIN

FOR v_temp in 1..1000000LOOPINSERT INTOt_testseqvalues(seq_value.nextval,’abcde’);ENDLOOP;END;

Set timing on; --sqlplus环境下设置

--常规查询

Select * from t_testseq where id = 28900;--创建索引,再查询

Create index idx_testseq_id on t_testseq(id);

Select * from t_testseq where id = 28900;

总结

同义词是现有数据库对象的别名

序列用于生成唯一、连续的序号

视图是基于一个或多个表的虚拟表

索引是与表相关的一个可选结构,用于提高 SQL 语句执行的性能

索引类型有标准索引、唯一索引、反向键索引、位图索引

oracle 伪列访问序列,Oracle数据库对象,同义词、序列、视图、索引相关推荐

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

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

  2. oracle 伪列访问序列,Oracle同义词与序列基础教程

    一.同义词 同义词是现有对象(表.视图.序列.过程.函数.包等)的别名 作用: 简化SQL语句 隐藏对象的名称和所有者 提供对对象的公共访问 同义词共有两种类型: 1,私有同义词-公有同义词可被所有的 ...

  3. oracle数据变化记录,学习笔记:Oracle伪列函数ora_rowscn 记录表中行数据的修改时间...

    天萃荷净 Oracle数据库开发时使用伪列函数ora_rowscn查询出数据库表中行数据的修改时间 一.默认情况下 –创建t_orascn测试表 SQL> create table t_oras ...

  4. sql object_id() 对应oracle,关于ORACLE通过file_id与block_id定位数据库对象遇到的问题引发的思考...

    在ORACLE中,我们可以通过file_id(file#)与block_id(block#)去定位一个数据库对象(object).例如,我们在10046生成的trace文件中file#=4 block ...

  5. oracle分组后伪列,Oracle伪列和伪表和分组函数(row_number,Rank)

    oracle的伪列以及伪表 oracle系统为了实现完整的关系数据库功能,系统专门提供了一组成为伪列(Pseudocolumn)的数据库列,这些列不是在建立对象时由我们完成的,而是在我们建立时由Ora ...

  6. Oracle伪列ROWID和ROWNUM

    2019独角兽企业重金招聘Python工程师标准>>> 1.ROWID ROWID数据类型介绍: ROWID伪劣是BASE64编码的,oracle表的每行数据都有一个rowid值.与 ...

  7. 下列那些是oracle的伪列,oracle伪列

    在对表进行查询时,我们可以对oracle提供的一系列伪列(pseudocolumns)进行查询,这些伪列不存储在表中,oracle不允许对伪列进行dml操作. 在oracle 10g和11g下,伪列包 ...

  8. oracle添加伪列,Oracle伪列 - jifengtang的个人空间 - OSCHINA - 中文开源技术交流社区...

    在oracle10g和下,伪列包括如下内容: lHierarchical Query Pseudocolumns 分级查询是oracle提供的递归查询语法,在这里不做展开.只有在分级查询下,才可以使用 ...

  9. oracle伪列ROWNUMBER,oracle 中 rownum 和 row_number()

    简单的介绍下oracle 中rownum 和 row_number() 使用,实例演示. 参照:http://www.cnblogs.com/zjrstar/archive/2006/08/31/49 ...

最新文章

  1. 1024,咱们程序员过节了,疯狂送书
  2. R语言回归模型协方差分析(Analysis of Covariance)
  3. Spring Aware容器感知技术
  4. 超大规模商用 K8s 场景下,阿里巴巴如何动态解决容器资源的按需分配问题?
  5. 数据科学竞赛-人脸表情识别
  6. QXTEND QUERY SERVICE调试成功
  7. java pgp_Java相当好的隐私(PGP)
  8. Spring Boot Serverless 实战系列“架构篇” 首发 | 光速入门函数计算
  9. MobileFormer-在目标检测任务上怒涨8.6 AP,微软新作MobileFormer
  10. 使用 ‘In Place’ 直接从MySQL 5.0升级至5.7
  11. gSoap下Server端接口函数的数据传出
  12. ISO7637-2瞬态浪涌波形详解
  13. vue 左侧菜单可拖动
  14. Matlab中textscan函数用法
  15. 3343:热血格斗场
  16. kali如何对网站进行ddos攻击
  17. 爬取广东工业大学新闻通知网最新通知并发送至 QQ 邮箱
  18. 【超强干货】蘑菇街App的组件化之路
  19. 【Maxent】最大熵的数学原理及其在推断问题中的应用
  20. 油菜花系统服务器能删除内容吗,油菜花能吃吗,油菜花有什么用

热门文章

  1. 最小生成树算法MST_kruskal算法
  2. 跨链原子互换时代来临,BCH潜力无限!
  3. IDEA中git的使用和分支的创建
  4. 一个不定宽高的元素如何在父元素中垂直水平居中
  5. BZOJ5323 洛谷4562:[JXOI2018]游戏——题解
  6. windows下如何正确使用Jconsole远程连接linux主机上的JVM
  7. 从Hadoop集群中移除一块磁盘的操作
  8. 数字图像缩放之最近邻插值与双线性插值处理效果对比
  9. 我与 美国作家 21天精通C++ 作者 Rao的对话:
  10. Ubuntu Server上的LVM配置