[Oracle] ANSI SQL 조인
NATURAL JOIN - 두 테이블에 동일한 칼럼명이 있을경우 자동 조인함 SELECT E.ename, D.dname, e.deptno FROM emp E, dept D WHERE E.deptno = D.deptno; -- deptno 의 칼럼이 양테이블에 있기때문에, 정확한 테이블 별명을 넣어야 한다. SELECT E.ename, D.dname, deptno FROM emp E NATURAL JOIN dept D; --deptno는 두 테이블에 중복이므로, 별명이 생략되어야 함 T1 JOIN T2 USING (칼럼명, ..., 칼럼명N) - 비교 칼럼이 여러개 인 경우 USING에 선언 SELECT E.ename, D.dname, deptno FROM emp E JOIN dept D USING (de..
2021. 4. 18.
[Oracle] JOIN, LEFT JOIN, RIGHT JOIN, FULL JOIN, (+)
WHERE 절 JOIN SELECT t1.ename, t1.sal, T2.* FROM emp t1, salgrade T2 WHERE t1.sal BETWEEN T2.losal AND T2.hisal; WHERE 절 JOIN하기 옵션 (+) 방법 - 오라클만 가능 select d.dname, l.city from dept d, locations l where d.loc_code = l.loc_code(+); (+)가 없는 테이블 ROW가 전체 출력 됨, DEPT DNAME > INSA 정보까지 보기 위해, locations 테이블에 (+) 함 LEFT JOIN, RIGHT JOIN SELECT D.DNAME, L.LOC_CODE FROM DEPT D LEFT JOIN LOCATIONS L -- FROM D..
2021. 4. 18.
[Oracle] RANK, DENSE_RANK, ROW_NUMBER, NTILE, LAG, LEAD
RANK() OVER, RANK() OVER(PARTITION BY 그룹), SELECT EMPNO, ENAME, DEPTNO, SAL, RANK() OVER (ORDER BY SAL DESC) "RANK" FROM EMP; 사원번호, 이름, 부서번호, 급여, 급여가 많은 사원부터 순위 조회 사원번호, 이름, 부서번호, 급여, 부서 내에서 급여가 많은 사원부터 순위 조회 SELECT EMPNO, ENAME, DEPTNO, SAL, RANK() OVER (PARTITION BY DEPTNO ORDER BY SAL DESC) "RANK" FROM EMP; DENSE_RANK() OVER, DENSE_RANK() OVER(PARTITION BY 그룹) ORDER BY 절에 사용된 컬럼이나 표현식에 대하여 순위..
2021. 4. 17.
[Oracle/오라클] 그룹함수 - COUNT, SUM, AVG, MAX, MIN, ROWS , + OVER, group by, having
MIN, MAX select min(ename), max(ename), min(hiredate), max(hiredate) from emp; 예제 테이블 SELECT * FROM TB_GRADE; SELECT CLASS_CD, MAX(KOR) KOR, MAX(ENG) ENG, MAX(MAT) MAT FROM TB_GRADE GROUP BY CLASS_CD; SELECT CLASS_CD, STUDENT_NO, STUDENT_NM, KOR, SUM(KOR) OVER(PARTITION BY CLASS_CD) AS KOR_SUM, MAX(KOR) OVER(PARTITION BY CLASS_CD) AS KOR_MAX FROM TB_GRADE ORDER BY CLASS_CD, STUDENT_NO; 1) GROUP ..
2021. 4. 17.