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