SQL And
SQL AND: 여러 조건을 결합하여 데이터 필터링
SQL AND 연산자는 WHERE 절에서 여러 조건을 결합할 때 사용되며, 모든 조건이 참일 때만 데이터를 반환합니다. 여러 조건을 만족하는 데이터를 필터링할 수 있어 더 구체적인 검색이 가능해집니다.
1. 기본 SQL AND 문법
AND
연산자는 WHERE 절 내에서 사용되며, 다음과 같은 구조를 가집니다:
SELECT 열이름1, 열이름2, ...
FROM 테이블이름
WHERE 조건1 AND 조건2 AND 조건3 ...;
- 조건1, 조건2, ...: 모든 조건이 참(참조 데이터가 조건을 모두 만족)일 때만 데이터를 반환합니다.
2. SQL AND 예제
2.1 예제 1: 두 가지 조건 사용
다음은 employees
테이블에서 부서가 Sales
이고 급여가 5,000 이상인 직원을 조회하는 예제입니다.
SELECT name, department, salary
FROM employees
WHERE department = 'Sales' AND salary >= 5000;
이 쿼리는 부서가 Sales이면서 동시에 급여가 5,000 이상인 직원들만 반환합니다.
결과 예시:
name | department | salary |
---|---|---|
John Doe | Sales | 6000 |
Jane Roe | Sales | 7000 |
2.2 예제 2: 세 가지 조건 사용
다음은 employees
테이블에서 부서가 HR
이고, 급여가 5,000 이상이며, 고용일이 2020년 이후인 직원을 조회하는 예제입니다.
SELECT name, department, salary, hire_date
FROM employees
WHERE department = 'HR' AND salary >= 5000 AND hire_date > '2020-01-01';
이 쿼리는 부서가 HR, 급여가 5,000 이상, 고용일이 2020년 1월 1일 이후인 직원들을 반환합니다.
결과 예시:
name | department | salary | hire_date |
---|---|---|---|
Alice | HR | 6000 | 2021-03-15 |
3. SQL AND와 OR의 차이
- AND: 모든 조건이 참일 때만 데이터를 반환합니다.
- OR: 하나라도 참인 조건이 있으면 데이터를 반환합니다.
예제:
다음은 OR
과 AND
의 차이를 보여줍니다:
SELECT name, department, salary
FROM employees
WHERE department = 'Sales' OR salary >= 5000;
위 쿼리는 부서가 Sales
이거나 급여가 5,000 이상인 직원을 반환합니다.
4. SQL AND와 ORDER BY 결합
AND
연산자를 사용하여 데이터를 필터링한 후, ORDER BY를 결합하여 데이터를 정렬할 수 있습니다.
예제:
SELECT name, department, salary
FROM employees
WHERE department = 'Sales' AND salary >= 5000
ORDER BY salary DESC;
이 쿼리는 Sales
부서에서 급여가 5,000 이상인 직원을 필터링한 후, 급여가 높은 순으로 정렬하여 반환합니다.
5. SQL AND와 함께 사용할 수 있는 연산자
AND
는 다양한 비교 연산자와 함께 사용하여 더욱 정교한 필터링을 할 수 있습니다.
=
: 값이 같음!=
또는<>
: 값이 같지 않음>
: 값이 큼<
: 값이 작음>=
: 값이 크거나 같음<=
: 값이 작거나 같음
예제:
SELECT name, salary
FROM employees
WHERE department = 'Sales' AND salary >= 4000 AND salary <= 7000;
이 쿼리는 Sales
부서에서 급여가 4,000 이상 7,000 이하인 직원을 조회합니다.
6. SQL AND와 BETWEEN 결합
AND
연산자는 BETWEEN과 함께 사용되어 값이 특정 범위 내에 있는지를 확인할 때 사용됩니다.
예제:
SELECT name, salary
FROM employees
WHERE department = 'Sales' AND salary BETWEEN 5000 AND 7000;
이 쿼리는 Sales
부서에서 급여가 5,000에서 7,000 사이인 직원들을 반환합니다.
7. SQL AND와 IN 결합
AND
연산자는 IN 연산자와 결합하여 특정 값 집합에 속하는 데이터를 필터링할 때 사용할 수 있습니다.
예제:
SELECT name, department, salary
FROM employees
WHERE department IN ('Sales', 'HR') AND salary > 5000;
이 쿼리는 Sales
또는 HR
부서에 속하면서 급여가 5,000 이상인 직원을 반환합니다.
8. 실전 예제
예제 1: 고용일과 급여 조건을 결합하여 직원 조회
SELECT name, salary, hire_date
FROM employees
WHERE hire_date > '2020-01-01' AND salary >= 6000;
이 쿼리는 2020년 이후에 고용되었으며 급여가 6,000 이상인 직원을 조회합니다.
예제 2: 여러 조건 결합하여 특정 부서의 직원 조회
SELECT name, department, salary, hire_date
FROM employees
WHERE department = 'Engineering' AND salary >= 7000 AND hire_date > '2019-01-01';
이 쿼리는 Engineering 부서에 속하며, 급여가 7,000 이상이고, 2019년 이후에 고용된 직원을 조회합니다.
요약
SQL AND 연산자는 여러 조건을 결합하여 데이터를 필터링할 때 매우 유용합니다. 모든 조건이 참일 때만 데이터를 반환하므로, 특정 기준에 맞는 데이터를 더욱 정확하게 추출할 수 있습니다. AND는 다른 연산자 및 절과 결합하여 더욱 복잡한 필터링 작업을 수행할 수 있으며, 이를 통해 더 정밀한 데이터 분석이 가능합니다.