데이타베이스/SQL

SQL 함수 활용 가이드

shimdh 2025. 1. 26. 11:29
728x90

집계 함수: 데이터를 요약하는 도구

집계 함수는 데이터베이스에서 여러 개의 데이터를 하나로 요약하는 데 사용되며, 특히 데이터 분석과 보고서 작성에 있어 매우 유용합니다. 이 함수들은 데이터를 그룹화하거나 통계를 계산할 때 필수적인 도구입니다. 대량의 데이터를 효율적으로 처리하여 중요한 정보를 도출하는 데 있어 핵심적인 역할을 합니다. 집계 함수는 데이터를 더 높은 수준에서 분석하고 요약 정보를 제공하는 데 있어서 필수적인 역할을 합니다.

주요 집계 함수와 예제

  1. COUNT(): 조건을 만족하는 행의 개수를 반환합니다. 데이터베이스에서 특정 조건에 맞는 레코드 수를 계산하거나 전체 행의 개수를 파악할 때 유용합니다.

    SELECT COUNT(*) FROM employees;
    -- 전체 직원 수를 반환합니다.

    COUNT 함수는 특히 NULL 값을 제외하고 데이터를 세거나, 조건에 따라 데이터를 필터링할 때도 사용할 수 있습니다.

  2. SUM(): 열 값의 합계를 계산합니다. 주로 금액, 수량 등 숫자 데이터를 합산할 때 사용됩니다.

    SELECT SUM(salary) FROM employees WHERE department = 'Sales';
    -- 'Sales' 부서의 급여 총합을 계산합니다.

    SUM 함수는 부서별 수익, 월별 판매량 등 비즈니스 데이터를 분석하는 데 매우 유용합니다.

  3. AVG(): 열 값의 평균을 계산합니다. 데이터의 전반적인 경향을 파악할 때 유용합니다.

    SELECT AVG(age) FROM employees;
    -- 직원들의 평균 나이를 반환합니다.

    평균값을 통해 데이터의 중앙 경향을 파악하고, 이상값(outlier)을 탐지하는 데 활용할 수 있습니다.

  4. MIN(): 열에서 가장 작은 값을 반환합니다. 최저 값이나 최소 수치를 확인할 때 사용됩니다.

    SELECT MIN(salary) FROM employees;
    -- 가장 낮은 급여를 반환합니다.

    최소값은 데이터 품질을 평가하거나 특정 기준을 만족하는 데이터를 탐색하는 데 유용합니다.

  5. MAX(): 열에서 가장 큰 값을 반환합니다. 최대값을 확인하거나 가장 높은 수치를 찾아낼 때 유용합니다.

    SELECT MAX(hire_date) FROM employees;
    -- 가장 최근 입사일을 반환합니다.

    MAX 함수는 최고 성과를 보인 데이터나 최근 업데이트된 데이터를 식별할 때 주로 사용됩니다.

GROUP BY와 HAVING 절 활용

집계 함수는 단순 계산뿐 아니라 데이터를 그룹화하여 각 그룹에 대한 통계를 계산하는 데 자주 사용됩니다. 이를 위해 GROUP BYHAVING 절을 활용합니다.

  • GROUP BY: 데이터를 특정 열을 기준으로 그룹화하여 각 그룹에 대해 별도의 집계 결과를 계산합니다.

    SELECT department, COUNT(*) AS employee_count
    FROM employees
    GROUP BY department;
    -- 각 부서별 직원 수를 반환합니다.
  • HAVING: 그룹화된 결과에 추가 조건을 설정하여 필요한 데이터를 필터링할 수 있습니다.

    SELECT department, AVG(salary) AS average_salary
    FROM employees
    GROUP BY department
    HAVING AVG(salary) > 50000;
    -- 평균 급여가 50,000 이상인 부서만 반환합니다.

이처럼 GROUP BYHAVING 절은 데이터를 체계적으로 정리하고, 특정 조건에 따라 분석하는 데 큰 도움을 줍니다. 다양한 데이터를 그룹화하여 요약 정보를 얻고, 필요에 따라 세부적인 조건을 추가해 맞춤형 분석을 수행할 수 있습니다.


문자열 함수: 텍스트 데이터를 다루는 도구

문자열 함수는 데이터베이스에서 텍스트 데이터를 조작하고 분석하는 데 사용됩니다. 이 함수들은 데이터를 변형하거나 필요한 정보를 추출할 수 있도록 도와줍니다. 이를 통해 데이터 정리, 정보 검색 및 시각화 작업이 더욱 간편해집니다. 문자열 함수는 텍스트 기반의 데이터를 다룰 때 없어서는 안 될 도구로, 사용자 입력 데이터를 처리하거나 보고서의 형식을 조정할 때 매우 유용합니다.

주요 문자열 함수와 예제

  1. CONCAT(): 여러 문자열을 하나로 결합합니다. 이름이나 주소 데이터를 합칠 때 유용합니다.

    SELECT CONCAT('안녕하세요, ', '세계!') AS 인사말;
    -- 결과: "안녕하세요, 세계!"

    CONCAT 함수는 여러 열을 결합하여 새로운 필드를 생성하거나, 고유 식별자를 만들 때 활용됩니다.

  2. LENGTH(): 문자열의 길이를 반환합니다. 데이터의 유효성을 검사하거나 입력된 문자의 수를 확인할 때 사용됩니다.

    SELECT LENGTH('Hello World') AS 문자길이;
    -- 결과: 11 (공백 포함)

    텍스트 데이터의 길이를 확인하여 데이터 품질을 평가하거나 제한된 길이 내에서 입력 값을 관리할 수 있습니다.

  3. SUBSTRING(): 문자열의 일부를 추출합니다. 예를 들어 특정 부분만 필요한 경우 유용합니다.

    SELECT SUBSTRING('Database', 1, 4) AS 부분문자열;
    -- 결과: "Data"

    SUBSTRING 함수는 특정 패턴을 추출하거나 텍스트 데이터를 분석하는 데 자주 사용됩니다.

  4. UPPER() 및 LOWER(): 문자열을 대문자 또는 소문자로 변환합니다. 데이터의 표준화를 위해 자주 사용됩니다.

    SELECT UPPER('hello world') AS 대문자변환;
    -- 결과: "HELLO WORLD"

    텍스트 데이터의 일관성을 유지하거나 검색 조건을 단순화하기 위해 활용됩니다.

  5. TRIM(): 문자열 양쪽 끝의 공백을 제거합니다. 데이터 정리 작업에 필수적입니다.

    SELECT TRIM('   Hello World!   ') AS 다듬기결과;
    -- 결과: "Hello World!"

    TRIM 함수는 사용자 입력 데이터를 정리하거나 불필요한 공백을 제거하는 데 사용됩니다.

실전 활용 예제

여러 문자열 함수를 조합하여 데이터를 변형해 보겠습니다:

SELECT
    CONCAT(FIRST_NAME, ' ', LAST_NAME) AS 전체이름,
    UPPER(TRIM(FIRST_NAME)) AS 대문자이름,
    LENGTH(LAST_NAME) AS 성길이
FROM Employees;
-- 각 직원의 전체 이름, 대문자 이름, 성의 길이를 반환합니다.

이 예제는 문자열 함수를 활용하여 다양한 데이터 포맷을 만들어내는 방법을 보여줍니다. 이를 통해 텍스트 데이터를 더욱 효과적으로 분석하고 시각화할 수 있습니다.


날짜 함수: 시간 데이터를 관리하는 도구

날짜 함수는 시간 데이터를 처리하고 분석하는 데 필수적인 도구입니다. 비즈니스 데이터에서 날짜 및 시간을 효과적으로 관리하는 것은 데이터의 품질과 분석의 정확성을 높이는 데 중요한 역할을 합니다. 날짜 함수는 시간 기반 이벤트를 관리하거나, 일정 데이터를 분석하는 데 없어서는 안 될 도구입니다.

주요 날짜 함수와 예제

  1. CURRENT_DATE와 CURRENT_TIMESTAMP

    • CURRENT_DATE: 현재 날짜를 반환합니다.
    • CURRENT_TIMESTAMP: 현재 날짜와 시간을 반환합니다.
      ```sql
      SELECT CURRENT_DATE, CURRENT_TIMESTAMP;
      • 결과: 오늘의 날짜와 현재 시간을 반환합니다.

    현재 시간을 기준으로 데이터를 분석하거나 시간 기반 이벤트를 트리거하는 데 사용됩니다.

  2. DATE_FORMAT(): 날짜를 지정된 형식으로 변환합니다. 예를 들어, 보고서에 필요한 날짜 형식을 출력할 때 유용합니다.

    SELECT DATE_FORMAT(NOW(), '%Y-%m-%d') AS formatted_date;
    -- 결과: "YYYY-MM-DD" 형식으로 반환됩니다.

    데이터 시각화나 보고서를 생성할 때 사용됩니다.

  3. DATEDIFF(): 두 날짜 간의 차이를 계산합니다. 프로젝트 기간이나 이벤트 간의 간격을 계산할 때 유용합니다.

    SELECT DATEDIFF('2023-10-01', '2023-09-01') AS days_difference;
    -- 결과: 30 (일수 차이)

    DATEDIFF 함수는 일정 관리 및 데이터 분석에서 주로 활용됩니다.

  4. DATE_ADD() 및 DATE_SUB(): 날짜에 특정 기간을 더하거나 뺍니다. 일정 계산에 자주 사용됩니다.

    SELECT DATE_ADD(CURRENT_DATE, INTERVAL 1 MONTH) AS 다음달,
           DATE_SUB(CURRENT_DATE, INTERVAL 7 DAY) AS 지난주;
    -- 결과: 오늘로부터 한 달 후와 일주일 전의 날짜를 반환합니다.

    이 함수들은 미래 계획을 세우거나 과거 데이터를 분석하는 데 유용합니다.

실전 활용 예제

다음은 직원 데이터에서 날짜 함수를 활용하는 예제입니다:

SELECT name,
       DATEDIFF(CURRENT_DATE, hire_date) AS days_since_hired
FROM employees
WHERE hire_date IS NOT NULL;
-- 각 직원이 입사한 이후 경과된 일을 계산합니다.

이와 같은 날짜 함수는 비즈니스 프로세스 관리, 예약 시스템 및 로그 데이터 분석에서 필수적인 도구로 사용됩니다.


결론

SQL의 다양한 함수들은 데이터를 더욱 효율적이고 체계적으로 처리할 수 있도록 돕습니다. 집계 함수는 데이터를 요약하고, 문자열 함수는 텍스트 데이터를 가공하며, 날짜 함수는 시간 데이터를 분석하는 데 강력한 도구입니다. 이 세 가지 함수는 데이터베이스 관리와 분석에서 없어서는 안 될 중요한 기능을 제공합니다. 적절히 활용한다면 복잡한 데이터 문제를 해결하고, 비즈니스 의사 결정을 위한 유의미한 인사이트를 도출할 수 있습니다. 다양한 예제를 직접 실습하며 SQL의 강력한 기능을 익혀보세요. SQL 함수의 활용을 극대화하면 데이터베이스의 가치를 높이고, 더 나은 비즈니스 성과를 이끌어낼 수 있습니다.

728x90