java sql objects_第十五章-简书.sql
-- ## 練習1
-- 1. 創建一個視圖,通過該視圖可以查詢到工資在2000-5000內并且姓名中包含有A的員工編號,姓名,工資。
create or replace view viewSal2k_5k
as select empno,ename,sal from emp
where sal between 2000 and 5000
and ename like '%A%';
-- 2. 通過上述創建的視圖查詢數據
select * from viewSal2k_5k;
-- ## 練習2
-- 1. 創建一個視圖,通過該視圖可以查詢到工作在NEW YORK和CHICAGO的員工編號,姓名,部門編號,入職日期。
create or replace view viewLoc_NY_CA
as select empno,ename,dept.deptno,hiredate
from emp,dept
where emp.deptno = dept.deptno
and loc in ('NEW YORK','CHICAGO');
select * from viewLoc_NY_CA;
-- 2. 創建一個視圖,通過該視圖可以查詢到每個部門的部門名稱及最低工資。
create or replace view viewMinSalbydname
as select dname,min(sal) minSalbydname
from emp,dept
where emp.deptno(+) = dept.deptno
group by dept.dname;
select * from viewMinSalbydname;
-- 3. 通過如上視圖,查詢每個部門工資最低的員工姓名及部門名稱
select ename,viewMinSalbydname.dname
from emp,dept,viewMinSalbydname
where emp.deptno = dept.deptno
and dept.dname = viewMinSalbydname.dname
and emp.sal = viewMinSalbydname.minSalbydname;
-- ## 課后作業
-- 1. 創建視圖v_emp_20,包含20號部門的員工編號,姓名,年薪列(年薪=12*(工資+獎金);
create or replace view v_emp_20
as select empno,ename,12 * (nvl(sal,0) + nvl(comm,0)) 年薪
from emp where deptno in 20;
select * from v_emp_20;
-- 2. 從視圖v_emp_20中查詢年薪大于1萬元員工的信息;
select * from v_emp_20
where 年薪 > 10000;
-- 3. 請為工資大于2000的員工創建視圖,要求顯示員工的部門信息,職位信息,工作地點;
create or replace view v_sal2000M
as select dname,job,loc
from emp,dept
where emp.deptno = dept.deptno
and sal > 2000;
select * from v_sal2000M;
-- 4. 針對以上視圖執行insert,update,delete,語句能否成功,為什么?
insert into v_sal2000M values('aaa','bbb','ccc'); -- error 無法修改與非鍵值保存表對應的列
update v_sal2000M set job = 'aaa'
where job in 'MANAGER'; -- ok
select * from v_sal2000M;
delete v_sal2000M; -- ok只刪除表數據,就是表還在
select * from v_sal2000M;
drop v_sal2000M;-- 表數據與結構都被刪除,表沒了
select * from v_sal2000M;
一鍵復制
編輯
Web IDE
原始數據
按行查看
歷史
總結
以上是生活随笔為你收集整理的java sql objects_第十五章-简书.sql的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 分级理财产品和非分级理财产品的区别,划重
- 下一篇: 民生in卡取现免手续费