MySQL - NOT 연산자

안녕하세요, 미래의 데이터베이스 마법사 여러분! 오늘 우리는 MySQL의 NOT 연산자의 마법적인 세계로 뛰어들어 보겠습니다. 초보자라면 걱정하지 마세요 - 이 모험을 함께 안내해 드릴게요. 끝나면 NOT 연산자를 마치 프로처럼 다룰 수 있을 거예요!

MySQL - NOT Operator

MySQL NOT 연산자

NOT 연산자는 MySQL 세계의 반叛자입니다. 부정을 다루는 것이 목적이며, 조건을 뒤집고 "아니요"라고 말합니다. 상상해 보세요. 당신이 교사(like me!)이고, 숙제를 제출하지 않은 모든 학생을 찾고 싶을 때, NOT이 유용해지는 순간입니다!

simple한 예제로 시작해 보겠습니다:

SELECT * FROM students WHERE NOT grade = 'A';

이 쿼리는 A를 받지 않은 모든 학생을 가져옵니다. "A 학생을 제외한 모든 사람 보여줘"라고 말하는 것과 같습니다. 꽤 쉬운가요?

다른 예제도 하나 더 보겠습니다:

SELECT * FROM products WHERE NOT price > 100;

이 쿼리는 100달러 이상 비싼 제품을 제외한 모든 제품을 가져옵니다. "100달러 이하인 제품 보여줘"라고 말하는 것과 같은 방식입니다.

NOT 연산자와 IN 연산자 결합

이제 NOT을 IN 연산자와 결합해 보겠습니다. IN 연산자는 VIP 명단 같은 것이고, NOT IN은 "명단에 없는 모든 사람"이라고 말합니다.

SELECT * FROM fruits WHERE name NOT IN ('apple', 'banana', 'orange');

이 쿼리는 사과, 바나나, 오렌지를 제외한 모든 과일을 보여줍니다. 과일 바스켓에서 이 세 가지 과일을 뽑아내고 나머지를 고르는 것과 같습니다.

NOT 연산자와 IS NULL 연산자 결합

데이터베이스의 NULL 값은幽霊처럼 - 존재하지만 정말로는 없습니다. NOT IS NULL 연산자는 우리에게 non-ghost 값을 찾는 데 도움을 줍니다.

SELECT * FROM customers WHERE phone_number IS NOT NULL;

이 쿼리는 전화번호를 제공한 모든 고객을 찾습니다. "마르코!"라고 외치고, "폴로!"로 답하는 사람들만을 기다리는 것과 같습니다.

NOT 연산자와 LIKE 연산자 결합

LIKE 연산자는 패턴 일치를 위한 것이며, NOT LIKE은 그의 mischievous 쌍胞胎입니다. 특정 패턴과 일치하지 않는 것을 찾는 데 완벽합니다.

SELECT * FROM books WHERE title NOT LIKE 'The%';

이 쿼리는 "The"로 시작하지 않는 모든 책의 제목을 찾습니다. 책장을 정리하고 "The"로 시작하는 책들을 한쪽에 두고 나머지를 다른 쪽에 두는 것과 같습니다.

NOT 연산자와 BETWEEN 연산자 결합

BETWEEN은 범위 내의 값을 찾는 데 사용되고, NOT BETWEEN은 반대의 작업을 합니다. "Kids Only" 구역을 설정하고 그 안에 들어갈 수 없는 사람들을 찾는 것과 같습니다.

SELECT * FROM employees WHERE age NOT BETWEEN 25 AND 35;

이 쿼리는 25세 미만이거나 35세 이상인 모든 직원을 찾습니다. 데이터를 분할하는 좋은 방법입니다!

NOT 연산자와 UPDATE 문

NOT 연산자는 SELECT 문뿐만 아니라 UPDATE 문에서도 사용할 수 있습니다! 예제를 보겠습니다:

UPDATE inventory SET in_stock = 0 WHERE NOT product_id IN (101, 102, 103);

이 쿼리는 인벤토리를 업데이트하여 제품 ID가 101, 102, 103인 제품을 제외한 모든 제품을 품절로 설정합니다. 상점을 정리하고 특정 몇 가지 아이템만 남겨둘 때와 같습니다.

NOT 연산자와 DELETE 문

NOT을 DELETE 문에서도 사용할 수 있습니다. 이一个是 조심해야 합니다 - 강력합니다!

DELETE FROM old_records WHERE NOT date_created > '2020-01-01';

이 쿼리는 2020년 이전에 생성된 모든 레코드를 삭제합니다. 큰 청소를 하고 새로운 것만 남겨둘 때와 같습니다.

NOT 연산자를 클라이언트 프로그램에서 사용하기

이제 NOT 연산자를 클라이언트 프로그램에서 어떻게 사용할 수 있는지 보겠습니다. 간단한 Python 예제를 사용해 MySQL 커넥터를 사용하겠습니다:

import mysql.connector

# 데이터베이스에 연결
cnx = mysql.connector.connect(user='your_username', password='your_password',
host='127.0.0.1', database='your_database')
cursor = cnx.cursor()

# NOT을 사용한 쿼리 실행
query = "SELECT * FROM students WHERE NOT grade = 'F'"
cursor.execute(query)

# 결과 가져오고 출력
for (id, name, grade) in cursor:
print(f"Student {id}: {name} - Grade: {grade}")

# 연결 닫기
cursor.close()
cnx.close()

이 스크립트는 MySQL 데이터베이스에 연결하고, F를 받지 않은 모든 학생을 찾는 쿼리를 실행하고 그 정보를 출력합니다. 학생들의 성적 일지를 출력하는 날처럼, 하지만 통과한 학생들만을 위한 것입니다!

이제 여러분은 MySQL NOT 연산자의 맛을 보았습니다. 데이터베이스의 세계에서, 때로는 원하는 것보다 무엇을 원하지 않는지 알아야 하는 것도 중요합니다. NOT 연산자는 이런 상황에서 유용한 동반자입니다.

계속 연습하고, 호기심을 가지고 있으면, 얼마 지나지 않아 NOT 연산자를 마치 프로처럼 다룰 수 있을 거예요! 즐겁게 쿼리 작성하세요!

Credits: Image by storyset