본문 바로가기
Back-end

SQL 문법(2)

by 신재권 2021. 7. 18.
SUM(컬럼) 열의 합을 출력, NULL을 제외하고 더함
COUNT(컬럼) 지정한 데이터의 개수 반환
문법 설명
MAX(컬럼) 데이터중 최대값 반환
MIN(컬럼) 데이터중 최소값 반환
MAX(날짜) 가장 느린 값(날짜 데이터가 큰값)
MIN(날짜) 가장 빠른 값(날짜 데이터가 작은 값)
AVG(컬럼) 데이터의 평균값 반환
GROUP BY 그룹화 열 지정 결과들을 특정 열값별로 묶는다.
먼저 지정한 열로 대그룹을 나누고, 그 다음 지정한 열로 소그룹을 나눈다.
HAVING 조건 GROUP BY절을 사용해 그룹화된 결과중 출력 그룹을 선별하는 조건식
GROUP BY ROLLUP(열 지정) 그룹화 데이터의 합계를 함께 출력
GROUP BY CUBE(열 지정) ROLLUP과 동일하지만 가능한 모든 조합의 결과가 출력된다.
GROUP BY GROUPING SETS(열 지정) 각 열별로 그룹을 묶어서 출력(같은수준)
GROUPING(ROLLUP 또는 CUBE에 명시한 그룹화 한 열이름) 현재 결과가 그룹화 대상 열의 그룹화가 이루어진 상태의 집계인지의 여부 출력
0,1로 출력되며 1이면 그룹화가 된 상태이다.
GROUPING_ID(그룹화 여부를 확인할 열) 그룹화 비트 벡터의 값으로 나타난다.
000이 출력, 011, 102 , 113이 출력된다.
LISTAGG(나열할 열, 구분자) ~
WHTHIN GROUP(ORDER BY 나열할 열의 정렬 기준 열)
그룹화 된 열을 가로로 나열하고, 구분자 지정도 가능하다.
PIVOT 기존 테이블의 행을 열로 바꿔서 출력
UNPIVOT 기존 테이블 열을 행으로 바꿔서 출력
등가조인(내부조인, 단순조인) 테이블을 연결한 후에 출력 행을 각 테이블의 특정 열에 일치한 데이터를 기준으로 선정하는 방식
비등가 조인 등가조인 외의 방식들
자체 조인 하나의 테이블을 여러 개의 테이블처럼 활용하는 방식(지정한 열 중 일치한 데이터를 기준으로 조인되기 때문에 큰 범위로는 등가조인이다.
외부조인(Outer Join) null인 데이터가 존재해도 강제로 출력하는 방식
왼쪽 외부 조인 WHERE A.COL1 =B.COL(+)
왼쪽 열을 기준으로 오른쪽 열의 데이터 존재 여부에 상관없이 출력
오른쪽 외부 조인 WHERE A.COL1(+) =B.COL
오른쪽 열을 기준으로 왼쪽 열의 데이터 존재 여부에 상관없이 출력
FROM 테이블1 NATURAL JOIN 테이블2 SQL-99 문법, 등가 조인
조인의 기준 열을 SELECT절에 명시할 때 테이블 이름을 붙이지 않는다.
FROM 테이블1 JOIN 테이블2 USING(기준열) SQL-99문법, 등가 조인
USING 키워드에 조인 기준으로 사용할 열을 명시해서 사용한다.
조인 기준 열로 명시된 열은 SELECT 절에서 테이블 이름을 붙이지 않는다.
FROM 테이블1 JOIN 테이블2 ON(조인 조건식) 조인 기준 조건식은 ON에 명시하고 그 밖의 출력 행을 걸러내기 위한 WHERE 조건식을 따로 사용
FROM 테이블1 (LEFT/RIGHT/FULL) OUTER JOIN 테이블 2 ON (조인 조건식) 외부조인과 동일
서브 쿼리 SQL문을 실행하는데 필요한 데이터를 추가로 조회하기 위해서 SQL 내부에서 사용하는 SELECT문을 의미
서브쿼리의 특징 연산자와 같은 비교 또는 조회 대상의 오른쪽에 놓이며 괄호()로 묶어서 사용
몇몇 경우를 제외한 서브쿼리에서는 ORDER BY절 사용할수 없음
서브쿼리 SELECT 절에 명시한 열은 메인쿼리의 비교 대상과 같은 자료형/ 같은 개수로 지정해야 한다.
서브쿼리 SELECT 문의 결과 행 수는 함께 사용하는 메인 쿼리의 연산자 종류와 호환가능해야한다.
단일행 서브 쿼리 실행 결과가 하나의 행으로 나옴
다중행 서브 쿼리 실행결과 행이 여러개로 나오는 쿼리
IN(조건1,조건2...) 메인 쿼리의 데이터가 서브 쿼리의 결과 중 하나라도 일치하는 데이터가 있으면 TRUE 반환
ANY, SOME (조건1, 조건2...) 메인쿼리의 조건식을 만족하는 서브쿼리의 결과가 하나 이상이면 TRUE
ALL(조건1, 조건2...) 메인쿼리의 조건식을 서브쿼리의 결과 모두가 만족하면 TRUE
EXITST(조건1, 조건2...) 서브쿼리의 결과가 존재하면(즉 행이 1개 이상일 경우) TRUE

'Back-end' 카테고리의 다른 글

JPA 개념  (0) 2021.07.18
Spring 개념  (0) 2021.07.18
12 지네릭스, 열거형, 애너테이션 (1)  (0) 2021.07.17
11 컬렉션 프레임웍(7)  (0) 2021.07.11
SQL 문법(1)  (0) 2021.07.11