[금융권 SQL 실무] 3. WHERE 절
WHERE 절 이란?
SQL에서 WHERE 절은 데이터베이스 테이블에서 특정 조건에 부합하는 행(row)을 선택하는 데 사용되는 절(clause)입니다. WHERE 절은 SELECT, UPDATE, DELETE 등의 SQL 문장에서 모두 사용됩니다.
예를 들어
"SELECT * FROM customers WHERE city = 'New York'"
라는 SQL 문장은 "customers" 테이블에서 "city" 열의 값이 "New York"인 모든 행을 선택합니다. WHERE 절은 비교 연산자(=, <, >, <=, >=, <>)와 논리 연산자(AND, OR, NOT)를 사용하여 조건을 지정할 수 있습니다.
WHERE 절을 사용하면 데이터베이스에서 필요한 데이터만 검색하여 불필요한 데이터를 가져오지 않아 성능이 향상됩니다. 또한, WHERE 절을 사용하여 데이터를 필터링할 수 있으므로 데이터의 정확성과 일관성을 유지할 수 있습니다.
WHERE 절 사용함수
SQL에서 WHERE 절에는 여러 가지 함수를 사용할 수 있습니다.
1. 비교 연산자(Comparison operators)
=, <>, <, >, <=, >=를 사용하여 조건을 비교합니다.
예) SELECT * FROM customers WHERE age > 30;
2. 논리 연산자(Logical operators)
AND, OR, NOT을 사용하여 조건을 결합합니다.
예) SELECT * FROM customers WHERE city = 'New York' AND age > 30;
3. LIKE 연산자
패턴 매칭을 위해 사용됩니다. %는 임의의 문자열을 의미하며, _는 하나의 문자를 의미합니다.
예) SELECT * FROM customers WHERE name LIKE 'J%';
4. IN 연산자
특정 값의 집합에 대한 조건을 검색합니다.
예) SELECT * FROM customers WHERE city IN ('New York', 'London');
5. BETWEEN 연산자
지정된 범위 내의 값을 검색합니다.
예) SELECT * FROM customers WHERE age BETWEEN 30 AND 40;
6. 함수(Function)
SQL 함수를 사용하여 조건을 검색할 수 있습니다. 가장 일반적인 함수 중 일부는 다음과 같습니다.
- UPPER() / LOWER(): 대문자 / 소문자로 변환합니다.
- COUNT(): 지정된 조건을 만족하는 행 수를 계산합니다.
- MAX() / MIN(): 지정된 조건을 만족하는 열의 최댓값 / 최솟값을 반환합니다.
- AVG() / SUM(): 지정된 조건을 만족하는 열의 평균 / 합계를 반환합니다.
예) SELECT COUNT(*) FROM customers WHERE age > 30;
위의 예시는 customers 테이블에서 나이가 30보다 큰 고객의 수를 계산합니다.
응용방법
SQL에서 WHERE 절은 데이터베이스에서 필요한 데이터만 선택하는 데 사용됩니다. 이를 응용하여 다양한 방법으로 데이터를 추출할 수 있습니다.
1. 비교 연산자(Comparison operators)를 사용하여 특정 값보다 큰 값 또는 작은 값 찾기
예) SELECT * FROM employees WHERE salary > 50000;
위의 예에서는 employees 테이블에서 salary 열이 50000보다 큰 모든 직원을 선택합니다.
2. 논리 연산자(Logical operators)를 사용하여 여러 조건 결합하기
예) SELECT * FROM employees WHERE salary > 50000 AND department = 'Sales';
위의 예에서는 employees 테이블에서 salary 열이 50000보다 크고 department 열이 'Sales'인 모든 직원을 선택합니다.
3. LIKE 연산자를 사용하여 패턴 매칭하기
예) SELECT * FROM employees WHERE first_name LIKE 'J%';
위의 예에서는 employees 테이블에서 first_name 열이 'J'로 시작하는 모든 직원을 선택합니다.
4. IN 연산자를 사용하여 특정 값 집합 찾기
예) SELECT * FROM employees WHERE department IN ('Sales', 'Marketing');
위의 예에서는 employees 테이블에서 department 열이 'Sales' 또는 'Marketing'인 모든 직원을 선택합니다.
5. BETWEEN 연산자를 사용하여 범위 내 값 찾기
예) SELECT * FROM employees WHERE salary BETWEEN 40000 AND 60000;
위의 예에서는 employees 테이블에서 salary 열이 40000과 60000 사이인 모든 직원을 선택합니다.
위와 같이 WHERE 절을 응용하여 SQL에서 필요한 데이터만 선택할 수 있으며, 이를 통해 데이터를 정확하고 빠르게 추출할 수 있습니다.
사용 시 주의사항
1. WHERE 절은 대소문자를 구분하지 않습니다. 하지만 대부분의 SQL 개발자들은 SQL 예약어와 열 및 테이블 이름을 구별하기 위해 예약어를 대문자로 작성하고 열 및 테이블 이름을 소문자로 작성합니다.
2. WHERE 절에서 문자열을 비교할 때 따옴표를 사용해야 합니다. 따옴표를 사용하지 않으면 SQL 엔진은 해당 문자열을 열 이름으로 인식할 수 있습니다.
3. WHERE 절에서는 비교 연산자와 논리 연산자를 적절하게 사용해야 합니다. 여러 조건을 결합하는 경우 괄호를 사용하여 조건을 그룹화할 수 있습니다.
4. WHERE 절에서는 NULL 값을 비교할 때 특별한 주의가 필요합니다. NULL 값을 비교할 때는 IS NULL 또는 IS NOT NULL을 사용해야 합니다.
5. WHERE 절에서는 데이터 유형을 고려하여 값을 비교해야 합니다. 예를 들어, 문자열과 숫자 값을 비교할 때는 데이터 유형을 일치시켜야 합니다.
6. WHERE 절에서는 불필요한 비교를 피해야 합니다. 쿼리 성능을 개선하기 위해 WHERE 절에서는 최소한의 조건만을 비교하도록 노력해야 합니다.
이러한 주의사항을 지켜 SQL의 WHERE 절을 올바르게 사용하면 원하는 결과를 얻을 수 있습니다.
'데이터분석 > SQL' 카테고리의 다른 글
[금융권 SQL 실무] JOIN 함수 (22) | 2023.05.09 |
---|---|
[금융권 SQL 실무] 금융권 SQL 활용 (13) | 2023.05.08 |
[금융권 SQL 실무] Case When 절 (13) | 2023.05.02 |
[금융권 SQL 실무] 서브쿼리(Subquery) (8) | 2023.04.26 |
[금융권 SQL 실무] with 절 (13) | 2023.04.25 |
댓글