Oracle数据库对象,同义词、序列、视图、索引
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Oracle数据库对象,同义词、序列、视图、索引,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含4234字,纯文字阅读大概需要7分钟。
内容图文
![Oracle数据库对象,同义词、序列、视图、索引](/upload/InfoBanner/zyjiaocheng/501/dbf52f1428eb4cc69e80f6a8e16b5570.jpg)
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_testseq VALUES (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;
BEGIN FOR v_temp in 1..1000000 LOOP INSERT INTO t_testseq values(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 语句执行的性能
索引类型有标准索引、唯一索引、反向键索引、位图索引
Oracle数据库对象,同义词、序列、视图、索引
标签:name rac 生成 组合索引 环境 creat 别名 独立 磁盘
本文系统来源:https://www.cnblogs.com/lzw123-/p/9796547.html
内容总结
以上是互联网集市为您收集整理的Oracle数据库对象,同义词、序列、视图、索引全部内容,希望文章能够帮你解决Oracle数据库对象,同义词、序列、视图、索引所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。