[SQL] 문법) WHRER 조건절 + 연산자 사용 (범위 지정, 특정 데이터 조회하기) - BETWEEN, IN, LIKE, AND, OR , NOT

YS_Study.log·2022년 12월 13일
0
post-thumbnail
post-custom-banner

sql에서 해당 데이터를 조회할때 범위를 지정하거나, 특정 값만 걸러서 추출하기 위해서 많이 사용하는 대표적인 연산자 BETWEEN(범위),IN(특정값), LIKE(비슷한값), AND, OR , NOT(부정)에 대해 알아보고 비교해본다.


AND

AND 논리연산자는 여러 조건들 중, 모든 조건에 알맞는 행 데이터만 조회한다. (한 조건이라도 통과 못하면 조회하지 않는다.)

데이터 비교연산자 AND 비교연산자 데이터

  • select mem_name, height, mem_number from member
    where mem_number = 6 and height >= 163;
    멤버의 수가 6명이고 키가 163이상인 그룹이름, 키를 조회한다.
  • select mem_name, mem_number from member
    where mem_number >= 2 and mem_number <= 7;
    멤버 수 가 2명 이상, 7명 이하인 그룹이름과 멤버 수를 조회한다.

BETWEEN ~ AND (범위 조회)

지정하는 범위 내에 해당하는 행 데이터 출력한다. >=, <= 비교연산자를 사용한 것 과 같아서, 데이터가 숫자 타입이고, 해당 데이터의 범위를 지정하여 조회할 경우 BETWEEN 을 사용하는게 훨씬 간단하다.

BETWEEN 조회시작할 범위 값 and 마지막 조회할 범위 값

  • select mem_name, mem_number from member
    where mem_number between 6 and 7;
    멤버 수 가 6명 이상, 7명 이하인 그룹이름과 멤버 수를 조회한다.

OR

or 논리연산자는 조건들 중에서, 한 조건에라도 해당되는 행 데이터들을 모두 조회한다.

데이터 비교연산자 OR 비교연산자 데이터

  • select mem_name, mem_number, height from member
    where mem_number = 6 or height >= 163;
    멤버의 수가 6명이고 키가 163이상인 그룹이름과키를 조회한다.
  • select mem_name, addr from member where addr = '경기' or addr = '경남'; -> IN연산자 사용 추천
    경기, 경남에 사는 멤버를 조회한다.

IN (특정 조회)

범위사이를 조회하는 BETWEEN 과 달리, IN은 특정 값, 데이터를 지정하여 조회한다.

숫자가 아닌 문자데이터를 조회하는 경우는 BETWEEN이 아닌 in을 사용한다.

IN (특정데이터, 특정데이터, ......)

  • select mem_name, addr from member where addr in ('경기','경남');
    경기, 경남에 사는 멤버를 조회한다.

NOT 부정연산자

NOT 다른 연산자들 해당데이터

  • select mem_name from member where NOT mem_name = '블랙핑크';
    그룹이름이 블랙핑크인 행 데이터만 제외하고 조회한다.
  • select mem_name, addr from member where addr NOT in ('경기','경남');
    주소가 경기, 경남이 아닌 행 데이터만 조회한다.

LIKE + %

특정 문자를 포함한 행 데이터를 조회한다. 해당 문자를 갖고 있는 행 데이터를 조회한다. (몇글자도 상관없다)

LIKE 특정문자%
LIKE %특정문자

맨 앞의 글자 조회

  • select * from member where mem_name like '에%';

맨 뒤의 글자 조회

  • select * from member where mem_name like '%크';

LIKE + __(언더바)

언더바의 개수만큼 글자 수 를 지정하여 특정문자조회하는 방법이다.

LIKE '(글자 수 만큼)언더바+특정문자'
LIKE '특정문자+언더바(글자 수 만큼)'

  • select from member where mem_name like '___녀';
    select
    from member where mem_name like '우___';
profile
느리지만 조금씩 공부하는 중 입니다. 현재 1년 6개월차 신입입니다 ><!
post-custom-banner

0개의 댓글