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 '우___';