[SQLD]「2」(2.2) WHERE 절, GROUP BY 절/HAVING 절, ORDER BY 절
「1」 데이터 모델링의 이해
> 「2」 SQL 기본 / 활용
「3」 관리 구문
1. SELECT 문
2. 다양한 함수
> 3. WHERE 절
> 4. GROUP BY 절, HAVING 절
> 5. ORDER BY 절
6. JOIN
7. STANDARD JOIN
3. WHERE 절
WHERE
⸰ INSERT 를 제외한 DML 문에 원하는 데이터만 수행하도록 하는 조건절
√. 조건식에서 칼럼명은 좌측에 위치하든, 우측에 위치하든 정상적으로 동작함
√. 칼럼의 데이터 값이 NULL 이면, 연산 결과가 항상 FALSE 이므로 늘 거짓이 되어 아무 데이터도 출력되지 않음
SELECT 칼럼명1, 칼럼명2, ... FROM 테이블명 WHERE 조건절;
UPDATE 테이블명 SET 칼럼명 = 새로운데이터 WHERE 조건절;
DELETE FROM 테이블명 WHERE 조건절;
비교 연산자
= |
같음 |
< |
작음 |
<= |
작거나 같음 |
> |
큼 |
>= |
크거나 같음 |
부정 비교 연산자
!= |
같지 않음 |
^= |
같지 않음 |
<> |
같지 않음 |
not 칼럼명 = |
같지 않음 |
not 칼럼명 > |
크지 않음 |
SQL 연산자
BETWEEN A AND B |
A와 B의 사이 (A, B 포함) |
LIKE '비교문자열' |
'%'. 문자열 의미 '_'. 하나의 문자 의미 '#%' escape. '#' 기호가 포함된 문자 검색 |
IN (LIST) |
LIST 중 하나와 일치 |
IS NULL |
NULL 값 |
부정 SQL 연산자
NOT BETWEEN A AND B |
A와 B의 사이가 아님 (A, B 미포함) |
NOT IN (LIST) |
LIST 중 일치하는 것이 없음 |
IS NOT NULL |
NULL 값이 아님 |
논리 연산자
AND |
모든 조건이 TRUE 여야 함 |
OR |
하나 이상의 조건이 TRUE 여야 함 |
NOT |
TRUE 면 FALSE, FALSE 이면 TRUE |
연산자 우선순위
* / + - |
↑ 우선순위 높음 |
|| |
|
= <> > < >= <= |
|
IN LIKE BETWEEN IS NULL |
|
NOT |
|
AND |
|
OR |
↓ 우선순위 낮음 |
4. GROUP BY 절, HAVING 절
GROUP BY
⸰ 데이터를 그룹별로 묶을 수 있도록 하는 절
⸰ GROUP BY 절 뒤에는 그룹핑의 기준이 되는 칼럼이 옴
SELECT 기준칼럼, 칼럼명1, ...
FROM 테이블명
GROUP BY 기준칼럼;
집계 함수
⸰ 그룹별로 집계 데이터를 도출할 수 있음
COUNT(*) |
전체 row 를 count 하여 반환 |
COUNT(칼럼) |
칼럼값이 NULL 이 아닌 row 를 count 하여 반환 |
COUNT(DISTINCT 칼럼) |
칼럼값이 NULL 이 아닌 row 에서 중복 제거한 count 를 반환 |
SUM(칼럼) |
칼럼값들의 합계를 반환 |
AVG(칼럼) |
칼럼값들의 평균을 반환 |
MIN(칼럼) |
칼럼값들의 최솟값을 반환 |
MAX(칼럼) |
칼럼값들의 최댓값을 반환 |
HAVING
⸰ GROUP BY 절에서 그룹핑한 후 특정 그룹을 선별할 때 사용
⸰ 논리적 수행 순서
-FROM
>WHERE
>GROUP BY
>HAVING
>SELECT
>ORDER BY
√. HAVING 절이 SELECT 절보다 먼저 수행되므로, SELECT 절에서 정의한 ALIAS 사용 불가
√. 테이블 전체가 한 개의 그룹이 되는 경우, GROUP BY 절 없이 단독으로 사용 가능
SELECT 기준칼럼, 칼럼명1, ...
FROM 테이블명
GROUP BY 기준칼럼
HAVING COUNT(칼럼명1) >= 조건;
5. ORDER BY 절
ORDER BY
⸰ SELECT 한 데이터를 정렬하여 출력
⸰ ORDER BY 절 뒤에는 정렬의 기준이 되는 칼럼이 옴
⸰ASC
: 오름차순(기본값),DESC
: 내림차순
√.NULLS FIRST
/NULLS LAST
옵션을 사용하여 NULL 의 정렬상 순서 변경 가능
√. SELECT 절에 기술된 칼럼의 순서를 숫자로 명시해 줄 수도 있음
유선배 SQLD 과외노트
'💠기타 > 자격증' 카테고리의 다른 글
[SQLD]「2」(2.4) 서브쿼리, 뷰, 집합 연산자 (0) | 2024.06.19 |
---|---|
[SQLD]「2」(2.3) JOIN, STANDARD JOIN (1) | 2024.06.18 |
[SQLD]「2」(2.1) SELECT 문, 다양한 함수 (0) | 2024.05.31 |
[SQLD]「1」(1.2) 정규화, 반정규화, 트랜잭션, NULL (0) | 2024.05.29 |
[SQLD]「1」(1.1) 데이터 모델, 엔티티, 속성, 관계, 식별자 (0) | 2024.05.08 |