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

Shy·2024년 1월 3일

MySQL

목록 보기
4/7

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

우리가 하게 될 데이터 요청의 대부분은 다음과 같다.

"10번 이상 구매한 VIP고객의 리스트를 뽑아주세요."
"매출 5천만원 이상의 상품 리스트를 뽑아주세요."

이렇게 조건이 붙는다.

이렇게 조건이 붙는 데이터를 가져오는 방법에 대해 알아보자.

WHERE

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

WHERE의 특징

  • WHERE 조건식 형식으로 사용한다.
  • 조건식이 True(참)이 되는 로우만 선택한다.

WHERE 문법

SELECT [컬럼 이름] FROM [테이블 이름] WHERE 조건식;

조건식

  • 조건식을 작성하는 데에는 다양한 방식이 있다.
  • 보통 ‘연산자’를 사용하여 조건식을 작성한다.
  • 원하는 데이터의 조건이 True (참)이 되게끔 조건식을 만든다.
  • MySQL에서는 True(참) 값을 1로 표현한다. False(거짓) 값은 0으로 표현한다. (= 엑셀과 동일)

연산자 종류

  • 비교 연산자
    • =,>,<등
  • 논리 연산자
    • NOT, AND, OR 등
  • 기타 주요 연산자
    • BETWEEN, IN 등

비교연산자

연산자활용의미예시
=A = BA와 B가 같다.1=1
!=A != BA와 B가 같지 않다.1!= 2
>A > BA가 B보다 크다10 > 1
>=A >= BA가 B보다 크거나 같다.10 >= 10
<A < BA가 B보다 작다.10 < 100
<=A <= BA가 B보다 작거나 같다.10 <= 10

'='사용 예제

name중 'pikachu'와 일치해서 True가 되는 것은 하나밖에 없으므로, 해당 데이터만 출력된다.

'>'사용 예제

'!='사용 예제

논리연산자

연산자활용의미
ANDA AND BA와 B 모두 True이면 True
ORA OR BA와 B 둘 중 하나만 True이면 True
NOTNOT AA가 아니면 True

'AND'사용 예제

'OR'사용 예제

'NOT'사용 예제

기타 주요 연산자

BETWEEN

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

BETWEEN특징

  • [컬럼 이름] BETWEEN A AND B 형식으로 사용한다.
  • 해당 컬럼 값이 A와 B사이에 포함되는 값을 가진 로우만 선택한다. (A<= 컬럼 값 <=B)
  • §[컬럼이름] BETWEEN A AND B쿼리는 A <= [컬럼이름] AND [컬럼이름] <=B 와 동일하다.

BETWEEN 문법

SELECT [컬럼 이름]
FROM [테이블 이름]
WHERE [컬럼 이름] BETWEEN [조건 1] AND [조건 2];

BETWEEN 사용 예제

IN

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

특징

  • [컬럼이름] IN (A,B,...,C) 형식으로 사용한다.
  • 해당 컬럼의 값이 ‘()’내의 값에 포함되는 값을 가진 로우만 선택한다.
  • [컬럼이름] IN (A,B) 쿼리는 [컬럼이름] = A OR [컬럼이름] = B와 동일하다.
  • 목록에 넣을 값이 여러 개일 때, OR 연산자보다 표현 및 이해가 쉽다.

IN 문법

SELECT [컬럼 이름]
FROM [테이블 이름]
WHERE [컬럼 이름] IN ([조건 1], [조건 2], ...);

문자형 데이터 다루기

LIKE

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

특징

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

와일드카드

와일드카드의미
%0개 이상의 문자
_1개의 문자

와일드카드의 예는 다음과 같다.

%: 0개 이상(알수없음)
_: 1개
__: 2개
_%: 1개 이상의 문자(알수 없음)

  • % 사용 예제
    • %e: e로 끝나는 문자열 (e, ee, eevee, apple, pineapple)
    • e%: e로 시작하는 문자열(e, ee, eevee, eric)
    • %e%: e가 포함된 문자열(e, ee, eevee, apple, pineapple, aespa)
    • _e: e로 끝나고 e앞에 1개의 문자가 있는 문자열 (ae, ee, ce)
    • %_e: e로 끝나고 e앞에 1개 이상의 문자가 있는 문자열 (ee, eevee, apple, pineaplle)
    • %_e_%: e를 포함하고 e 앞 뒤로 각각 1개 이상의 문자가 있는 문자열 (eevee, aespa)

LIKE 문법

SELECT [컬럼 이름]
FROM [테이블 이름]
WHERE [컬럼 이름] LIKE [검색할 문자열];

예제

NULL 데이터 다루기

NULL

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

IS NULL

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

특징

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

쿼리 문법


SELECT [컬럼 이름]
FROM [테이블 이름]
WHERE [컬럼 이름] IS NULL;

ISNULL 사용 예제

profile
신입사원...

0개의 댓글