English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

SQL AND & OR 연산자

이 튜토리얼에서는 WHERE 절에서 AND & OR 연산자를 사용하여 여러 조건을 기준으로 기록을 필터링하는 방법을 배웁니다.

조건에 따라 기록을 선택합니다

지난 장에서는 WHERE 절을 사용하여 테이블에서 기록을 가져오는 방법을 배웠습니다. 하지만 여러 가지 조건을 기준으로 기록을 필터링해야 할 때가 있습니다. 예를 들어, 나이가 큰30세이고 국가/미국 지역의 사용자를 선택하고 가격이 낮은100달러이고 평점이 큰4제품, 등이 있습니다.

AND 연산자

AND 연산자는 두 조건을 결합하는 논리 연산자로, 두 조건의 결과가 모두 TRUE일 때만 TRUE를 반환합니다. 일반적으로SELECTUPDATEDELETE문의WHERE절에서 AND 연산자를 사용하여 결과 집합을 필터링하는 조건을 형성합니다.

SELECT column1_name, column2_name, columnN_name FROM table_name WHERE condition1 AND 조건2;

몇 가지 예제를 통해 실제 작동 방식을 보여드리겠습니다.

가지고 있는 데이터베이스에서 이름을 가진 테이블이 있습니다.employees의 테이블이며, 다음과 같은 기록을 포함하고 있습니다:

+--------+--------------+------------+--------+---------+
| emp_id | emp_name     | hire_date  | salary | dept_id |
+--------+--------------+------------+--------+---------+
|      1 | Ethan Hunt | 2001-05-01 |   5000 |       4 |
|      2 | Tony Montana | 2002-07-15 |   6500 |       1 |
|      3 | Sarah Connor | 2005-10-18 |   8000 |       5 |
|      4 | Rick Deckard | 2007-01-03 |   7200 |       3 |
|      5 | Martin Blank | 2008-06-24 |   5600 | NULL |
+--------+--------------+------------+--------+---------+

WHERE 절과 AND 연산자를 함께 사용하여 절을 사용합니다

아래 SQL 문은 다음에서 가져옵니다:employees테이블에서 급여(salary)가 큰7000 그리고dept_idравен5의 직원들.

SELECT * FROM employees
WHERE salary > 7000 AND dept_id = 5;

실행된 후, 다음과 같은 출력을 얻을 수 있습니다:

+--------+--------------+------------+--------+---------+
| emp_id | emp_name     | hire_date  | salary | dept_id |
+--------+--------------+------------+--------+---------+
|      3 | Sarah Connor | 2005-10-18 |   8000 |       5 |
+--------+--------------+------------+--------+---------+

OR 연산자

또한, OR 연산자는 두 조건을 결합하는 논리 연산자지만, 두 조건 중 하나라도 TRUE일 때 TRUE를 반환합니다.

아래 SQL 문은 다음에서 가져옵니다:employees테이블에서 급여(salary)가 큰7000 또는dept_idравен5모든 고용원.

SELECT * FROM employees
WHERE salary > 7000 OR dept_id = 5;

이번에 얻을 수 있는 출력은 다음과 같습니다:

+--------+--------------+------------+--------+---------+
| emp_id | emp_name     | hire_date  | salary | dept_id |
+--------+--------------+------------+--------+---------+
|      3 | Sarah Connor | 2005-10-18 |   8000 |       5 |
|      4 | Rick Deckard | 2007-01-03 |   7200 |       3 |
+--------+--------------+------------+--------+---------+

AND와 OR 연산자를 동시에 사용하여

또한 AND와 OR를 조합하여 복잡한 조건 표현식을 생성할 수 있습니다.

다음 SQL 문장은 급여가5000, иdept_idравен1또는5모든 고용원.

SELECT * FROM employees
WHERE salary > 5000 AND (dept_id = 1 OR dept_id = 5);

위의 쿼리를 실행한 후, 다음과 같은 출력을 얻게 됩니다:

+--------+--------------+------------+--------+---------+
| emp_id | emp_name     | hire_date  | salary | dept_id |
+--------+--------------+------------+--------+---------+
|      2 | Tony Montana | 2002-07-15 |   6500 |       1 |
|      3 | Sarah Connor | 2005-10-18 |   8000 |       5 |
+--------+--------------+------------+--------+---------+