코딩 스쿨 MySQL

언어선택 : HTMLCSSJAVAJAVASCRIPTMYSQLSQL PHP
▶ MySQL References
MySQL Data Types
MySQL Functions

MySQL Functions

MySQL Functions: 함수 종류와 사용법

MySQL은 데이터를 처리하고 변환하는 데 유용한 내장 함수를 다양하게 제공합니다. 함수는 데이터를 쉽게 다루고 분석하기 위한 기본 도구입니다. MySQL에서 자주 사용되는 함수는 크게 문자열 함수, 숫자 함수, 날짜 및 시간 함수, 집계 함수, 제어 흐름 함수로 나뉩니다. 이 글에서는 각 함수의 종류와 사용법을 소개하고 실전 예제를 함께 설명하겠습니다.

1. 문자열 함수 (String Functions)

문자열을 처리할 때 자주 사용되는 함수들입니다.

  • CONCAT(): 문자열을 연결하는 함수.

    SELECT CONCAT('Hello, ', 'World!');  -- 결과: Hello, World!
    
    
  • LENGTH(): 문자열의 길이를 반환합니다.

    SELECT LENGTH('MySQL');  -- 결과: 5
    
    
  • LOWER() / UPPER(): 문자열을 소문자 또는 대문자로 변환합니다.

    SELECT LOWER('MySQL');  -- 결과: mysql
    SELECT UPPER('mysql');  -- 결과: MYSQL
    
    
  • SUBSTRING(): 문자열의 일부분을 추출합니다.

    SELECT SUBSTRING('Hello World', 1, 5);  -- 결과: Hello
    
    
  • TRIM(): 문자열의 앞뒤 공백을 제거합니다.

    SELECT TRIM('   MySQL   ');  -- 결과: MySQL
    
    
  • REPLACE(): 문자열 내의 특정 부분을 다른 문자열로 대체합니다.

    SELECT REPLACE('I love MySQL', 'love', 'like');  -- 결과: I like MySQL
    
    
  • REVERSE(): 문자열을 뒤집습니다.

    SELECT REVERSE('MySQL');  -- 결과: LQSyM
    
    

2. 숫자 함수 (Numeric Functions)

숫자 데이터를 처리하는 데 사용되는 함수들입니다.

  • ABS(): 절대값을 반환합니다.

    SELECT ABS(-10);  -- 결과: 10
    
    
  • CEIL() / FLOOR(): 소수점 이하 값을 올림 또는 내림 처리합니다.

    SELECT CEIL(5.2);  -- 결과: 6
    SELECT FLOOR(5.9);  -- 결과: 5
    
    
  • ROUND(): 소수점을 반올림하여 특정 자리수까지 숫자를 반환합니다.

    SELECT ROUND(5.678, 2);  -- 결과: 5.68
    
    
  • MOD(): 나눗셈의 나머지를 반환합니다.

    SELECT MOD(10, 3);  -- 결과: 1
    
    
  • POW() / SQRT(): 제곱과 제곱근을 구합니다.

    SELECT POW(2, 3);  -- 결과: 8
    SELECT SQRT(16);  -- 결과: 4
    
    

3. 날짜 및 시간 함수 (Date and Time Functions)

날짜 및 시간을 다룰 때 사용하는 함수입니다.

  • NOW(): 현재 날짜와 시간을 반환합니다.

    SELECT NOW();  -- 결과: 2024-10-11 12:45:30 (현재 시각)
    
    
  • CURDATE() / CURTIME(): 현재 날짜와 시간만을 반환합니다.

    SELECT CURDATE();  -- 결과: 2024-10-11
    SELECT CURTIME();  -- 결과: 12:45:30
    
    
  • DATE_ADD() / DATE_SUB(): 날짜에 특정 간격을 더하거나 뺍니다.

    SELECT DATE_ADD('2024-10-11', INTERVAL 7 DAY);  -- 결과: 2024-10-18
    SELECT DATE_SUB('2024-10-11', INTERVAL 1 MONTH);  -- 결과: 2024-09-11
    
    
  • DATEDIFF(): 두 날짜 간의 차이를 일(day) 단위로 반환합니다.

    SELECT DATEDIFF('2024-12-25', '2024-10-11');  -- 결과: 75일
    
    
  • EXTRACT(): 날짜나 시간의 특정 부분(연, 월, 일, 시, 분 등)을 추출합니다.

    SELECT EXTRACT(YEAR FROM '2024-10-11');  -- 결과: 2024
    SELECT EXTRACT(MONTH FROM '2024-10-11');  -- 결과: 10
    
    
  • STR_TO_DATE(): 문자열을 날짜로 변환합니다.

    SELECT STR_TO_DATE('11/10/2024', '%d/%m/%Y');  -- 결과: 2024-10-11
    
    
  • DATE_FORMAT(): 날짜를 지정한 형식으로 변환합니다.

    SELECT DATE_FORMAT(NOW(), '%Y-%m-%d %H:%i:%s');  -- 결과: 2024-10-11 12:45:30
    
    

4. 집계 함수 (Aggregate Functions)

집계 함수는 여러 행의 값을 하나의 값으로 계산할 때 사용됩니다.

  • COUNT(): 특정 컬럼 또는 행의 개수를 반환합니다.

    SELECT COUNT(*) FROM employees;  -- 전체 행의 개수
    SELECT COUNT(salary) FROM employees;  -- salary 값이 있는 행의 개수
    
    
  • SUM(): 특정 컬럼의 합계를 계산합니다.

    SELECT SUM(salary) FROM employees;  -- 직원들의 급여 총합
    
    
  • AVG(): 특정 컬럼의 평균값을 계산합니다.

    SELECT AVG(salary) FROM employees;  -- 직원들의 평균 급여
    
    
  • MAX() / MIN(): 최대값과 최소값을 반환합니다.

    SELECT MAX(salary) FROM employees;  -- 가장 높은 급여
    SELECT MIN(salary) FROM employees;  -- 가장 낮은 급여
    
    

5. 제어 흐름 함수 (Control Flow Functions)

제어 흐름 함수는 조건에 따라 값을 다르게 반환할 수 있습니다.

  • IF(): 조건에 따라 다른 값을 반환하는 함수.

    SELECT IF(salary > 5000, 'High', 'Low') FROM employees;
    
    
  • IFNULL(): 값이 NULL인 경우 대체 값을 반환합니다.

    SELECT IFNULL(bonus, 0) FROM employees;  -- bonus가 NULL이면 0 반환
    
    
  • CASE: 조건문을 사용하는 함수로, 여러 조건을 처리할 수 있습니다.

    SELECT name,
           CASE
             WHEN salary > 5000 THEN 'High'
             WHEN salary BETWEEN 3000 AND 5000 THEN 'Medium'
             ELSE 'Low'
           END AS salary_level
    FROM employees;
    
    

6. 기타 유용한 함수

  • COALESCE(): 여러 값 중 첫 번째로 NULL이 아닌 값을 반환합니다.

    SELECT COALESCE(bonus, salary, 0) FROM employees;  -- bonus가 NULL이면 salary, 둘 다 NULL이면 0 반환
    
    
  • FORMAT(): 숫자를 형식화하여 반환합니다 (주로 소수점 자리수와 천 단위 구분).

    SELECT FORMAT(12345.678, 2);  -- 결과: 12,345.68
    
    

요약

MySQL에는 데이터를 변환하고 처리하는 데 도움이 되는 다양한 함수가 내장되어 있습니다. 이 함수들은 문자열, 숫자, 날짜 및 시간, 집계 및 제어 흐름과 같은 여러 상황에서 유용하게 사용됩니다. 각 함수의 사용법과 기능을 이해하고 실무에 적절하게 활용하면 데이터베이스 작업을 훨씬 더 효율적으로 수행할 수 있습니다.


copyright ⓒ 스타트코딩 all rights reserved.
이메일 : startcodingim@gamil.com