English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
이 튜토리얼에서는 WHERE 절에서 AND & OR 연산자를 사용하여 여러 조건을 기준으로 기록을 필터링하는 방법을 배웁니다.
지난 장에서는 WHERE 절을 사용하여 테이블에서 기록을 가져오는 방법을 배웠습니다. 하지만 여러 가지 조건을 기준으로 기록을 필터링해야 할 때가 있습니다. 예를 들어, 나이가 큰30세이고 국가/미국 지역의 사용자를 선택하고 가격이 낮은100달러이고 평점이 큰4제품, 등이 있습니다.
AND 연산자는 두 조건을 결합하는 논리 연산자로, 두 조건의 결과가 모두 TRUE일 때만 TRUE를 반환합니다. 일반적으로SELECT,UPDATE,DELETE문의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 | +--------+--------------+------------+--------+---------+
아래 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 연산자는 두 조건을 결합하는 논리 연산자지만, 두 조건 중 하나라도 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를 조합하여 복잡한 조건 표현식을 생성할 수 있습니다.
다음 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 | +--------+--------------+------------+--------+---------+