Oracle备忘录(十)--序列,索引
2014-07-18 15:20
246 查看
--视图 -- 虚表 (逻辑上存在) --主要目的是为了简化数据的查询,可以将复杂查询的结果放入到 --视图当中,方便日后查询。 --可以对视图进行增删改(很多约束条件),但是不建议这么做 SQL> create view empview 2 as 3 select e.empno,e.ename,e.sal,e.sal*12 annlsal,d.dname 4 from emp e,dept d 5 where e.deptno=d.deptno; create view empview * 第 1 行出现错误: ORA-01031: 权限不足 ---管理员执行 --SQK> grant create view to scott --SQL> sqlplus / as sysdba SQL> / --再次执行 视图已创建。 SQL> select * from tab; TNAME TABTYPE CLUSTERID ------------------------------ ------- ---------- BIN$b9zRUzdaQfuXXqNhykffVA==$0 TABLE MYPERSON TABLE TEST2 TABLE EMPVIEW VIEW DEPT TABLE EMP TABLE 已选择12行。 SQL> select * from EMPVIEW; EMPNO ENAME SAL ANNLSAL DNAME ---------- ---------- ----- ---------- -------------- 7369 SMITH 800 9600 RESEARCH 7499 ALLEN 1600 19200 SALES 7521 WARD 1250 15000 SALES 7566 JONES 2975 35700 RESEARCH SQL> create or replace view empview 2 as 3 select e.empno,e.ename,e.sal,e.sal*12 annlsal,d.dname 4 from emp e,dept d 5 where e.deptno=d.deptno 6 with read only 7 ; 视图已创建。 -----------********序列*******-------- --序列-- > 数组 -- > 内存 (因此可以提高性能) --cache指定数组的大小,如果nocache 那么就每次生成一条 --就不能提高效率 --cycle 一般我们用序列来当做主键,因此不要求循环,循环就重复了 --nocycle --序列有两个伪列:nextval , currval SQL> create sequence myseq; 序列已创建。 --如果什么都不指定,默认increment by 1 --start with 1 --nomaxvalue --nominvalue --序列还没开始用的时候,先用nextval ,这样才有currval SQL> select myseq.nextval from dual; SQL> select myseq.currval from dual; CURRVAL NEXTVAL ---------- --------- 1 1 已选择 1 行。 SQL> create table tableA(tid number,tname varchar2(20)); 表已创建。 SQL> insert into tableA values(myseq.nextval,'aaa' ); 已创建 1 行。 SQL> / 已创建 1 行。 SQL> / 已创建 1 行。 SQL> commit; 提交完成。 SQL> /* SQL> --序列的不连续 SQL> --1. 序列是公有对象 SQL> --2. 掉电(停电后,在内存缓存中的20个数字就没有了) SQL> --3. 回滚 SQL> */ SQL> insert into tableA values(myseq.nextval,'aaa' ); 已创建 1 行。 SQL> / 已创建 1 行。 SQL> rollback; 回退已完成。 SQL> insert into tableA values(myseq.nextval,'aaa' ); 已创建 1 行。 修改序列 alter sequence 序列名 ... ... 只会影响将来的值,已经用过的值不会改变 SQL> --索引(原理见下面的图) SQL> --index SQL> create index myindex on emp(deptno); 索引已创建。 SQL> --同义词 --> 别名 SQL> select count(*) 2 from hr.EMPLOYEES; from hr.EMPLOYEES * 第 2 行出现错误: ORA-00942: 表或视图不存在 --hr用户给scott授予select employees表的权限 --grant select on employees to scott SQL> / COUNT(*) ---------- 107 已选择 1 行。 --创建同义词 SQL> create synonym hremp for hr.EMPLOYEES; create synonym hremp for hr.EMPLOYEES * 第 1 行出现错误: ORA-01031: 权限不足 ---管理员授予scott创建同义词的权限 --grant create synonym to scott ; SQL> / 同义词已创建。 SQL> select count(*) from hremp; COUNT(*) ---------- 107 已选择 1 行。 SQL> spool off
相关文章推荐
- oracle 数据库模式对象,索引,序列,同义词,查看用户拥有的表,聚簇,数据库链接
- oracle 中的视图,索引,序列及同义词数据字典
- Oracle创建表、约束、视图、索引、序列、同义词、表空间
- Oracle中主键、外键、索引、序列、唯一性约束的创建
- 12-Oracle学习_索引-视图-序列-三范式
- ORACLE删除表,序列发生器,索引操作
- oracle 数据库模式对象,索引,序列,同义词,查看用户拥有的表,聚簇,数据库链接
- Oracle笔记 五、创建表、约束、视图、索引、序列、同义词、表空间
- oracle中的视图,序列,索引等信息都存在哪个表里
- oracle 创建表,序列,索引,视图,触发器,函数,存储过程,定时器,包体
- oracle 中的视图,索引,序列及同义词数据字典
- Oracle笔记 五、创建表、约束、视图、索引、序列、同义词、表空间
- Oracle笔记 五、创建表、约束、视图、索引、序列、同义词、表空间
- 【数据库】[oracle]表,视图,索引,序列,同义词等操作集合
- oracle实战2(约束、索引、序列)
- oracle创建和管理表、完整性约束、创建视图、序列、索引、同义词
- Oracle的视图、索引、同义词和序列
- Oracle--视图,序列及索引
- Oracle笔记 五、创建表、约束、视图、索引、序列、同义词、表空间
- Oracle笔记 五、创建表、约束、视图、索引、序列、同义词、表空间