视图view,序列sequence

SQL> host cls

SQL> –视图
SQL> –第一个视图: 员工号 姓名 月薪 年薪
SQL> create view view1
2 as
3 select empno,ename,sal,sal*12 annlsal from emp;
create view view1
*
第 1 行出现错误:
ORA-01031: 权限不足

SQL> /

视图已创建。

SQL> desc view1
名称 是否为空? 类型


EMPNO NOT NULL NUMBER(4)
ENAME VARCHAR2(10)
SAL NUMBER(7,2)
ANNLSAL NUMBER

SQL> select * from view1;

 EMPNO ENAME        SAL    ANNLSAL                                                                                                                

  7369 SMITH        800       9600                                                                                                                
  7499 ALLEN       1600      19200                                                                                                                
  7521 WARD        1250      15000                                                                                                                
  7566 JONES       2975      35700                                                                                                                
  7654 MARTIN      1250      15000                                                                                                                
  7698 BLAKE       2850      34200                                                                                                                
  7782 CLARK       2450      29400                                                                                                                
  7788 SCOTT       3000      36000                                                                                                                
  7839 KING        5000      60000                                                                                                                
  7844 TURNER      1500      18000                                                                                                                
  7876 ADAMS       1100      13200                                                                                                                

 EMPNO ENAME        SAL    ANNLSAL                                                                                                                

  7900 JAMES        950      11400                                                                                                                
  7902 FORD        3000      36000                                                                                                                
  7934 MILLER      1300      15600                                                                                                                

已选择14行。

SQL> create view view2
2 as
3 select empno,ename,sal,sal*12 annlsal,dname
4 from emp e, dept d
5 where e.deptno=d.deptno;

视图已创建。

SQL> select * from view2;

 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                                                                                                       
  7654 MARTIN      1250      15000 SALES                                                                                                          
  7698 BLAKE       2850      34200 SALES                                                                                                          
  7782 CLARK       2450      29400 ACCOUNTING                                                                                                     
  7788 SCOTT       3000      36000 RESEARCH                                                                                                       
  7839 KING        5000      60000 ACCOUNTING                                                                                                     
  7844 TURNER      1500      18000 SALES                                                                                                          
  7876 ADAMS       1100      13200 RESEARCH                                                                                                       

 EMPNO ENAME        SAL    ANNLSAL DNAME                                                                                                          

  7900 JAMES        950      11400 SALES                                                                                                          
  7902 FORD        3000      36000 RESEARCH                                                                                                       
  7934 MILLER      1300      15600 ACCOUNTING                                                                                                     

已选择14行。

SQL> **create or replace view view2
2 as
3 select empno,ename,sal,sal*12 annlsal,dname
4 from emp e, dept d
5 where e.deptno=d.deptno
6 with read only;**

视图已创建。

SQL> host cls

SQL> –序列sequence
SQL> create sequence myseq;

序列已创建。

SQL> create table testseq
2 (tid number,tname varchar2(20));

表已创建。

SQL> select myseq.CURRVAL from dual;
select myseq.CURRVAL from dual
*
第 1 行出现错误:
ORA-08002: 序列 MYSEQ.CURRVAL 尚未在此会话中定义

SQL> select myseq.NEXTVAL from dual;

NEXTVAL

     1                                                                                                                                            

已选择 1 行。

SQL> /

NEXTVAL

     2                                                                                                                                            

已选择 1 行。

SQL> select myseq.CURRVAL from dual;

CURRVAL

     2                                                                                                                                            

已选择 1 行。

SQL> insert into testseq values(myseq.NEXTVAL,’aaa’);

已创建 1 行。

SQL> /

已创建 1 行。

SQL> /

已创建 1 行。

SQL> commit;

提交完成。

SQL> select * from testseq;

   TID TNAME                                                                                                                                      

     3 aaa                                                                                                                                        
     4 aaa                                                                                                                                        
     5 aaa                                                                                                                                        

已选择3行。

SQL> insert into testseq values(myseq.NEXTVAL,’aaa’);

已创建 1 行。

SQL> /

已创建 1 行。

SQL> rollback;

回退已完成。

SQL> insert into testseq values(myseq.NEXTVAL,’aaa’);

已创建 1 行。

SQL> select * from testseq;

   TID TNAME                                                                                                                                      

     3 aaa                                                                                                                                        
     4 aaa                                                                                                                                        
     5 aaa                                                                                                                                        
     8 aaa                                                                                                                                        

已选择4行。

SQL> /*
SQL> 序列不连续:
SQL> 1. 内存,长度20
SQL> 2. 序列是一个公有对象
SQL> 3. rollback序列不连续:
SQL> 1. 内存,长度20
SQL> 2. 序列是一个公有对象
SQL> 3. rollback
SQL> */
SQL> host cls

SQL> –同义词
SQL> show user
USER 为 “SCOTT”
SQL> select count(*) from hr.EMPLOYEES;
select count(*) from hr.EMPLOYEES
*
第 1 行出现错误:
ORA-00942: 表或视图不存在

SQL> /

COUNT(*)

   107                                                                                                                                            

已选择 1 行。

SQL> –为hr.EMPLOYEES起别名
SQL> create SYNONYM hremp for hr.EMPLOYEES;
create SYNONYM hremp for hr.EMPLOYEES
*
第 1 行出现错误:
ORA-01031: 权限不足

SQL> /

同义词已创建。

SQL> select count(*) from hremp;

COUNT(*)

   107                                                                                                                                            

已选择 1 行。

SQL> spool off

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值