数据库视图的创建与使用

数据库视图的创建与使用

    • 本地环境
    • 初始表的建立与初始数据
    • 创建视图
        • 查询
        • 插入
        • 删除
    • 删除视图

本地环境

windows10-64位
Oracle12c
SQL Developer
时间: 2020-05-07

初始表的建立与初始数据

create table Reader
(
    RNO	varchar2(4) primary key,
    Rname	varchar2(10) not null,
    Rsex	varchar2(2),
    Rage	integer,
    Rboss	varchar2(10),
    Raddress	varchar2(30)
) ;
insert into Reader (RNO,Rname,Rage,Rsex,Rboss, Raddress) values('R001','张三',20,'男','李四','416');
insert into Reader (RNO,Rname,Rage,Rsex,Rboss, Raddress) values('R002','张三',35,'女',null,'417');
insert into Reader (RNO,Rname,Rage,Rsex,Rboss, Raddress) values('R003','李四',30,'男',null,'416');
insert into Reader (RNO,Rname,Rage,Rsex,Rboss, Raddress) values('R004','王五',20,'男',null,'417');
insert into Reader (RNO,Rname,Rage,Rsex,Rboss, Raddress) values('R005','马六',40,'男',null,'416');
insert into Reader (RNO,Rname,Rage,Rsex,Rboss, Raddress) values('R006','刘三',20,'男',null,'417');
insert into Reader (RNO,Rname,Rage,Rsex,Rboss, Raddress) values('R007','王四',40,'男','李四','416');
insert into Reader (RNO,Rname,Rage,Rsex,Rboss, Raddress) values('R008','李小龙',20,'男','李四','417');
insert into Reader (RNO,Rname,Rage,Rsex,Rboss, Raddress) values('R009','王小倩',40,'男','李四','416');
insert into Reader (RNO,Rname,Rage,Rsex,Rboss, Raddress) values('R010','王一小',20,'男','李四','417');

创建视图

建立在416办公室工作的视图V416,视图包括员工的编号、姓名、年龄等信息:


CREATE VIEW V416 as select rno,rname,rage from reader where raddress='416';

V416数据如下:
数据库视图的创建与使用_第1张图片

查询

跟表的查询类似,比如
从V416中查询年龄大于30的员工信息:

select * from v416 where rage > 30;

输出:
RNO  RNAME            RAGE
---- ---------- ----------
R005 马六               40
R007 王四               40

插入

向视图V416中插入一条新的员工记录,然后从V416中查找该条记录,测试是否可以找到:

insert into v416( rno,rname,rage) values('R999','new reader',99);
select * from reader;
select * from v416;

输出:

RNO  RNAME      RSE       RAGE RBOSS      RADDRESS                     
---- ---------- --- ---------- ---------- ------------------------------
R001 张三       男          20 李四       416                           
R003 李四       男          30            416                           
R004 王五       男          20            417                           
R005 马六       男          40            416                           
R006 刘三       男          20            417                           
R007 王四       男          40 李四       416                           
R999 new reader             99                                          

 选定了 7 行 


RNO  RNAME            RAGE
---- ---------- ----------
R001 张三               20
R003 李四               30
R005 马六               40
R007 王四               40

可以看到插入V416时,实际上是插入Reader表中,而V416没有显示是因为,不满足Raddress = ‘416’ 这个条件;

删除

比如删除王四的数据:

delete from v416 where rname='王四';

查询看看Reader表和V416视图:

select * from reader;
select * from v416;

输出:

RNO  RNAME      RSE       RAGE RBOSS      RADDRESS                     
---- ---------- --- ---------- ---------- ------------------------------
R001 张三       男          20 李四       416                           
R003 李四       男          30            416                           
R004 王五       男          20            417                           
R005 马六       男          40            416                           
R006 刘三       男          20            417                           
R999 new reader             99                                          

 选定了 6 行 


RNO  RNAME            RAGE
---- ---------- ----------
R001 张三               20
R003 李四               30
R005 马六               40

果然都删除了王四,说明视图操作实际是在表上进行的。

删除视图

drop view V416;

你可能感兴趣的:(数据库视图的创建与使用)