본문 바로가기
서브 쿼리 서브 쿼리 Sub query 하나의 SQL 문 안에 포함되어 있는 또 다른 SQL 문을 말한다. 서브쿼리는 메인쿼리의 컬럼을 모두 사용할 수 있지만 메인쿼리는 서브쿼리의 컬럼을 사용할 수 없다. 서브쿼리는 괄호로 감싸서 사용한다. 단일행 비교 연산자와 함께 사용할 경우 서브쿼리의 결과는 반드시 한 건이어야 하고, 복수행 비교 연산자는 결과 건수와 상관없다. ORDER BY 절은 메인쿼리의 마지막 문장에 위치해야 하므로 서브쿼리에서는 사용할 수 없다. 스칼라 서브 쿼리 SELECT 절에 서브쿼리를 사용하여 하나의 컬럼처럼 사용하기 위한 목적으로 사용되는 서브 쿼리 인라인 뷰 서브 쿼리 FROM 절에서 하나의 테이블처럼 사용하기 위해 사용되는 서브 쿼리 인라인 뷰의 컬럼은 메인쿼리에서 사용 가능하다. 뷰 사.. 2021. 9. 27.
계층형 쿼리 계층형 쿼리 Hierarchical Query 계층형 데이터란 동일 테이블에 계층적으로 상위와 하위 데이터가 포함된 데이터를 의미한다. 테이블에 계층형 데이터가 존재하는 경우, 데이터를 조회하기 위해 계층형 쿼리를 사용한다. 노드처럼 이루어진 데이터라고 생각하면 된다. 과정 오라클에서 계층형 쿼리를 사용하는 과정은 아래와 같다. SELECT : 조회하고자 하는 컬럼을 지정한다. FROM : 대상 테이블을 지정한다. WHERE : 모든 전개를 수행한 후 지정된 조건을 만족하는 데이터만 필터링하여 추출한다. START WITH : 계층 구조 전개의 시작 위치를 지정하는 구문이다. 즉, 루트 데이터를 지정한다. CONNECT BY : CONNECT BY 절은 다음에 전개될 자식 데이터를 지정하는 구문이다. C.. 2021. 8. 16.
JOIN JOIN 조인이란 두 개 이상의 테이블들을 연결 또는 결합하여 데이터를 출력하는 것을 의미한다. 일반적인 경우 PK 와 FK 값의 연관에 의해 조인이 이루어지며 두 값과 연관없이 조인이 이루어지는 경우도 있다. 일반 집합 연산자와 SQL의 비교 일반 집합 연산자 SQL 문 설명 UNION UNION 합집합 합집합에서 생기는 중복을 없애기 위해 UNION 을 사용하고, 중복을 제거하지 않고 표현하기 위해 UNION ALL 을 사용한다. UNION 과 UNION ALL 의 결과가 같다면 응답 속도 및 효율화의 측면에서 정렬 작업을 시행하지 않는 UNION ALL 을 사용하는 편이 좋다. INTERSECTION INTERSECT 교집합 DIFFERENCE EXCEPT (오라클은 MINUS) 차집합 PRODUC.. 2021. 8. 8.
GROUP BY, HAVING, ORDER BY 집계함수 여러 행들의 그룹이 모여서 그룹 당 하나의 결과를 돌려주는 함수이다. SELECT, HAVING ORDER BY 절에 사용할 수 있다. WHERE 절에서는 집계함수를 사용할 수 없다. NULL 은 집계함수의 계산에 포함되지 않는다. 집계함수의 종류 COUNT(*) COUNT(표현식) NULL 값을 포함한 행의 수를 출력 표현식의 값이 NULL 이 아닌 행의 수를 출력 SUM(표현식) 표현식의 값이 NULL 이 아닌 나머지 값의 합계를 출력 AVG(표현식) 표현식의 값이 NULL 이 아닌 나머지 값의 평균을 출력 MAX(표현식) MIN(표현식) 표현식의 값이 NULL 이 아닌 나머지 값의 최대값을 출력 표현식의 값이 NULL 이 아닌 나머지 값의 최소값을 출력 STDDEV(표현식) 표현식의 값이 .. 2021. 8. 8.