[SQL] 조건에 맞는 데이터 가져오기

Taewoo Kim·2023년 12월 7일

[SQL]

목록 보기
6/7

가장 쉽게 시작하는 데이터 분석, SQL유치원 강의

WHERE

가져올 데이터의 조건을 지정해주는 키워드

  • WHERE[조건식]
SELECT [컬럼이름]
FROM [테이블 이름]
WHERE 조건식;
  • 조건식을 작성하는 데에는 다양한 방식 존재
  • 보통 '연산자'를 사용
  • 원하는 데이터의 조건이 참이 되게끔 조건식 작성
  • MySQL에서는 Ture값을 1로 표현

연산자 종류

비교 연산자

=, !=, >, >=, <, <=

-- 예제
SELECT [컬럼 명]
FROM [테이블 명]
WHERE [컬럼] = [];

SELECT [컬럼 명]
FROM [테이블 명]
WHERE [컬럼] != [];

SELECT [컬럼 명]
FROM [테이블 명]
WHERE [컬럼] >= [];

SELECT [컬럼 명]
FROM [테이블 명]
WHERE [컬럼] > [];

SELECT [컬럼 명]
FROM [테이블 명]
WHERE [컬럼] < [];

SELECT [컬럼 명]
FROM [테이블 명]
WHERE [컬럼] <= [];

논리 연산자

AND, OR, NOT

-- 예제
SELECT [컬럼 명]
FROM [테이블 명]
WHERE [컬럼] <= [] AND [컬럼] = [];

SELECT [컬럼 명]
FROM [테이블 명]
WHERE [컬럼] <= [] OR [컬럼] = [];

SELECT [컬럼 명]
FROM [테이블 명]
WHERE [컬럼] <= [] AND NOT([컬럼] = []);

기타 주요 연산자

BETWEEN

  • 특정 범위 내의 데이터를 선택할 때 사용하는 연산자

특징

  • [컬럼 명]BETWEEN A AND B 형식
  • 해당 컬럼 값이 A와 B 사이에 포함되는 값을 가진 로우만 선택.
  • [컬럼 명] BETWEEN A AND B 쿼리는 A <= [컬럼 명] AND [컬럼 이름] <= B와 동일.
SELECT [컬럼 명]
FROM [테이블 명]
WHERE [컬럼 명] BETWEEN [조건 1] AND [조건 2];

IN

  • 목록 내 포함되는 데이터를 선택할 때 사용하는 연산자

특징

  • [컬럼 명] IN (A,B,```,C) 형식
  • 해당 컬럼 값이 '()' 내의 값에 포함되는 값을 가진 로우만 선택
  • [컬럼 명] IN (A,B) 쿼리는 [컬럼 명] = A OR [컬럼 이름] = B와 동일
  • 목록에 넣을 값이 여러 개일 때, OR 연산자보다 표현 및 이해가 쉬움.
SELECT [컬럼 명]
FROM [테이블 명]
WHERE [컬럼 명] IN(조건1,조건2);

문자 데이터 다루기

LIKE

  • 특정 문자열이 포함된 데이터를 선택하는 연산자

특징

  • [컬럼 명] LIKE [검색할 문자열] 형식으로 사용
  • 해당 컬럼 값이 [검색할 문자열]을 포함하고 있는 로우만 선택
  • [검색할 문자열] 내에 와일드 카드를 사용하여 검색 조건을 구체적으로 표현

와일드 카드
% = 0개 이상의 문자
_ = 1개의 문자

ex)

  • %e = 'e','ee','eecee', 'apple' 과 같은 e로 끝나는 문자열
  • e% = e로 시작하는 문자열
  • %e% = e가 포함된 문자열
  • _e = e로 끝나고 e 앞에 1개의 문자가 있는 문자열
  • %_e = e로 끝나고 e 앞에 1개 이상의 문자가 있는 문자열
  • %_e__% = e를 포함하고 e앞뒤로 1개의 문자가 있는 문자열
SELECT [컬럼 명]
FROM [테이블 명]
WHERE [컬럼 명] LIKE(검색할 문자열);

NULL

  • 데이터 값이 존재하지 않는다는 표현
  • 0 이나 공백이 아닌 알 수 없는 값을 의미

IU NULL

  • 데이터가 NULL인지 아닌지를 확인하는 연산자

특징

  • [컬럼 명] IS NULL 형식으로 사용
  • 해당 컬럼이 NULL인 있는 로우만 선택
  • NULL이 아닌 데이터를 검색하고 싶다면 IS NOT NULL
  • [컬럼 명] = NULL 또는 [컬럼 명] != NULL 과 같은 표현 사용 X

0개의 댓글