SQL/Oracle SQL
교재명 : Do it! 오라클로 배우는 데이터베이스 입문 (이지스퍼블리싱 / 이지훈 지음) [ Q1 ] [ A1 ] SELECT E.JOB, E.EMPNO, E.ENAME, E.SAL, E.DEPTNO, D.DNAME FROM EMP E, DEPT D WHERE E.DEPTNO = D.DEPTNO AND JOB = (SELECT JOB FROM EMP WHERE ENAME = 'ALLEN'); [ Q2 ] [ A2 ] SELECT E.EMPNO, E.ENAME, D.DNAME, E.HIREDATE, D.LOC, E.SAL, S.GRADE FROM EMP E, DEPT D, SALGRADE S WHERE E.DEPTNO = D.DEPTNO AND E.SAL BETWEEN S.LOSAL AND S.HISAL..
교재명 : Do it! 오라클로 배우는 데이터베이스 입문 (이지스퍼블리싱 / 이지훈 지음) [ Q1 ] [ A1 ] -- SQL-99 이전 방식 SELECT D.DEPTNO, D.DNAME, E.EMPNO, E.ENAME, E.SAL FROM EMP E, DEPT D WHERE E.DEPTNO = D.DEPTNO AND E.SAL > 2000; -- SQL-99방식 SELECT DEPTNO, D.DNAME, E.EMPNO, E.ENAME, E.SAL FROM EMP E NATURAL JOIN DEPT D WHERE E.SAL > 2000; [ Q2 ] [ A2 ] --SQL-99 이전 방식 SELECT D.DEPTNO, D.DNAME, TRUNC(AVG(SAL)) AS AVG_SAL, MAX(SAL) A..
교재명 : Do it! 오라클로 배우는 데이터베이스 입문 (이지스퍼블리싱 / 이지훈 지음) [ Q1 ] [ A1 ] SELECT DEPTNO, TRUNC(AVG(SAL)) AS AVG_SAL, MAX(SAL) AS MAX_SAL, MIN(SAL) AS MIN_SAL, COUNT(*) AS CNT FROM EMP GROUP BY DEPTNO; [ Q2 ] [ A2 ] SELECT JOB, COUNT(*) FROM EMP GROUP BY JOB HAVING COUNT(*) >= 3; 오답 풀이 (내가 쓴 답): SELECT JOB, COUNT(*) FROM EMP WHERE COUNT(*) >= 3 GROUP BY JOB WHERE은 group by 보다 먼저 실행되므로 where 보다는 having절을 사..
교재명 : Do it! 오라클로 배우는 데이터베이스 입문 (이지스퍼블리싱 / 이지훈 지음) [ Q1 ] [ A1 ] SELECT EMPNO, RPAD(SUBSTR(EMPNO, 1, 2), 4, '*') AS MASKING_EMPNO, ENAME, RPAD(SUBSTR(ENAME, 1, 1), LENGTH(ENAME), '*') AS MASKING_ENAME FROM EMP WHERE LENGTH(ENAME) >= 5 AND LENGTH(ENAME) < 6; [ Q2 ] [ A2 ] SELECT EMPNO, ENAME, SAL, TRUNC(SAL / 21.5, 2) AS DAY_PAY, ROUND(SAL / 21.5 / 8, 1) AS TIME_PAY FROM EMP; [ Q3 ] [ A3 ] SELECT..
교재명 : Do it! 오라클로 배우는 데이터베이스 입문 (이지스퍼블리싱 / 이지훈 지음) [ Q1 ] [ A1 ] SELECT * FROM EMP WHERE ENAME LIKE '%S'; [ Q2 ] [ A2 ] SELECT EMPNO, ENAME, JOB, SAL, DEPTNO FROM EMP WHERE DEPTNO = 30 AND JOB = 'SALESMAN'; [ Q3 ] [ A3 ] -- 집합연산자를 사용하지 않은 방식 SELECT EMPNO, ENAME, JOB, SAL, DEPTNO FROM EMP WHERE DEPTNO IN (20, 30) AND SAL > 2000; -- 집합연산자를 사용한 방식 SELECT EMPNO, ENAME, JOB, SAL, DEPTNO FROM EMP WHER..