#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] ORA-01013 에러 원인과 해결 방법 (0) | 2024.07.01 |
---|---|
[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 |