MySQL - OR 연산자

안녕하세요, 데이터베이스 열심히 공부하시는 분들께! 오늘은 MySQL의 매우 유용한 논리 연산자 중 하나인 OR 연산자에 대해 알아보겠습니다. 이 튜토리얼이 끝나면 OR 연산자를 마치 프로처럼 사용할 수 있을 것입니다. 새로운 데이터베이스 쿼리의 가능성을 열어보세요. 그럼 시작해보겠습니다!

MySQL - OR Operator

MySQL OR 연산자

MySQL의 OR 연산자는 클럽의 친절한 보디가드처럼 "손님 명단에 있는 사람이나 비밀 비밀번호를 아는 사람은 들어올 수 있다"고 말하는 것과 같습니다. 이 연산자는 SQL 문에서 여러 조건을 결합할 수 있게 해주며, 이 중 하나라도 참이면 전체 결과는 참이 됩니다.

기본 문법은 다음과 같습니다:

condition1 OR condition2 OR condition3 ...

각 조건은 참이나 거짓을 반환하는 유효한 MySQL 표현식이어야 합니다.

WHERE 절과 OR 연산자

OR 연산자는 SELECT 문의 WHERE 절에서 가장 흔히 사용됩니다. 간단한 예제를 보겠습니다:

가정해 봅시다. employees라는 테이블이 있고, id, name, department, salary 열이 있습니다. IT 부서에 있는 직원이나 연봉이 $50,000 이상인 직원을 찾고 싶습니다.

SELECT * FROM employees
WHERE department = 'IT' OR salary > 50000;

이 쿼리는 IT 부서에 있는 직원이나 연봉이 $50,000 이상인 직원, 또는 두 조건 모두 만족하는 모든 행을 반환합니다.

이를 구분해보면:

  1. SELECT *: 이는 테이블의 모든 열을 선택합니다.
  2. FROM employees: 이는 우리가 쿼리를 수행할 테이블을 지정합니다.
  3. WHERE department = 'IT' OR salary > 50000: 이는 OR 연산자를 사용한 조건입니다.

IT 부서에 있지만 $50,000 미만의 연봉을 받는 직원은 포함됩니다. 마찬가지로 IT 부서가 아니지만 $50,000 이상의 연봉을 받는 직원도 포함됩니다. 물론, IT 부서에 있고 $50,000 이상의 연봉을 받는 직원도 포함됩니다!

여러 개의 OR 연산자

이제 우리는 검색을 확장해보겠습니다. IT 부서에 있는 직원이나 HR 부서에 있는 직원이나 $50,000 이상의 연봉을 받는 직원을 찾고 싶습니다. 여러 개의 OR 연산자를 사용할 수 있습니다:

SELECT * FROM employees
WHERE department = 'IT' OR department = 'HR' OR salary > 50000;

이 쿼리는 이 세 가지 조건 중 하나를 만족하는 모든 직원을 반환합니다. 이는 "이 세 가지 기준 중 적어도 하나에 맞는 모든 사람을 주세요"와 같은 말입니다.

기억하세요, 더 많은 OR 조건을 추가할수록 결과는 더 포괄적이 됩니다. 데이터의 바다에서 더 넓은网吧를 던지는 것과 같습니다!

UPDATE 문에서 OR 연산자

OR 연산자는 SELECT 문뿐만 아니라 UPDATE 문에서도 사용할 수 있습니다. 예를 들어, IT 부서에 있는 직원이나 $30,000 이하의 연봉을 받는 직원에게 보너스를 지급하고 싶습니다:

UPDATE employees
SET bonus = 1000
WHERE department = 'IT' OR salary < 30000;

이 쿼리는 IT 부서에 있는 직원이나 $30,000 이하의 연봉을 받는 직원, 그리고 IT 부서에서 $30,000 이하의 연봉을 받는 직원에게 $1000의 보너스를 지급합니다.

DELETE 문에서 OR 연산자

OR 연산자는 DELETE 문에서도 사용할 수 있습니다. 예를 들어, 'Temp' 부서에 있는 직원이나 6개월 이상 활동이 없는 직원을 제거하고 싶습니다:

DELETE FROM employees
WHERE department = 'Temp' OR last_active_date < DATE_SUB(CURDATE(), INTERVAL 6 MONTH);

이 쿼리는 'Temp' 부서에 있는 직원이나 마지막 활동 날짜가 현재 날짜에서 6개월 전보다 이전인 직원을 제거합니다. DELETE 문은 주의가 필요합니다. 항상 조건을 두 번 확인한 후 실행하십시오!

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

MySQL 명령줄 도구와 같은 MySQL 클라이언트 프로그램을 사용할 때 OR 연산자를 약간 다른 방식으로 사용할 수 있습니다. 예를 들어:

mysql> SELECT * FROM employees WHERE department = 'IT' OR salary > 50000\G

끝에 \G는 MySQL 특정 명령으로, 결과를 수직으로 표시하여 넓은 테이블을 더 쉽게 읽을 수 있게 합니다.

다음 표는 우리가 사용한 OR 연산자의 다양한 방법을 요약합니다:

연산 예제
SELECT SELECT * FROM employees WHERE department = 'IT' OR salary > 50000;
UPDATE UPDATE employees SET bonus = 1000 WHERE department = 'IT' OR salary < 30000;
DELETE DELETE FROM employees WHERE department = 'Temp' OR last_active_date < DATE_SUB(CURDATE(), INTERVAL 6 MONTH);

OR 연산자는 SQL 쿼리에서 친절한 "either/or"입니다. 이는 데이터 조작에서 유연성을 제공하여 더 넓은 데이터를 검색하거나 조작할 수 있게 합니다.

마무리하며, 제 교육 경험 중 하나를 공유하고 싶습니다. 제가 가르치는 학생 중 한 명이 OR 연산자를 이해하는 데 어려움을 겪았습니다. 그는 OR가 더 적은 결과를 줄 것이라고 생각하며 AND와 혼동했습니다. 그래서 저는 그에게 이렇게 설명했습니다: "OR은 파티의 주인처럼 생각해보세요. OR 조건을 더 많이 추가할수록 더 많은 사람이 파티에 초대됩니다!" 그의 얼굴이 이해의 빛을 발하고, 그 이후로는 OR과 AND를 혼동하지 않았습니다.

OR 연산자를 다양한 상황에서 연습하면, 곧 데이터 마법사처럼 사용할 수 있을 것입니다! 즐겁게 쿼리 작성하시고, 데이터가 항상 잘 정리되고 쉽게 접근할 수 있기를 바랍니다!

Credits: Image by storyset