MariaDB 암호화 및 집계 함수

유방현·2024년 10월 28일

MariaDB 암호화 및 집계 함수

1. 암호화 함수 (Encryption Functions)

암호화 유형 비교

구분가역적 암호화비가역적 암호화
복호화 가능 여부가능불가능
주요 알고리즘AES, RSASHA-256, MD5
사용 목적기밀 데이터 보호데이터 무결성 확인
보안 특징키 관리 중요솔트 추가로 보안 강화

주요 암호화 함수

  1. PASSWORD()
  • 기능: 문자열을 MariaDB의 사용자 비밀번호 해시 형식으로 변환.
  • 사용 목적: MariaDB의 사용자 비밀번호를 안전하게 저장하여 인증할 때 사용.
  • 보안성: PASSWORD() 함수의 해시 값은 MariaDB에 의해 고유한 형식으로 변환되지만, 비밀번호 암호화용으로는 권장되지 않습니다.
-- 사용자 비밀번호 해시 생성
SELECT PASSWORD('mypassword');
  1. MD5()
  • 주요 용도: 파일 무결성 확인, 간단한 데이터 검증.
  • 실무 사례: 데이터를 전송하거나 파일을 다운로드할 때 파일 무결성을 확인하기 위해 MD5() 해시를 비교.
-- 데이터 무결성 확인용 해시 생성
SELECT MD5('Important Data') AS hash_value;

2. 집계 함수 (Aggregate Functions)

기본 집계 함수

함수설명예시
COUNT()행 개수 계산SELECT COUNT(*) FROM emp;
SUM()합계 계산SELECT SUM(salary) FROM emp;
AVG()평균 계산SELECT AVG(salary) FROM emp;
MIN()최소값 반환SELECT MIN(salary) FROM emp;
MAX()최대값 반환SELECT MAX(salary) FROM emp;

고급 집계 함수

함수설명예시
GROUP_CONCAT()그룹 값 연결SELECT GROUP_CONCAT(ename) FROM emp GROUP BY dept;
VARIANCE()분산 계산SELECT VARIANCE(salary) FROM emp;
STDDEV()표준편차 계산SELECT STDDEV(salary) FROM emp;

NULL 처리를 포함한 집계 예제

-- 기본 평균 계산
SELECT AVG(comm) FROM emp;

-- NULL을 0으로 처리한 평균 계산
SELECT AVG(IFNULL(comm, 0)) FROM emp;

-- 여러 방식의 평균 계산 비교
SELECT 
    AVG(comm) as 기본평균,
    SUM(comm)/COUNT(comm) as 널제외평균,
    SUM(comm)/COUNT(*) as 전체행기준평균
FROM emp;

3. 실무 활용 팁

암호화 함수 사용 시 주의사항

  1. PASSWORD() 함수는 사용자 인증용으로만 사용
  2. 비밀번호 저장 시 솔트(salt) 추가 권장
  3. MD5는 빠른 검증용으로만 사용, 보안용도로는 지양

집계 함수 활용 팁

  1. NULL 처리

    • COUNT(*)와 COUNT(column)의 차이 이해
    • IFNULL과 함께 사용하여 정확한 통계 산출
  2. 그룹화 활용

    SELECT 
        department,
        COUNT(*) as 직원수,
        AVG(salary) as 평균급여,
        GROUP_CONCAT(name) as 직원목록
    FROM employees
    GROUP BY department;
  3. 조건부 집계

    SELECT
        COUNT(CASE WHEN salary > 5000 THEN 1 END) as 고액연봉자,
        COUNT(CASE WHEN salary <= 5000 THEN 1 END) as 일반연봉자
    FROM employees;

0개의 댓글