oracle学习11

一、视图

 

 现在有一个表,里面有很多列,现在抽取一部分显示

而你单纯的select  a,b,c from employees

只是查询到数据并没有什么,等下次再查还需要重新写

而view是存储起来的,当断电后,view还在

create table A as select   brxm,ksdm,zyh from ms_brry  

现在这个表好像和视图的作用差不多,

 

 

比如现在有个employee表里面包含于员工信息相关的所有信息

比如:工资,年龄,职位,奖金,评价等

但是查看奖金、评价等是需要权限的,需要一定的级别才能看见

比如CEO的级别是一级,然后往下类推

如果只让DBA看到employee表的一个子表,当有员工离职或者某些数据变动的时候,他修改的是子表而不是employee,所以不可行

目标:

       1.公司不同的人访问公司的信息是不同的

       2.当DBA对数据修改后所有人都能看到修改和更新后的数据

当对视图进行修改的是时候也会对原表的数据进行更新

 

查询表示一个一个的,视图可以多表连接

 

二、创建视图view

create view thomas_brxm
as
select brxm,brid,mzhm from ms_brda where brid=158467

对视图进行操作原表信息也进行更改

 

 

三、修改视图

 

 

 

 

四、TOP-N思想

 

 

 

 

 

 

select top 10 mzhm from ms_brda

现在top 10 还不会用

 

现在sql是下面的的

得到的结果是:

 

 上面这样salary是排序的,但是rownum是乱的

 

 

 

上面的sql出不来信息

因为rownum不能用>、=、>=

不能这么用是因为rownum是个虚列

比较图(1)与图(2)

图(1)

图(2)

这样就不会把A当做伪列处理

 

posted @ 2017-08-02 09:23  托马斯骨头收集  阅读(226)  评论(0编辑  收藏  举报