반응형

#16. GROUP BY, HAVING 절의 특징

1) GROUP BY 절을 통해 소그룹별 기준을 정한 후 SELECT 절에 집계 함수를 사용한다.

2) 집계 함수의 통계 정보는 NULL값을 가진 행을 제외하고 수행한다.

3) GROUP BY 절에서는 ALIAS 사용 불가

4) 집계 함수는 WHERE 절에 올 수 없다.

5) HAVING 절에는 집계 함수를 이용하여 조건 표시 가능

6) HAVING 절은 일반적으로 GROUP BY 뒤에 위치

 

#16-1. ORDER BY

1) Oracle에서는 NULL을 가장 큰 값으로 취급

2) SQL Server에서는 NULL을 가장 적은 값으로 취급

 

#17. 문장 실행 순서

SELECT ALIAS -> FROM -> WHERE -> GROUP BY -> HAVING -> SELECT -> ORDER BY

 

#18. JOIN

1) 정의 : 두 개 이상의 테이블들을 연결 또는 결합하여 데이터를 출력하는 것

 

#19. 집합 연산자

1) 두 개 이상의 테이블에서 JOIN을 사용하지 않고 연관된 데이터를 조회할 때 사용, SELECT 절의 컬럼 수가 동일하고 SELECT 절의 동일 우치에 존재하는 컬럼의 데이터 타입이 상호 호환할 때 사용 가능

2) 일반 집합 연산자

   - UNION : 합집합 (중복 행 1개) 정렬

   - UNION ALL : 합집합 (중복 행도 표시) 정렬 X

   - INTERSECT : 교집합 (중복 행 1개로)

   - MINUS : 차집합 (중복 행 1개로)

   - CROSS JOIN : 곱집합(PRODUCT)

3) 순수 관계 연산자 : 관계형 DB를 새롭게 구현

   - SELECT -> WHERE 절로 구현

   - PROJECT -> SELECT 절로 구현

  - NATRUAL JOIN -> 다양한 JOIN으로 구현

  - DIVIDE -> 사용 X

4) FROM절 JOIN 형태

   - INNER JOIN : JOIN 조건에서 동일한 값이 있는 행만 반환, USING 이나 ON 정을 필수적으로 사용

   - NATURAL JOIN : 두 테이블 간의 동일한 이름을 갖는 모든 컬럼들에 대해 EQUI JOIN 수행, NATURAL JOIN이 명시되면 추가로 USING, ON, WHERE 절에서 JOIN 조건을 정의할 수 없다, SQL Server에서 지원 X

   - USING 조건절 : 같은 이름을 가진 컬럼들 중에서 원하는 컬럼에 대해서만 선택적으로 EQUI JOIN을 할 수 있다, JOIN 컬럼에 대해서 ALIAS나 테이블 이름과 같은 접두사를 붙일 수 없음, SQL Server에서 지원 X

   - ON 조건절 : ON 조건절과 WHERE 조건절을 분리하여 이해가 쉬우며, 컬럼명이 다르더라도 JOIN 조건을 사용할 수 있는 장점이 있다, ALIAS나 테이블명 반드시 사용

   - CROSS JOIN : 카티시안 곱 (양쪽 집합의 M*N건의 데이터 조합이 발생한다.)

   - OUTER JOIN : JOIN 조건에서 동일한 값이 없는 행도 반환 가능, USING이나 ON 조건절 반드시 사용해야 함.

                              SQL 식에서 (+) 안 붙는 쪽으로 JOIN을 한다.

 

반응형

'Development > DB' 카테고리의 다른 글

[DB] 데이터 모델링의 이해  (0) 2022.09.04
[DB] SQL의 기본과 활용 - 1  (0) 2022.08.31
[DB] Oracle Listener  (0) 2020.04.08
[DB] DB Sequence 생성과 삭제  (0) 2020.04.08
[DB] ROWNUM과 ROWID  (0) 2020.04.08

+ Recent posts