목록computer science/database (21)
IT STUDY LOG
# 서브쿼리의 정의 RDB > SQL > 쿼리 명령어 하나의 SQL문 안에 포함된 또 다른 SQL문 서브쿼리는 단일행 함수를 사용하는 것처럼 한 번만 실행되는 것이 아니라 메인쿼리 매 행마다 실행 (성능 저하 가능성) # 서브쿼리의 종류 단일 행 서브쿼리 다중 행 서브쿼리 다중 열 서브쿼리 상관관계 서브쿼리 INLINE VIEW # 참고 스캔 방법 FULL SCAN : 전체 테이블 스캔 INDEX SCAN : WHERE절의 컬럼 위치를 인덱스 테이블에서 확인 후 ROWID로 테이블 내 위치를 찾음 허수 컬럼 ROWID ROWNUM : ROWNUM에서 쓰일 수 있는 연산자는
# 그룹함수 - GROUP BY의 확장 GROUP BY ROLLUP절 GROUP BY ROLLUP의 동작 방식 뒤 인자부터 순차적으로 소거하며 그룹핑 GROUP BY ROLLUP(a, b, c): GROUP BY a, b, c / GROUP BY a, b / GROUP BY a / GROUP BY 전체 수행 GROUP BY ROLLUP(a, (b, c)): GROUP BY a, (b, c) / GROUP BY a / GROUP BY 전체 수행 */ SELECT deptno, job, COUNT(*) FROM emp WHERE deptno IN (10, 20, 30) GROUP BY ROLLUP(deptno, job); -- ROLLUP 안에서 세분화된 그룹핑 SELECT deptno, job, COUNT..
# SET 연산자 작성 방법 : SELECT 문 + SET 연산자 + SELECT 문 + SET 연산자 + ... 집합 연산자의 경우 우선순위가 없어 순차적으로 처리함 (괄호 사용 시 우선순위 지정 가능) SELECT절의 컬럼 수와 데이터 타입이 일치해야 함 (컬럼명은 일치하지 않아도 됨) 집합 연산의 경우 첫번째로 쓰여진 SQL 문이 기준 ORDER BY절은 맨 마지막 SQL문 명령문 한 번밖에 쓸 수 없으며, 헤드 기준 컬럼명을 써야 함(컬럼명으로 정렬하기 보다는 컬럼 순서(1,2,3...)로 정렬하기를 권장) 합집합 메모리 상에 정렬 후 출력 -- UNION : 중복된 행을 제외하고 결과 출력, 결과값 정렬 수행 SELECT deptno, ename, job FROM emp WHERE job = '..
# ANSI 조인 INNER JOIN 사용 방법 ON절 사용 조인 조건 절에 컬럼 명시 가능 조인 조건에 동등 연산자 이외의 연산자 또한 사용 가능 조인 조건에서 사용할 컬럼명이 테이블에 따라 달라도 사용 가능 SELECT e.empno, e.ename, d.deptno, d.dname FROM emp e INNER JOIN dept d -- INNER 키워드가 default ON e.deptno = d.deptno WHERE e.sal >= 3000; USING절 사용 조인 조건 절에 컬럼 명시 가능 USING 절에서 사용되는 컬럼은 SELECT, GROUP BY, ORDER BY 절 등에 테이블 이름, ALIAS를 가질 수 없음 SELECT e.empno, e.ename, deptno, d.dname..