INTERMEDIATE SQL 핵심 개념 요약 2

Sue·2025년 7월 19일

INTERMEDIATE SQL

목록 보기
2/3
post-thumbnail

조건문, 비교 연산자, 문자열 패턴, NULL 처리 등 다양한 필터링 기법으로 데이터를 정교하게 조회하는 법을 정리하였습니다.

1️⃣ WHERE 조건절

📌 개념: 특정 조건을 만족하는 행만 조회할 때 사용.

SELECT item 
FROM coats 
WHERE color = 'green' 
LIMIT 5;

실행 순서:
FROM → WHERE → SELECT → LIMIT


2️⃣ 비교 연산자

📌 종류:

연산자의미
>보다 크다
<보다 작다
=같다
>=이상
<=이하
<>같지 않다 (≠)

📌 예제:

SELECT title 
FROM films 
WHERE release_year > 1960;

SELECT title 
FROM films 
WHERE release_year = 1960;

SELECT title 
FROM films 
WHERE release_year <> 1960;

3️⃣ 문자열 필터링

📌 문자열은 반드시 ' 작은 따옴표로 감싼다.

SELECT title 
FROM films 
WHERE country = 'Japan';

4️⃣ 여러 조건 결합

OR / AND / BETWEEN

SELECT * 
FROM coats 
WHERE color = 'yellow' OR length = 'short';

SELECT * 
FROM coats 
WHERE color = 'yellow' AND length = 'short';

SELECT * 
FROM coats 
WHERE buttons BETWEEN 1 AND 5;

✔ 올바른 사용 예:

-- 둘 중 하나라도 true이면 OK
SELECT title 
FROM films 
WHERE release_year = 1994 OR release_year = 2000;

-- 둘 다 true여야 OK
SELECT title 
FROM films 
WHERE release_year > 1994 AND release_year < 2000;

✔ 괄호로 묶어 조건 그룹화:

SELECT title 
FROM films 
WHERE (release_year = 1994 OR release_year = 1995)
  AND (certification = 'PG' OR certification = 'R');

5️⃣ LIKE & 패턴 매칭

📌 와일드카드:

기호설명
%0개 이상 문자 매칭
_정확히 1개 문자 매칭
-- 'Ade'로 시작하는 이름
SELECT name 
FROM people 
WHERE name LIKE 'Ade%';

-- 'Ev_' : E + v + 한 글자
SELECT name 
FROM people 
WHERE name LIKE 'Ev_';

-- 마지막 글자가 'r'
SELECT name 
FROM people 
WHERE name LIKE '%r';

-- 세 번째 문자가 't'
SELECT name 
FROM people 
WHERE name LIKE '__t%';

📌 NOT LIKE 도 가능:

SELECT name 
FROM people 
WHERE name NOT LIKE 'A.%';

6️⃣ IN 연산자

📌 여러 값을 비교할 때 사용 (OR의 축약)

SELECT title 
FROM films 
WHERE release_year IN (1920, 1930, 1940);

SELECT title 
FROM films 
WHERE country IN ('Germany', 'France');

7️⃣ NULL 처리

📌 NULL은 '값이 없음', 즉 '미입력' 상태.

-- 전체 행 수
SELECT COUNT(*) 
FROM people;

-- NULL 제외한 컬럼 수
SELECT COUNT(birthdate) 
FROM people;

-- birthdate가 없는 사람
SELECT name 
FROM people 
WHERE birthdate IS NULL;

-- birthdate가 있는 사람 수
SELECT COUNT(name) 
FROM people 
WHERE birthdate IS NOT NULL;

✔ 핵심 정리:

  • IS NULL : 값이 비어있음을 확인
  • IS NOT NULL : 값이 존재함을 확인
  • COUNT(*) 는 NULL 포함
  • COUNT(컬럼) 은 NULL 제외
profile
AI/ML Engineer

0개의 댓글