728x90
1. 학생테이블과 학과 테이블을 사용하여 학생이름, 1전공 학과 번호, 1전공 학과 이름을 출력하세요.
단 ANSI / ORACLE 두 방법 모두 작성하세요
ORACLE
SELECT S.NAME STU_NAME, S.DEPTNO1 DEPTNO1, D.DNAME DEPT_NAME
FROM STUDENT S, DEPARTMENT D
WHERE S.DEPTNO1 = D.DEPTNO
ANSI
SELECT S.NAME STU_NAME, S.DEPTNO1 DEPTNO1, D.DNAME DEPT_NAME
FROM STUDENT S LEFT OUTER JOIN DEPARTMENT D
ON S.DEPTNO1 = D.DEPTNO
2. EMP2 테이블과 P_GRADE 테이블을 조회하여 현재 직급이 있는 사원의 이름과 직급, 현재 연봉, 해당 직급의 연봉의 하한 금액과 상한 금액을 출력하세요.
ORACLE
SELECT E.NAME, E.POSITION, E.PAY, PG.S_PAY, PG.E_PAY
FROM EMP2 E, P_GRADE PG
WHERE E.POSITION = PG.POSITION
ANSI
SELECT E.NAME, E.POSITION, E.PAY, PG.S_PAY, PG.E_PAY
FROM EMP2 E JOIN P_GRADE PG
ON E.POSITION = PG.POSITION
3. EMP2 테이블과 P_GRADE 테이블을 조회하여 사원들의 이름과 나이, 현재직급, 예상 직급을 출력하세요.
예상 직급은 나이로 계산하며 해당 나이가 받아야 하는 직급을 의미합니다. 나이는 오늘을 기준으로 하되 소수점 이하는 절삭해서 계산하세요.
SELECT
E.NAME NAME
, TRUNC((SYSDATE - E.BIRTHDAY)/365) + 1 AGE
, E.POSITION CURR_POSITION
, PG.POSITION
FROM EMP2 E, P_GRADE PG
WHERE TRUNC((SYSDATE - E.BIRTHDAY)/365, 0) BETWEEN PG.S_AGE(+) AND PG.E_AGE(+)
ORDER BY AGE
728x90
'데이터베이스 > Oracle SQL' 카테고리의 다른 글
오라클 SQL과 PL/SQL ( DDL - CREATE ) (0) | 2021.08.23 |
---|---|
오라클 SQL과 PL/SQL ( JOIN 연습문제 - 2 ) (0) | 2021.08.20 |
오라클 SQL과 PL/SQL ( OUTER JOIN 주의사항 / SELF JOIN ) (0) | 2021.08.18 |
오라클 SQL과 PL/SQL ( OUTER JOIN ) (0) | 2021.08.13 |
오라클 SQL과 PL/SQL ( INNER JOIN - 비등가 조인 ) (0) | 2021.08.11 |