◈ 연 습 문 제 ◈
1. EMP 테이블에서 모든 사원에 대한 이름,부서번호,부서명을 출력하는 SELECT 문장을 작성하여라.
select A.ename, A.deptno, B.DNAME
from emp A join dept B
on A.DEPTNO = B.DEPTNO
è join으로 부서번호를 걸고 dept 테이블에 부서명을 가져와서 출력
2. EMP 테이블에서 NEW YORK에서 근무하고 있는 사원에 대하여 이름,업무,급여,부서명을 출력하는 SELECT 문장을 작성하여라.
select ename, job, sal, b.dname
from emp a, dept b
where a.deptno = b.deptno
and b.LOC = 'NEW YORK';
è 부서번호로 조인을 걸고, dept테이블에 조건으로 뉴욕을 걸어서 출력합니다.
3. EMP 테이블에서 보너스를 받는 사원에 대하여 이름,부서명,위치를 출력하는 SELECT 문장을 작성하여라.
select a.ename, b.dname, b.loc
from emp a join dept b
on a.deptno = b.deptno
where a.comm is not null
and a.comm <> '0';
è Deptno로 조인한 후 보너스가 null이 아닌 것과 0이 아닌 것으로 조건 설정 후 출력
4. EMP 테이블에서 이름 중 L자가 있는 사원에 대하여 이름,업무,부서명,위치를 출력하는 SELECT 문장을 작성하여라.
select a.ename, a.job, b.dname, b.loc
from emp a join dept b
on a.deptno = b.deptno
where a.ename Like '%L%';
è
Deptno로 조인한 후 L자가 들어간사람을 조건을 Like로 걸어서 조건대로 출력
5. 아래의 결과를 출력하는 SELECT 문장을 작성하여라.(관리자가 없는 King을 포함하여 모든 사원을 출력)
Employee Emp# Manager Mgr#
----------
--------- ---------- ---------
KING 7839
BLAKE 7698 KING 7839
CLARK 7782 KING 7839
. . . . . . .
. . .
14 rows
selected.
|
select a.ename as Employee, a.empno as Emp#, b.ename as Manager, b.mgr as Mgr#
from emp a join emp b
on a.mgr = b.empno
order by a.mgr desc;
è emp테이블 하나로 셀프조인하여, 사원번호랑 매니저번호를 조인해서, 자신의 매니저를 보여주도록 출력
6. EMP 테이블에서 그들의 관리자 보다 먼저 입사한 사원에 대하여 이름,입사일,관리자 이름, 관리자 입사일을 출력하는 SELECT 문장을 작성하여라.
select a.ename as 이름
,a.hiredate as 입사일
,b.ename as 관리자이름
,B.HIREDATE as 관리자입사일
from emp a, emp b
where a.mgr = b.empno
and a.hiredate < b.hiredate;
è 셀프조인으로 사원번호와 관리자번호
매칭 후 입사일을 비교하여, 먼저 입사한 사원만 출력
7. EMP 테이블에서 사원의 급여와 사원의 급여 양만큼 “*”를 출력하는 SELECT 문장을 작성하여라. 단 “*”는 100을 의미한다.
Employee and
their salary
-----------------------------------------------------------------
KING
**************************************************
BLAKE ****************************
CLARK ************************
JONES *****************************
MARTIN ************
ALLEN ****************
TURNER ***************
. . . . . . .
. . .
14 rows
selected.
|
select ename, rpad( ' ' ,trunc (sal / 100) , '*') as 급여별
from emp
order by sal desc;
è 급여를 100으로 나눈 개수만큼 별을 찍어야하기 때문에 소수점은 절삭한 뒤 rpad 함수를 이용하여 왼쪽부터 *로 채워서 출력.
댓글 없음:
댓글 쓰기