Oracle备忘录(九) -- 视图

SQL> --行地址
SQL> select rowid,empno,ename from emp;

ROWID                   EMPNO ENAME                                                                                     
------------------ ---------- ----------                                                                                
AAANIwAAEAAAAAeAAA       7369 SMITH       --行地址,相当于指针                                                                              
AAANIwAAEAAAAAeAAB       7499 ALLEN                                                                                     
AAANIwAAEAAAAAeAAC       7521 WARD                                                                                      
AAANIwAAEAAAAAeAAD       7566 JONES                                                                                     
AAANIwAAEAAAAAeAAE       7654 MARTIN                                                                                    
AAANIwAAEAAAAAeAAF       7698 BLAKE                                                                                     
AAANIwAAEAAAAAeAAG       7782 CLARK                                                                                     
                                                                                 
已选择14行。

SQL> --保存20号部门的员工
SQL> create table emp20
  2  as
  3  select * from emp where deptno=20;

表已创建。
SQL> select * from emp20;

     EMPNO ENAME      JOB              MGR HIREDATE         SAL       COMM     DEPTNO                                   
---------- ---------- --------- ---------- -------------- ----- ---------- ----------                                   
      7369 SMITH      CLERK           7902 17-12月-80       800                    20                                   
      7566 JONES      MANAGER         7839 02-4月 -81      2975                    20                                   
      7788 SCOTT      ANALYST         7566 13-7月 -87      3000                    20                                   
      7876 ADAMS      CLERK           7788 13-7月 -87      1100                    20                                   
      7902 FORD       ANALYST         7566 03-12月-81      3000                    20                                   

已选择5行。
--创建成视图,只需要将table改成view
SQL> --创建表: 员工号  姓名 月薪 年薪 部门名称
SQL> create table empinfo
  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;

表已创建。

SQL> select * from empinfo;

     EMPNO ENAME        SAL    ANNLSAL DNAME                                                                            
---------- ---------- ----- ---------- --------------                                                                   
      7369 SMITH        800       9600 RESEARCH                                                                         
      7499 ALLEN       1600      19200 SALES                                                                                                                                         

已选择14行。


----**********修改表***********-----------
SQL> --修改表: 追加新列 修改列 删除列 重名列
SQL> desc test1
 名称                                                              是否为空? 类型
 ----------------------------------------------------------------- -------- --------------------------------------------
 TID                                                                        NUMBER
 TNAME                                                                      VARCHAR2(20)
 HIREDATE                                                                   DATE

SQL> alter table test1 add image blob;


SQL> alter table test1 modify tname varchar2(40);


SQL> alter table test1 drop column image;


SQL> alter table test1 rename column tname to username;


SQL> -- 删除表
SQL> select * from tab;

TNAME                          TABTYPE  CLUSTERID                                                                       
------------------------------ ------- ----------                                                                                                                                                  
TEST1                          TABLE                                                                                    
EMP20                          TABLE                                                                                    
EMPINFO                        TABLE                                                                                    

已选择10行。

SQL> drop table test1;

表已删除。

SQL> select * from tab;

TNAME                          TABTYPE  CLUSTERID                                                                       
------------------------------ ------- ----------                                                                       
BIN$UKc1E0vyQ0C1ZcDR8cUI4w==$0 TABLE                                                                                                                                                                    
EMP20                          TABLE                                                                                    
EMPINFO                        TABLE                                                                                    

已选择10行。

SQL> --Oracle的回收站
SQL> show recyclebin
ORIGINAL NAME    RECYCLEBIN NAME                OBJECT TYPE  DROP TIME                                                  
---------------- ------------------------------ ------------ -------------------                                        
TEST1            BIN$UKc1E0vyQ0C1ZcDR8cUI4w==$0 TABLE        2013-06-20:15:23:20                                        
SQL> purge recyclebin;

回收站已清空。

SQL> show recyclebin
SQL> --drop table test1 purge; --> 不经过回收站直接删除,相当于window的shift+del


SQL> select * from TESTSAVEPOINT;

       TID TNAME                                                                                                        
---------- --------------------                                                                                         
         1 Tom                                                                                                          
         2 Mary                                                                                                         

已选择2行。

SQL> drop table TESTSAVEPOINT;

表已删除。

SQL> show recyclebin
ORIGINAL NAME    RECYCLEBIN NAME                OBJECT TYPE  DROP TIME                                                  
---------------- ------------------------------ ------------ -------------------                                        
TESTSAVEPOINT    BIN$b9zRUzdaQfuXXqNhykffVA==$0 TABLE        2013-06-20:15:26:10                                        


SQL> select * from tab;

TNAME                          TABTYPE  CLUSTERID                                                                       
------------------------------ ------- ----------                                                                       
BIN$b9zRUzdaQfuXXqNhykffVA==$0 TABLE                                                                                                                                                                     
EMP20                          TABLE                                                                                    
EMPINFO                        TABLE                                                                                    

已选择9行。

--***********要访问垃圾箱中的表,要带上引号
SQL> select * from "BIN$b9zRUzdaQfuXXqNhykffVA==$0";

       TID TNAME                                                                                                        
---------- --------------------                                                                                         
         1 Tom                                                                                                          
         2 Mary                                                                                                         

已选择2行。

SQL> --注意: 管理员没有回收站



SQL> --检查性约束
--创建一个带有约束名字的表
SQL> create table myperson
  2  (pid varchar2(18) constraint myperson_PK primary key,
  3   pname varchar2(40) constraint myperson_Name_notnull not null,
  4   gender varchar2(4) constraint myperson_Gender check (gender in ('男','女')),
  5   email varchar2(40) constraint myperson_Email_unique unique
  6                      constraint myperson_Email_notnull not null,
  7   deptno number constraint myperson_FK references dept(deptno) ON DELETE CASCADE
  8  );
 
--7、 on delete set null 
表已创建。

SQL> spool off

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值