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

💡가져올 데이터의 조건 지정 WHERE

  • WHERE 조건식
  • 조건식이 True (참)이 되는 로우만 선택한다.
    쿼리 문법
SELECT [컬럼이름]
FROM [테이블 이름]
WHERE 조건식;

mypokemon 데이터베이스 테이블

💡연산자의 종류

  • 비교 연산자
    =, >, < 등

  • 논리 연산자
    NOT, AND, OR 등

  • 기타 주요 연산자
    BETWEEN, IN 등

✏️비교 연산자

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

요청1 : 피카츄의 number를 찾아주세요

SELECT number 
FROM mypokemon
WHERE name = 'pikachu';

요청2 : 속도가 50보다 큰 포켓몬의 이름을 찾아주세요.

SELECT name
FROM mypokemon
WHERE speed > 50;

요청3 : 전기 타입이 아닌 포켓몬의 이름을 찾아주세요

SELECT name
FROM mypokemon
WHERE type != 'electric';

✏️논리 연산자

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

요청1 :속도가 100 이하인 전기 타입 포켓몬의 이름을 찾아주세요.

SELECT name
FROM mypokemon
WHERE speed <= 100 AND type = 'electric';

A = 속도가 100 이하
B = 전기 타입

요청2 : 벌레 타입이거나 노말 타입인 포켓몬의 이름을 찾아주세요.

SELECT name
FROM mypokemon
WHERE type = 'bug' OR type = 'normal';

요청3 : 속도가 100 이하이고 벌레 타입이 아닌 포켓몬의 이름을 찾아주세요.

SELECT name
FROM mypokemon
WHERE speed <= 100 AND NOT(type='bug');

✏️NOT();
NOT(type = 'bug');
type != 'bug'
동일하다.

✏️ 기타 주요 연산자

BETWEEN

  • 특정 범위 내의 데이터를 선택할 때 사용하는 연산자
  • [컬럼 이름] BETWEEN A AND B
  • 해당 컬럼 값이 A 와 B 사이에 포함되는 값을 가진 로우만 선택합니다. (A <= 컬럼 값 <= B)
  • [컬럼 이름] BETWEEN A AND B 쿼리는 A <= [컬럼 이름] <= B 와 동일합니다
    쿼리 문법
SELECT[컬럼 이름]
FROM[테이블 이름]
WHERE[컬럼 이름]BETWEEN [조건1] AND [조건2]

예제

: 속도가 50과 100 사이인 포켓몬의 이름을 찾아주세요

SELECT name
FROM mypokemon
WHERE speed BETWEEN 50 AND 100;

✏️ speed >= 50 AND speed <= 100 와 동일하다

IN

  • 목록 내 포함되는 데이터를 선택할 때 사용하는 연산자
  • [컬럼 이름] IN (A, B, C)
  • [컬럼 이름] IN (A,B) 쿼리는 [컬럼 이름] = A OR [컬럼 이름] = B 와 동일하다.
  • 목록에 넣을 값이 여러 개 일때, OR 연산자보다 표현 및 이해가 쉽다.
SELECT [컬럼 이름]
FROM [테이블 이름]
WHERE [컬럼 이름] IN ([조건1],[조건2]);

예제

: : 벌레 타입이거나 노말 타입인 포켓몬의 이름을 찾아주세요.

SELECT name
FROM mypokemon
WHERE type IN ('bug', 'normal');

💡문자형 데이터 다루기

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개의 문자가 있는 문자열
ee, ae, ce

%_e = 'e' 로 끝나고 'e' 앞에 1개 이상의 문자가 있는 문자열
ee, eevee, apple, pineapple

%_e_% = 'e' 가 포함하고 'e'앞 뒤로 1개 이상의 문자가 있는 문자열
eevee, aespa

쿼리 문법

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

예제

이름이 ‘chu’로 끝나는 포켓몬의 이름을 찾아주세요.

SELECT name
FROM mypokemon
WHERE name LIKE '%chu';

이름에 ‘a’가 포함되는 포켓몬의 이름을 찾아주세요.

SELECT name
FROM pokemon
WHERE name LIKE '%a%';

💡NULL 데이터 다루기

  • 데이터 값이 존재하지 않는다는 표현
  • 0이나 공백이 아닌 알 수 없는 값을 의미
INSERT INTO mypokemon (name, type)
VALUES ('kkobugi','');

SELECT *
FROM mypokemon;

IS NULL

  • 데이터가 NULL 인지 아닌지를 확인하는 연산자
  • [컬럼 이름] IS NULL
  • NULL 이 있는 로우만 선택
  • NULL 이 아닌 데이터를 검색하고 싶다면 IS NOT NULL
  • [컬럼 이름] = NULL 또는 [컬럼 이름] != NULL 같은 표현은 사용하지 않는다.

쿼리 문법

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

예제

number가 null인 포켓몬의 이름을 찾아주세요

SELECT name
FROM mypokemon
WHERE number IS NULL;

number = NULL 은 사용 불가합니다

type이 null이 아닌 포켓몬을 찾아주세요.

SELECT name
FROM mypokemon
WHERE type IS NOT NULL;
profile
https://blog.naver.com/jaewoo2_25

0개의 댓글