数据库对象简介

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

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

其他数据库对象包括:

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

  简化SQL语句

  隐藏对象的名称和所有者

  提供对对象的公共访问

同义词共有两种类型:

CREATE  USER  test  IDENTIFIED  BY  test;
GRANT  CONNECT , CREATE  SYNONYM TO test;
GRANT  SELECT   ON   SCOTT.EMP  TO test;
GRANT  DELETE  ON   SCOTT.EMP TO test;
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;

DROP SYNONYM   staff;
DROP PUBLIC SYNONYM   pub_emp; 

序列

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

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

使用CREATE SEQUENCE语句创建序列

依次为:

序列案例

create table  t_testseq
(id  number  primary key,name varchar2(10)  NOT NULL
);

create  sequence  seq_value
Start with   1
Increment  by  1;

访问序列

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

NEXTVAL 返回序列的下一个值

CURRVAL 返回序列的当前值

INSERT INTO  t_testseq VALUES (seq_value.NEXTVAL, 'tom')
INSERT INTO  t_testseqVALUES (seq_value.NEXTVAL, 'jime');

SELECT  seq_value.CURRVAL FROM dual;

更改和删除序列

ALTER SEQUENCE  SEQ_VALUE  MAXVALUE   5000   CYCLE;

DROP   SEQUENCE   SEQ_VALUE;

 视图

select dept.deptno,dname,loc,empno,ename,job,mgr,hiredate
from emp,dept
where emp.deptno = dept.deptno  and  dname= ‘ SALES ‘;

--查看当前用户的系统权限
select * from user_sys_privs;
--查看当前用户角色权限
select * from user_role_privs;
--查看某个角色权限
select * from role_sys_privs where role =‘RESOURCE’;--创建视图
create view dept_emp
as
select dept.deptno,dname,loc,empno,ename,job,mgr,hiredate
from emp,dept
where emp.deptno = dept.deptno;

select * from dept_emp  where dname= ‘ SALES ‘;

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

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

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

视图的优点有:

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

  隐藏的数据的复杂性

  简化的用户的SQL命令

  隔离基表结构的改变

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

create view dept_emp_order
as
select dept.deptno,dname,loc,empno,ename,job,mgr,hiredate
from emp,dept
where emp.deptno = dept.deptno  order by dept.deptno;

create view dept_sal_avg
as
select dname,avg(sal) avg_sal
from dept,emp
where dept.deptno = emp.deptno  group by dname;

视图上的DML语句

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

INSERT、UPDATE和DELETE

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

只能修改一个底层的基表

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

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

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

update dept_emp
set ename = 'TOM'
WHERE empno = 7521;

Select  ename from  dept_emp where empno = 7521

Select  ename from emp where empno = 7521

CREATE  OR REPLACE   [FORCE] VIEW   view_name [(alias[, alias]...)] AS  select_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 table t_testseq
(id number,name varchar2(10)
);

create sequence seq_value
start with 1
increment by 1;

BEGINFOR  v_temp  in  1..1000000  LOOPINSERT  INTO  t_testseqvalues(seq_value.nextval,’abcde’);END LOOP;
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 语句执行的性能

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

转载于:https://www.cnblogs.com/lzw123-/p/9796547.html

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

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

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

  2. Oracle 快速入门 同义词序列视图索引

    目录 一.数据库对象 二.同义词synonym 三.序列 四.视图 五.索引 六.综合代码 1.同义词部分: 2.序列: 3.视图和索引 一.数据库对象 1.数据库对象         2.同义词   ...

  3. Oracle数据库中的序列、索引和同义词,详细笔记。

    文章目录 数据库中的序列.索引和同义词 1. 序列 1.1 什么是序列 1.2 创建序列 1.2.1 通过DDL语句创建序列 1.2.2 使用工具创建序列 1.3 使用序列 1.3.1 查询序列 1. ...

  4. Oracle数据库对象 序列

    2019独角兽企业重金招聘Python工程师标准>>> Oracle数据库对象_序列 序列是一种数据库对象,用来自动产生一组唯一的序号. 序列是一种共享式的对象,多个用户可以共同使用 ...

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

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

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

    1. Oracle数据库对象 数据库对象是数据库的组成部分,常常用CREATE命令进行创建,可以使用ALTER命令修改,用DROP执行删除操作.前面已经接触过的数据库对象有表.用户等. 今天将学习更多 ...

  7. Oracle数据库之同义词(SYNONYM)使用

    本教程用示例来说明在Oracle数据中如何创建和删除同义词(SYNONYM). 概念 同义词是指数据库对象(表.视图.序列.存储过程等数据库对象)用另一个名字来引用.比如: 建立一个同义词可以排除一个 ...

  8. Oracle数据库之同义词(SYNONYM)使用(转)

    最近在公司听到同义词,不是很懂,甚是尴尬,决定看了一看 从网上看了看资料 同义词是指数据库对象(表.视图.序列.存储过程等数据库对象)用另一个名字来引用.比如: 建立一个同义词可以排除一个对象名字的限 ...

  9. oracle表重命名 索引,CSS_在Oracle数据库中按用户名重建索引的方法,如果你管理的Oracle数据库下某 - phpStudy...

    在Oracle数据库中按用户名重建索引的方法 如果你管理的Oracle数据库下某些应用项目有大量的修改删除操作, 数据索引是需要周期性的重建的. 它不仅可以提高查询性能, 还能增加索引表空间空闲空间大 ...

最新文章

  1. UVa10911 Forming Quiz Teams(dp)
  2. WIN7安装及配置JDK
  3. 深度 | 容器规模化落地企业的最佳途径
  4. java与jquery的选择器区别_java day44【JQuery 基础:概念,快速入门,JQuery对象和JS对象区别与转换,选择器,DOM操作,案例】...
  5. ubuntu16.04安装python2.7_如何在Ubuntu16.04 LTS上为python(2.7,3.5,3.6)设置...
  6. 微信小程序多选取值判断显示内容
  7. 硒4 Alpha –期望什么?
  8. 190729知识笔记
  9. 水经注叠加cad_如何下载等高线并在CAD中与卫星影像叠加
  10. 拍摄半身照,模特的手可以放哪儿?
  11. 系统架构设计:平滑发布和 ABTesting,你都会吗?
  12. 高速计算机的应用领域概括,河北计算机一级考试题-MS模拟试题
  13. APICloud连接夜神模拟器--博客园老牛大讲堂
  14. 2021最新(ISC)2 CISSP 考试费用列表
  15. Python基础学习笔记-4.组合数据类型
  16. 如何提高信息流广告的转化率?
  17. 交叉编译-16:live555交叉编译(Windows和君正平台)
  18. 同一个世界 两世之约(1-6)
  19. DOSBox简单指令
  20. api和gataway

热门文章

  1. 既然他人的成功与自己无关,何必过于关注他人?
  2. SAP HUM针对HU做货物移动后生成的物料凭证何处看相关的HU信息?
  3. 仅有算法远远不够:AI突破下一站,需要对硬件重新审视
  4. 吐血整理:机器学习的30个基本概念,都在这里了(手绘图解)
  5. 李世石宣布退役,高呼AI不可战胜:将举行史上首次让子人机大战
  6. 「AI初识境」被Hinton,DeepMind和斯坦福嫌弃的池化到底是什么?
  7. AI时代即将出现的3个热门职业
  8. 管理到底是“管人”还是“管事”,百分之九十的人理解有问题
  9. 技术总监和CTO的区别 浅谈CTO的作用----软件公司如何开源节流(一)
  10. AI 初学者必须要了解的术语盘点