[SQLD]「2」(2.2) WHERE 절, GROUP BY 절/HAVING 절, ORDER BY 절

728x90

[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

 

연산자 우선순위

*/+-  우선순위 높음
||  
=<>>< >=<=  
INLIKEBETWEENIS 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 과외노트

728x90