Ⅰ 寫SQL,把scott.emp表中,所有JOB為MANAGER的加薪15%
updateempsetsalary=salart*1.15wherejob='MANAGER';
commit;
commit不可省,這個是提交,否則你把你執行語句的頁面關了,不能使數據更新
Ⅱ oracle資料庫emp表 什麼意思 裡面保存的都是什麼數據
1:你說的應該是scott用戶下的emp表吧,我們看下emp表的表結構你就知道保存的是什麼信息了。
2:emp表是employee雇員信息表 。
3:empno就是雇員的員工編號, employee number。
4:ename員工姓名, emlployee name。
5:job員工的工作是什麼比如推銷員,經理等。
6:mgr上級編號。
7:hiredate受雇日期。
8:sal薪金。
9:comm傭金。
10:deptno部門編號。
11:emp是scott用戶下的表。查詢此表:select * from scott.emp。
12:假如說沒有emp表,手動創建emp表。可以從其他有這個表的人那裡照結構將表建立起來。
Ⅲ 創建員工表EMP和工資表SAL,通過關聯修改實現將「男」員工工資提高10%,寫出相應SQL語句。
CREATETABLEEMP
(
EmployeeNameNVARCHAR(32),
SexNVARCHAR(1)
)
CREATETABLESAL
(
EmployeeNameNVARCHAR(32),
SalaryINT
)
INSERTINTOEMP
SELECT'張三',
'男';
INSERTINTOEMP
SELECT'李四',
'女'
INSERTINTOSAL
SELECT'張三',
100
INSERTINTOSAL
SELECT'李四',
100
SELECT*
FROMsal
UPDATEsal
SETSalary=Salary*1.1
FROMEMPb
WHEREdbo.SAL.EmployeeName=b.EmployeeName
ANDb.Sex='男'
SELECT*
FROMsal
Ⅳ 在oracle中。在emp表中列出第6行到第10行的數據。
select*form(selectrow_number()over()c,emp.*fromemp)AwhereA.cin(6,10)
Ⅳ 在oracle中emp表:顯示部門人數大於10的每個部門怎麼寫
SELECT D.DEPTNO, D.DNAME, COUNT(E.EMPNO)
FROM SCOTT.EMP E, SCOTT.DEPT D
WHERE E.DEPTNO = D.DEPTNO
GROUP BY D.DEPTNO, D.DNAME
HAVING COUNT(E.EMPNO) >= 5; --數字任改
Ⅵ 編寫一個PL/SQL塊,將emp表中的每個員工分別歸到不同的部門中,第一個員工歸到10部門,第二個員工歸到20部
第一個問題你沒說清楚,如果人數多於部門數怎麼處理?
第二個:好久沒寫了,未測試,基本思路應該沒問題
declare
cursor emp_cursor as select * from emp;--定義游標
begin
for ee in emp_cursor loop
if ee.deptno=』10』 then
update emp set salary=case when salary*1.1>5000 then 5000 else salary*1.1 end as newsalary where empno=ee.empno;
else if ee.deptno=』20』 then
update emp set salary=case when salary*1.2>5000 then 5000 else salary*1.2 end as newsalary where empno=ee.empno;
…
End if;
End loop;
Commit;
End;
Ⅶ 關於oracle的問題,有emp,dept,salgrade 三個表。完成以下問題。
1.顯示部門號為10 的部門名、員工名和工資
select deptno, ename, sal
from emp
where deptno = 10;
2. 工資級別是什麼?在表中怎麼體現?
select ename, sal
from emp;
3. 顯示員工BLAKE 的上級領導的姓名
select e1.ename
from emp e1
where e1.empno = (select e2.mgr
from emp e2
where e2.ename = 'BLAKE');
4.顯示與scott同一部門的所有員工
select e1.*
from emp e1
where e1.deptno = (select e2.deptno
from emp e2
where e2.ename = 'scott');
5.顯示工資比部門 30 的所有員工的工資高的員工的姓名、工資和部門號
select e1.ename, e1.sal, e1.deptno
from emp e1
where e1.sal >all (select e2.sal
from emp e2
where e2.deptno = 30);
6.查詢與smith 部門和崗位完全相同的所有雇員
select e1.*
from emp e1
where e1.dept = (select e2.dept from emp e2 where e2.ename = 'smith')
and e1.job = (select e3.job from emp e3 where e3.ename = 'smith')
7.顯示高於部門平均工資的員工的信息
select e1.*
from emp e1
where e1.sal > (select avg(e2.sal)
from emp e2
where e1.deptno = e2.deptno
group by e2.deptno);
8.查詢部門工資總和高於員工工資總和1/3的部門名及工資總和
select e1.deptno, sum(e1.sal)
from emp e1
group by e1.deptno
having sum(e1.sal) > (select sum(e2.sal) / 3.0
from emp e2);
Ⅷ 在oracle中emp表:顯示部門人數大於10的每個部門的最高工資怎麼寫
select max(sal+nvl(comm,0)),deptno
from emp
where deptno in(select deptno from emp group by deptno having count(*)>10)
group by deptno;
或是直接
select max(sal+nvl(comm,0)),deptno
from emp
group by deptno
having count(deptno)>10;
(ps:emp表中應該沒有哪個部門人數大於10吧!)