数据库对象:表、视图、序列、索引、同义词
视图是一个虚表(简化复杂的查询操作,并不存储数据)
create or replace view empinfoview
as
select e.empno,e.ename,e.sal,e.sal*12 annsal,d.dname
from emp e,dept d
where e.deptno=d.deptno
with read only; --通过子查询创建或替换视图。 (视图可以替换但不能修改) (with check option 表示只能操作(增删改)视图中看得到的数据(不推荐通过视图修改数据);with read only表示只读)
如果视图定义中包含group by,distinct,rownum(伪列)中的一个时,不可以通过该视图使用delete删除语句。(视图是为了简化查询,不推荐通过视图修改数据)
序列是完成自增长的功能。(自动提供唯一的数值、共享对象、用于提供主键值、序列值在内存访问效率高)
序列本质是个数组(默认长度是20)
create sequence myseq
increment by 1
start with 1
maxvalue 9999
nocycle; --创建序列
select myseq.currval from dual; --currval 序列当前值
select myseq.nextval from dual; --nextval 序列下一个值
序列产生裂缝的原因:1.回滚 2.系统异常 3.多个表共用一个序列
--索引
--创建目录(索引)(存放rowid行地址)
create index myindex on emp(deptno); --创建目录(索引)
explain plan for select * from emp where deptno=10; --explain plan for 执行计划
select * from table(dbms_xplan.display); --dbms_xplan.display 执行计划, 计算查询操作所需的时间
同义词 (别名)
grant create synonym to 用户; --为某用户授创建同义词的权限
create synonym hremp for 其他用户.employees; --为其他用户的表创建同义词(别名),为了安全 (Oracle中的表属于用户)