안녕하세요! 이 블로그 포스트에서는 DB2 SQL을 사용하면서 알아두면 유용한 팁들을 소개하려고 합니다. 이 팁들은 제가 주니어 개발자로 일하면서 배운 것들로, 여러분의 SQL 작성 실력 향상에 도움이 될 거예요.
1. 효과적인 WHERE 절 사용하기
WHERE 절을 잘 사용하면 쿼리 성능을 크게 향상시킬 수 있습니다.
-- 좋은 예
SELECT * FROM employees
WHERE department = 'IT' AND hire_date > '2022-01-01';
-- 피해야 할 예
SELECT * FROM employees
WHERE YEAR(hire_date) > 2022 AND UPPER(department) = 'IT';
함수를 컬럼에 적용하면 인덱스를 사용할 수 없게 되어 성능이 저하될 수 있어요. 가능한 한 컬럼을 직접 비교하세요.
2. JOIN 사용하기
테이블 간의 관계를 표현할 때는 JOIN을 사용하세요. 특히 INNER JOIN과 LEFT JOIN의 차이를 이해하는 것이 중요합니다.
-- INNER JOIN 예제
SELECT e.employee_name, d.department_name
FROM employees e
INNER JOIN departments d ON e.department_id = d.department_id;
-- LEFT JOIN 예제
SELECT c.customer_name, o.order_date
FROM customers c
LEFT JOIN orders o ON c.customer_id = o.customer_id;
INNER JOIN은 양쪽 테이블에 모두 존재하는 데이터만 가져오고, LEFT JOIN은 왼쪽 테이블의 모든 데이터를 가져옵니다.
3. GROUP BY와 집계 함수 활용하기
데이터를 요약할 때는 GROUP BY와 집계 함수를 사용하세요.
SELECT department, COUNT(*) as employee_count, AVG(salary) as avg_salary
FROM employees
GROUP BY department
HAVING COUNT(*) > 5
ORDER BY avg_salary DESC;
이 쿼리는 각 부서별 직원 수와 평균 급여를 계산하고, 직원이 5명 이상인 부서만 보여줍니다.
4. 서브쿼리 사용하기
복잡한 조건을 표현할 때는 서브쿼리를 활용하세요.
SELECT employee_name, salary
FROM employees
WHERE salary > (SELECT AVG(salary) FROM employees);
이 쿼리는 평균 급여보다 높은 급여를 받는 직원들을 찾습니다.
5. 인덱스 사용하기
자주 검색하는 컬럼에는 인덱스를 만들어 주세요. 하지만 너무 많은 인덱스는 오히려 성능을 저하시킬 수 있으니 주의가 필요해요.
CREATE INDEX idx_employee_department ON employees(department);
결론
이런 기본적인 팁들을 잘 활용하면 더 효율적인 SQL을 작성할 수 있습니다. SQL은 실제로 사용해보면서 익히는 것이 가장 좋아요. 다양한 상황에서 쿼리를 작성해보고, 그 결과를 분석해보세요.
또한, DB2의 공식 문서를 참고하는 것도 좋은 방법입니다. 새로운 기능이나 최적화 기법들이 계속해서 추가되고 있으니, 주기적으로 확인해 보세요.
'SQL' 카테고리의 다른 글
데이터베이스 트리거: 강력한 도구, 신중한 사용 (0) | 2024.07.04 |
---|---|
[DB2] SQL: 구분자로 나뉜 문자열에서 첫 부분 추출하기 (0) | 2024.07.04 |
[DB2] SQL에서 시간 데이터 조작: 정확성과 일관성 유지하기 (0) | 2024.07.03 |
[SQL] 컬럼명 추천 모음 (1) | 2023.11.02 |