SQL은 쉬운것 같으면서 어려운 것같다.
수업 듣고 문제보며 생각하면 기억나는데
막상 복습할때 가물가물하다.
뒤로 갈수록 SQL 복습 비중이커서 걱정이다.
아직 처음 해보는거니까 계속 반복해보자.
ROLLUP : 좌우 합계를 내는 형태의 보고서에 사용
SELECT DEPTNO, JOB, SUM(SAL) FROM EMP GROUP BY ROLLUP(DEPTNO,JOB) ORDER BY DEPTNO;
CUBE : 상하 합계를 내는 형태의 보고서에 사용
SELECT DEPTNO, JOB, SUM(SAL) FROM EMP GROUP BY CUBE(DEPTNO,JOB) ORDER BY DEPTNO;
CUBE는 복잡해서 사용을 잘 안한다고 하심..
SUBQUERY는 다른 하나의 SQL 문장의 절에 포함된 SELECT 문장
SELECT, UPDATE, DELETE, INSERT와 같은 DML문과 CREATE TABLE 또는 VIEW에서 이용
알려지지 않은 조건에 근거한 값들을 검색하는 SELECT 문장을 작성하는데 유용
SUBQUERY는 MAIN QUERY가 실행되기 이전에 한번 실행
SUBQUERY는 괄호로 묶어서 사용
SUBQUERY는 연산자의 오른쪽 적용
SUBQUERY는 FROM, WHERE, HAVING에서 사용
SELECT ENAME, JOB FROM EMP WHERE JOB = (SELECT JOB FROM EMP WHERE EMPNO = 7369);
SELECT EMPNO, ENAME, SAL FROM EMP WHERE SAL > (SELECT SAL FROM EMP WHERE SAL = 'BLACK');
SELECT EMPNO, ENMAE, HIREDATE FROM EMP WHERE HIREDATE > (SELECT HIREDATE FROM EMP WHERE ENAME = 'MILLER');
SELECT EMPNO, ENAME, SAL FROM EMP WHERE SAL > (SELECT AVG(SAL) FROM EMP);
SELECT EMPNO, ENAME, SAL FROM EMP WHERE DEPTNO = (SELECT DEPTNO FROM EMP WHERE ENAME = 'CLERK') AND SAL > (SELECT SAL FROM EMP WHERE EMPNO = 7698);
SELECT EMPNO, ENAME, DEPTNO, SAL FROM EMP WHERE SAL IN(SELECT MAX(SAL) FROM EMP GROUP BY DEPTNO);

SELECT ENAME, DEPTNO FROM EMP WHERE DEPTNO = (SELECT DEPTNO FROM EMP ENAME = 'SCOTT');

SELECT* FROM EMP WHERE JOB = (SELECT JOB FROM EMP WHERE ENAME = 'SCOTT');

SELECT ENAME, SAL FROM EMP WHERE SAL >= (SELECT SAL FROM EMP WHERE ENAME = 'SCOTT');

SELECT ENMAE, E.DEPTNO FROM EMP E, DEPT D WHERE E.DEPTNO = D.DEPTNO AND LOC = 'DALLAS');
SELECT ENAME, DEPTNO FROM EMP WHERE DEPTNO = (SELECT DEPTNO FROM DEPT WHERE LOC = 'DALLAS');

SELECT ENAME, SAL FROM EMP WHERE DEPTNO = (SELECT DEPTNO FROM DEPT WHERE DNAME = 'SALES');