본문 바로가기
IT 프로그래밍 관련/MySQL

MySQL between , not between

by 지나는행인 2021. 3. 17.
728x90

우리는 테이블에서 우리가 원하는 데이터를 가져올 수 있다.

 

예를 들어 이런 테이블이 있다고 하자.

 

* books table

위의 테이블에서 내가 만약 출판년도가 2017년인 책의 정보를 가져오고 싶다면, python과 마찬가지로 부등호를 이용한다.

 

select *
from books
where released_year = 2017;

 

위와 같은 코드를 적용하면, 출판년도가 2017년인 책의 데이터가 반환된다.

 

입력 가능한 부등호 종류는

 

= 2017   2017과 같다.

> 2017   2017보다 크다.

< 2017   2017보다 작다.

>= 2017  2017보다 크거나 같다 (순서 중요)

<= 2017 2017보다 작거나 같다 (순서 중요)

!= 2017 2017과 같지 않다 (순서 중요)

 

가 있다.     위의 코드에 모두 적용 가능하다.

 

그럼 출판년도가 2004년(포함)  이후 ,  2015년(포함)  이전인 책의 정보는 어떻게 찾을까.

 

and 로 두 경우를 함께 표현한다.

1
2
3
select *
from books
where released_year >= 2004 and released_year <= 2015 ;
cs

위와 같이 and로 2000년 이후 , 2017년 이전을 함께 표현한다.

해당년을 포함한다고 예를 들었으니 >= , <= 를 사용하였다.

 

이렇게 써도 되지만, 좀 더 간편한 SQL에서 사용할 수 있는 

 

between 이라는 것이 있다.

 

between 은 무엇과 무엇 사이라는 개념이다.

 

위의 코드를 바꿔보면

 

1
2
3
select *
from books
where released_year between 2004 and 2015 ;
cs

으로 바꿀 수 있다.  두 가지 방법의 실행 화면은 같다. 

 

 

* 실행화면

처음의 테이블에서 출판년도가 조건에 맞는 것만 출력 되는것을 볼 수 있다.

 

여기서 주의 할 점은 between A and B 는 기본적으로 A와 B의 사이를 나타내면서 A와 B의 값을 포함한다.

 

부등호로 >=,  <=  이것과 같은 뜻이다.

 

between 인 not과 같이 사용 할 수 있다.

 

1
2
3
select*
from books
where released_year not between 2004 and 2015 ;
cs

위와 같은 코드에 not 이 들어갔다.

 

not 은 between 앞에 써야 한다.

 

not이 들어가면서 반대의 개념인, 2004부터 2015 사이  ( 2004, 2015를 포함한) 가 아닌 데이터를 찾는 코드이다.

 

not은 between 말고도 쓰이는 곳이 많으니 꼭 참고한다.

 

 

'IT 프로그래밍 관련 > MySQL' 카테고리의 다른 글

MySQL case end 조건식  (0) 2021.03.17
MySQL에서의 in 과 not in  (0) 2021.03.17
MySQL 시간관련데이터 처리  (0) 2021.03.16
MySQL 문자열에 포함된 단어 검색 like  (0) 2021.03.16
MySQL limit 와 offset  (0) 2021.03.16

댓글