MySQL - BETWEEN 연산자: 초보자 가이드

안녕하세요, 데이터베이스 열정가 여러분! 오늘 우리는 MySQL의 BETWEEN 연산자에 대해 흥미로운 여정을 떠납니다. 프로그래밍에 새로운 사람이라면 걱정하지 마세요; 저는 친절한 안내자로서 모든 것을 단계별로 설명해드리겠습니다. 그럼 시작해보겠습니다!

MySQL - Between Operator

BETWEEN 연산자는 무엇인가요?

책장을 정리하는 상상해보세요. 2010년에서 2020년 사이에 출판된 책을 찾고 싶습니다. MySQL에서 BETWEEN 연산자가 바로 이런 일을 도와줍니다 - 주어진 범위 내의 값을 선택할 수 있습니다.

기본 문법

SELECT column_name(s)
FROM table_name
WHERE column_name BETWEEN value1 AND value2;

이를 설명해보겠습니다:

  • SELECT: "보고 싶은 것은 무엇인가요?"라고 말하는 것입니다.
  • column_name(s): 보고 싶은 특정 정보입니다.
  • FROM table_name: 정보가 저장된 곳입니다.
  • WHERE: 조건을 설정하는 방법입니다.
  • BETWEEN value1 AND value2: 우리의 범위입니다.

MySQL BETWEEN 연산자의 활용

가정해봅시다. books 테이블이 있어서 id, title, author, publication_year 열이 있습니다. BETWEEN을 어떻게 사용할 수 있을까요?

SELECT title, author, publication_year
FROM books
WHERE publication_year BETWEEN 2010 AND 2020;

이 쿼리는 2010년에서 2020년 사이에 출판된 모든 책을 보여줍니다. "2010년부터 2020년까지 포함된 책을 보여달라"고 요청하는 것과 같습니다.

BETWEEN과 날짜

BETWEEN은 날짜와도 잘 작동합니다. 예를 들어 orders 테이블이 있다고 가정해봅시다:

SELECT order_id, customer_name, order_date
FROM orders
WHERE order_date BETWEEN '2023-01-01' AND '2023-12-31';

이 쿼리는 2023년에 주문된 모든 주문을 보여줍니다. 멋질 것 같죠?

MySQL BETWEEN과 IN 연산자

이제 좀 더 재미있는 것을 시도해보겠습니다. 2010년에서 2020년 사이에 출판된 책 중 특정 작가의 책만 찾고 싶다면 어떻게 할까요? BETWEEN과 IN을 결합하면 됩니다:

SELECT title, author, publication_year
FROM books
WHERE publication_year BETWEEN 2010 AND 2020
AND author IN ('J.K. Rowling', 'George R.R. Martin', 'Stephen King');

이 쿼리는 "2010년에서 2020년 사이에 출판된 책 중 이 특정 작가들이 쓴 책만 보여달라"고 요청하는 것과 같습니다.

MySQL BETWEEN과 UPDATE 문

때로는 데이터를 보는 것이 아니라 변경하고 싶을 때가 있습니다. 예를 들어, $50에서 $100 사이에 가격이 있는 제품에 10% 할인을 주고 싶다면:

UPDATE products
SET price = price * 0.9
WHERE price BETWEEN 50 AND 100;

이 쿼리는 지정된 범위 내의 제품 가격을 업데이트하여 10% 할인을 적용합니다.

BETWEEN 연산자와 DELETE 문

BETWEEN 연산자는 데이터를 제거할 때도 사용할 수 있습니다. 예를 들어, 2023년 첫 분기의 모든 주문을 삭제하고 싶다면:

DELETE FROM orders
WHERE order_date BETWEEN '2023-01-01' AND '2023-03-31';

이 쿼리는 2023년的前3개월에 주문된 모든 주문을 제거합니다. DELETE 문은 신중하게 사용하세요!

MySQL NOT BETWEEN 연산자

때로는 특정 범위 밖의 모든 것을 원할 때가 있습니다. 그때는 NOT BETWEEN이 유용합니다:

SELECT title, author, publication_year
FROM books
WHERE publication_year NOT BETWEEN 2010 AND 2020;

이 쿼리는 2010년 이전이나 2020년 이후에 출판된 모든 책을 보여줍니다.

NOT BETWEEN 연산자와 IN 연산자

NOT BETWEEN과 IN을 결합하면 더 구체적인 쿼리를 작성할 수 있습니다:

SELECT product_name, price
FROM products
WHERE price NOT BETWEEN 50 AND 100
AND category IN ('Electronics', 'Appliances');

이 쿼리는 전자제품이나 가전제품 카테고리에 속하며, $50 미만이나 $100 초과인 제품을 찾습니다.

클라이언트 프로그램에서 BETWEEN 연산자 사용

BETWEEN을 클라이언트 프로그램(예: PHP 스크립트)에서 사용할 때는 다음과 같이 할 수 있습니다:

<?php
$min_price = 50;
$max_price = 100;

$query = "SELECT product_name, price FROM products WHERE price BETWEEN ? AND ?";
$stmt = $conn->prepare($query);
$stmt->bind_param("dd", $min_price, $max_price);
$stmt->execute();
$result = $stmt->get_result();

while ($row = $result->fetch_assoc()) {
echo $row['product_name'] . ": $" . $row['price'] . "<br>";
}
?>

이 PHP 스크립트는 쿼리를 준비하고, 플레이스홀더에 값을 바인딩하고, 쿼리를 실행한 후 결과를 표시합니다.

결론

이제 BETWEEN 연산자의 세계를 여행한 것입니다. 기본적인 선택에서 업데이트와 삭제에 이르기까지, 이 작은 연산자가 얼마나 다재다능한지 보았습니다. 연습이 완벽을 만드는 것을 기억하고, 자신의 쿼리를 실험해보세요.

여기서 다룰 방법의 빠른 참조 표입니다:

방법 설명
BETWEEN 주어진 범위 내의 값을 선택
BETWEEN과 IN 범위와 특정 값을 선택
BETWEEN과 UPDATE 특정 범위 내의 레코드를 업데이트
BETWEEN과 DELETE 특정 범위 내의 레코드를 삭제
NOT BETWEEN 주어진 범위 밖의 값을 선택
NOT BETWEEN과 IN 범위 제외와 특정 값을 선택

Happy querying, and may your databases always be organized and efficient!

Credits: Image by storyset