MySQL - NOT EQUAL 연산자
안녕하세요, 데이터베이스 열정가 여러분! 오늘 우리는 MySQL의 흥미로운 세계로 접수하고, 그 중에서도 가장 유용한 연산자 중 하나인 NOT EQUAL 연산자를 탐구해보겠습니다. 여러분의 친절한 이웃 컴퓨터 선생님이자 저는 이 여정을 많은 예제와 설명으로 안내해드리겠습니다. 좋아하는 음료를 손에 쥐고 편안하게 앉아, 이 학습 모험을 함께 시작해보세요!
MySQL NOT EQUAL 연산자
먼저 기본적인 내용부터 설명해보겠습니다. MySQL에서 NOT EQUAL 연산자는 두 가지 값을 비교하고 그들이 다른지 확인하는 데 사용됩니다. 이는 "이 두 가지는 다른가요?"라고 묻는 것과 같습니다. 만약 그들이 다르다면, MySQL은 "네, 그들은 동등하지 않습니다!"라고 답합니다.
MySQL에서 NOT EQUAL 연산자를 표현하는 방법은 세 가지가 있습니다:
연산자 | 설명 |
---|---|
<> | 동등하지 않음 |
!= | 동등하지 않음 |
NOT ... = | 동등하지 않음 |
이제 몇 가지 예제를 보아서 실제로 어떻게 작동하는지 살펴보겠습니다.
SELECT * FROM students WHERE age <> 18;
SELECT * FROM books WHERE price != 9.99;
SELECT * FROM employees WHERE NOT department = 'Sales';
첫 번째 예제에서는 나이가 18이 아닌 모든 학생을 선택합니다. 두 번째 예제는 가격이 $9.99가 아닌 모든 책을 검색합니다. 세 번째 예제는 Sales 부서에 근무하지 않는 모든 직원을 찾습니다.
NOT EQUAL 문자 값 사용
텍스트(또는 프로그래밍에서 우리가 문자열이라고 부르는 것)를 처리할 때 NOT EQUAL 연산자는 매우 유용합니다. 예를 들어, 우리가 과일 테이블이 있고, 애플이 아닌 모든 과일을 찾고 싶다면 어떻게 하겠습니까.
SELECT * FROM fruits WHERE name <> 'apple';
이 쿼리는 애플이 아닌 모든 과일을 반환합니다. 하지만 이는 대소문자를 구분합니다. 만약 대소문자를 무시하고 싶다면 LOWER() 함수를 사용할 수 있습니다:
SELECT * FROM fruits WHERE LOWER(name) <> 'apple';
이제 'Apple', 'APPLE', 또는 'aPpLe' 모두 결과에서 제외됩니다.
NOT EQUAL GROUP BY 절과 함께 사용
NOT EQUAL 연산자는 GROUP BY 절과 함께 사용할 때 강력한 도구가 될 수 있습니다. 예를 들어, 우리가 판매 테이블이 있고, 특정 제품을 제외하고 각 제품의 총 판매금액을 보고 싶다면 어떻게 하겠습니까.
SELECT product, SUM(amount) as total_sales
FROM sales
WHERE product <> 'Widget X'
GROUP BY product;
이 쿼리는 각 제품의 총 판매금액을 계산하지만, 'Widget X'를 결과에서 제외합니다. 이는 "Widget X를 제외한 모든 것의 판매금액을 보여달라"고 하는 것과 같습니다.
NOT EQUAL 여러 조건과 함께 사용
때로는 NOT EQUAL 연산자를 여러 조건과 함께 사용해야 할 때가 있습니다. 예를 들어, 우리가 직원 테이블이 있고, Sales 부서도 아니고 Marketing 부서도 아닌 모든 직원을 찾고 싶다면 어떻게 하겠습니까.
SELECT * FROM employees
WHERE department <> 'Sales'
AND department <> 'Marketing';
이 쿼리는 Sales와 Marketing 부서가 아닌 모든 부서의 직원을 반환합니다. 이는 "빨간 셔츠나 파란 모자를 입은 사람들만 입장하지 못하게 하라"는 클럽의 경비원을 상상하는 것과 같습니다.
조건을 부정하는 데 NOT EQUAL 사용
NOT EQUAL 연산자는 조건을 부정하는 데도 유용합니다. 예를 들어, 우리가 제품 테이블이 있고, 재고가 없지 않은 모든 제품을 찾고 싶다면 어떻게 하겠습니까.
SELECT * FROM products
WHERE NOT (stock = 0);
이는 다음과 동일합니다:
SELECT * FROM products
WHERE stock <> 0;
두 쿼리 모두 재고가 있는 제품을 반환합니다. 이는 "실제로 판매할 수 있는 제품을 보여달라"고 하는 것과 같습니다.
NOT EQUAL 연산자 클라이언트 프로그램 사용
이제 모든 지식을 MySQL 클라이언트 프로그램을 사용하여 실제로 적용해보겠습니다. 예를 들어, 우리가 영화 데이터베이스가 있고, 코미디가 아닌 영화이고 2000년 이후에 출시된 영화를 찾고 싶다면 어떻게 하겠습니까.
먼저 테이블을 생성하고 데이터를 삽입해보겠습니다:
CREATE TABLE movies (
id INT AUTO_INCREMENT PRIMARY KEY,
title VARCHAR(100),
genre VARCHAR(50),
release_year INT
);
INSERT INTO movies (title, genre, release_year) VALUES
('The Matrix', 'Sci-Fi', 1999),
('Shrek', 'Comedy', 2001),
('The Dark Knight', 'Action', 2008),
('Inception', 'Sci-Fi', 2010),
('The Hangover', 'Comedy', 2009);
이제 NOT EQUAL 연산자를 사용하여 원하는 영화를 찾아보겠습니다:
SELECT * FROM movies
WHERE genre <> 'Comedy'
AND release_year > 2000;
이 쿼리는 다음과 같은 결과를 반환합니다:
+----+----------------+--------+--------------+
| id | title | genre | release_year |
+----+----------------+--------+--------------+
| 3 | The Dark Knight| Action | 2008 |
| 4 | Inception | Sci-Fi | 2010 |
+----+----------------+--------+--------------+
이제 우리는 NOT EQUAL 연산자를 성공적으로 사용하여 원하는 것을 찾았습니다.
결론적으로, NOT EQUAL 연산자는 여러분의 MySQL 도구箱에서 강력한 도구입니다. 이를 통해 특정 데이터를 결과에서 제외할 수 있어, 데이터베이스에서 정확히 찾고자 하는 것을 명확히 할 수 있습니다. 기억해 두세요, 데이터베이스 세계에서는 "원하지 않는 것"을 알아야 할 수도 있습니다!
이 예제들을 계속 연습하면, 곧 NOT EQUAL 연산자를 마스터하게 될 것입니다. 행복한 쿼리 작성을 기원합니다, 미래의 데이터베이스 마법사 여러분!
Credits: Image by storyset