Oracle的数据库对象分为五种:表,视图,序列,索引和同义词

(摘自不同文档如侵删)

                   用户、数据库、表、视图、存储过程、存储函数、触发器、索引等

GRANT:授权语句,对应的是REVOKE(撤销授权语句)。

  视图是从一个或多个实际表中获得的,这些表的数据存放在数据库中。那些用于产生视图的表叫做该视图的基表。一个视图也可以从另一个视图中产生。

 查询视图没有什么限制, 插入/更新/删除视图的操作会受到一定的限制; 所有针对视图的操作都会影响到视图的基表; 为了防止用户通过视图间接修改基表的数据, 可以将视图创建为只读视图(带上with read only选项)

https://www.cnblogs.com/jinloooong/p/7687632.html(视图详解)

视图的创建:

 

 

CREATE OR REPLACE VIEW dept_sum_vw(name,minsal,maxsal,avgsal)

 

AS SELECT d.dname,min(e.sal),max(e.sal),avg(e.sal)

 

FROM    emp e,dept d

 

WHERE e.deptno=d.deptno

 

GROUP BY d.dname;

查询视图定义:

SELECT view_name,text from user_views;

 

 

Oracle的同义词(synonyms)从字面上理解就是别名的意思,和视图的功能类似,就是一种映射关系。它可以节省大量的数据库空间,对不同用户的操作同一张表没有多少差别;它扩展了数据库的使用范围,能够在不同的数据库用户之间实现无缝交互;Oracle数据库中提供了同义词管理的功能。同义词是数据库对象的一个别名,经常用于简化对象访问和提高对象访问的安全性。在使用同义词时,Oracle数据库将它翻译成对应方案对象的名字。与视图类似,同义词并不占用实际存储空间,只有在数据字典中保存了同义词的定义。在Oracle数据库中的大部分数据库对象,如表、视图、物化视图、序列、函数、存储过程、包、同义词等等,数据库管理员都可以根据实际情况为他们定义同义词。

 

同义词的创建:

create or replace synonym l2_fi.t_hist_task2019 for l1_m.t_hist_task2019;

同义词的授权: 用sys账号给DM账号赋予CREATE SYNONYM的权限

SQL> GRANT CREATE SYNONYM TO DM;

 

https://blog.csdn.net/hu_dongyang/article/details/79039737(序列的创建和使用)

序列的创建:

-- Create sequence

create sequence ODSM_LOG.SEQ_TASKLOG_ID

minvalue 1

maxvalue 9999999999999999999999999999

start with 401474

increment by 1

nocache;

 

序列的使用:

select seq_tasklog_id.nextval logid,

 

 

 

索引(Index)创建使用,

https://www.cnblogs.com/oraclestudy/articles/5779210.html

https://www.cnblogs.com/oraclestudy/articles/5779200.html(视图的创建和使用)

https://www.cnblogs.com/oraclestudy/articles/5779189.html(序列)

https://www.cnblogs.com/oraclestudy/articles/5779180.html(同义词)

https://www.cnblogs.com/oraclestudy/articles/5783568.html(表空间)

索引:对数据库表中的某些列进行排序,便于提高查询效率。

当我们在某本书中查找特定的章节内容时,可以先从书的目录着手,找到该章节所在的页码,然后快速的定位到该页。这种做法的前提是页面编号是有序的。如果页码无序,就只能从第一页开始,一页页的查找了。

数据库中索引(Index)的概念与目录的概念非常类似。如果某列出现在查询的条件中,而该列的数据是无序的,查询时只能从第一行开始一行一行的匹配。创建索引就是对某些特定列中的数据排序,生成独立的索引表。在某列上创建索引后,如果该列出现在查询条件中,Oracle会自动的引用该索引,先从索引表中查询出符合条件记录的ROWID,由于ROWID是记录的物理地址,因此可以根据ROWID快速的定位到具体的记录,表中的数据非常多时,引用索引带来的查询效率非常可观。

·如果表中的某些字段经常被查询并作为查询的条件出现时,就应该考虑为该列创建索引。

·当从很多行的表中查询少数行时,也要考虑创建索引。有一条基本的准则是:当任何单个查询要检索的行少于或者等于整个表行数的10%时,索引就非常有用。

Oracle数据库会为表的主键和包含唯一约束的列自动创建索引。索引可以提高查询的效率,但是在数据增删改时需要更新索引,因此索引对增删改时会有负面影响。

CREATE [UNIQUE] INDEX index_name ON table_name(column_name[,column_name…])

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值