코딩 스쿨 SQL

언어선택 : HTMLCSSJAVAJAVASCRIPTMYSQLSQL PHP

SQL Or

SQL OR: 조건 중 하나라도 참인 데이터를 필터링

SQL OR 연산자는 WHERE 절에서 여러 조건을 결합할 때 사용되며, 조건 중 하나라도 참일 경우 데이터를 반환합니다. OR 연산자는 여러 조건을 결합할 수 있어 좀 더 유연한 데이터 필터링을 제공합니다.

1. 기본 SQL OR 문법

OR 연산자는 WHERE 절에서 다음과 같은 구조로 사용됩니다:

SELECT 열이름1, 열이름2, ...
FROM 테이블이름
WHERE 조건1 OR 조건2 OR 조건3 ...;

  • 조건1, 조건2, ...: 조건 중 하나라도 참이면 데이터를 반환합니다.

2. SQL OR 예제

2.1 예제 1: 두 조건을 사용하는 OR

다음은 employees 테이블에서 부서가 Sales이거나 급여가 5,000 이상인 직원을 조회하는 예제입니다.

SELECT name, department, salary
FROM employees
WHERE department = 'Sales' OR salary >= 5000;

이 쿼리는 부서가 Sales이거나, 급여가 5,000 이상인 모든 직원을 반환합니다.

결과 예시:

name department salary
John Doe Sales 4000
Jane Roe HR 6000
Alice Sales 5000

2.2 예제 2: 세 가지 조건을 사용하는 OR

다음은 employees 테이블에서 부서가 Sales이거나, 급여가 5,000 이상이거나, 고용일이 2020년 이후인 직원을 조회하는 예제입니다.

SELECT name, department, salary, hire_date
FROM employees
WHERE department = 'Sales' OR salary >= 5000 OR hire_date > '2020-01-01';

이 쿼리는 부서가 Sales, 급여가 5,000 이상, 또는 고용일이 2020년 이후인 모든 직원을 반환합니다.

결과 예시:

name department salary hire_date
John Doe Sales 4000 2019-04-10
Jane Roe HR 6000 2020-05-12
Alice Sales 5000 2021-03-15

3. SQL OR와 AND의 차이

  • OR: 조건 중 하나라도 참이면 데이터를 반환합니다.
  • AND: 모든 조건이 참일 때만 데이터를 반환합니다.

예제:

SELECT name, department, salary
FROM employees
WHERE department = 'Sales' OR salary >= 5000;

위 쿼리는 Sales 부서이거나 급여가 5,000 이상인 직원을 반환합니다.

SELECT name, department, salary
FROM employees
WHERE department = 'Sales' AND salary >= 5000;

이 쿼리는 부서가 Sales이면서 급여가 5,000 이상인 직원들만 반환합니다.

4. OR와 AND 함께 사용하기

ORAND 연산자를 함께 사용하여 보다 복잡한 조건을 구성할 수 있습니다. 이때 괄호를 사용하여 조건의 우선순위를 명확하게 할 수 있습니다.

예제:

SELECT name, department, salary
FROM employees
WHERE (department = 'Sales' OR department = 'HR') AND salary >= 5000;

이 쿼리는 부서가 Sales 또는 HR이면서 동시에 급여가 5,000 이상인 직원을 조회합니다.

결과 예시:

name department salary
Jane Roe HR 6000
Alice Sales 5000

5. OR와 함께 사용할 수 있는 연산자

OR 연산자는 여러 비교 연산자와 함께 사용할 수 있습니다. 다양한 조건을 결합하여 유연하게 데이터를 필터링할 수 있습니다.

  • =: 값이 같음
  • != 또는 <>: 값이 같지 않음
  • >: 값이 큼
  • <: 값이 작음
  • >=: 값이 크거나 같음
  • <=: 값이 작거나 같음

예제:

SELECT name, salary
FROM employees
WHERE salary > 6000 OR salary < 3000;

이 쿼리는 급여가 6,000 이상이거나 3,000 이하인 직원을 반환합니다.

6. OR와 BETWEEN, IN 결합

OR 연산자는 BETWEEN이나 IN 연산자와 함께 사용하여 값을 비교하거나 특정 값 집합에 속하는 데이터를 필터링할 수 있습니다.

6.1 OR와 BETWEEN 결합

SELECT name, salary
FROM employees
WHERE salary BETWEEN 3000 AND 4000 OR salary BETWEEN 6000 AND 7000;

이 쿼리는 급여가 3,000에서 4,000 사이이거나 6,000에서 7,000 사이인 직원을 반환합니다.

6.2 OR와 IN 결합

SELECT name, department
FROM employees
WHERE department IN ('Sales', 'HR') OR salary > 5000;

이 쿼리는 부서가 Sales 또는 HR이거나 급여가 5,000 이상인 직원을 반환합니다.

7. 실전 예제

예제 1: 부서와 고용일 조건을 결합하여 직원 조회

SELECT name, department, hire_date
FROM employees
WHERE department = 'Sales' OR hire_date > '2021-01-01';

이 쿼리는 부서가 Sales이거나 2021년 이후에 고용된 직원을 조회합니다.

예제 2: 급여와 부서를 기준으로 직원 조회

SELECT name, department, salary
FROM employees
WHERE salary > 6000 OR department = 'HR';

이 쿼리는 급여가 6,000 이상이거나 부서가 HR인 직원을 조회합니다.

예제 3: 여러 조건을 사용하여 특정 부서 직원 조회

SELECT name, department, salary, hire_date
FROM employees
WHERE (department = 'Engineering' OR department = 'HR') AND hire_date > '2020-01-01';

이 쿼리는 Engineering 또는 HR 부서에 속하면서 2020년 이후에 고용된 직원을 조회합니다.

요약

SQL OR 연산자는 여러 조건 중 하나라도 참일 때 데이터를 반환하는 데 사용되며, 다양한 조건을 유연하게 결합하여 데이터를 필터링할 수 있습니다. OR 연산자는 AND와 결합하여 더욱 복잡한 조건을 만들 수 있으며, 데이터를 보다 유연하게 조회할 수 있게 도와줍니다. BETWEEN, IN, LIKE와 같은 다른 연산자와도 잘 결합하여 사용할 수 있습니다.


copyright ⓒ 스타트코딩 all rights reserved.
이메일 : startcodingim@gamil.com