[Day 10 | DB] MariaDB 내장 함수: 단일/집계 함수 및 암호화

y♡ding·2024년 10월 25일
0

데브코스 TIL

목록 보기
64/163

단일행 및 집계 함수 (Aggregate Functions)

단일행 함수는 각각의 행에 대해 독립적으로 동작하여 N개의 행이 들어가면 N개의 행이 반환됩니다.
집계 함수는 여러 행을 집계하여 요약된 하나의 결과를 반환하며, 이를 통해 데이터를 통계적으로 요약할 수 있습니다.


1. 단일행 함수 (Single Row Functions)

함수설명예시
LEAST()여러 값 중 최소값 반환 (파라미터 2개 이상)SELECT LEAST(100, 200, 50);
GREATEST()여러 값 중 최대값 반환 (파라미터 2개 이상)SELECT GREATEST(100, 200, 50);
  • 최솟값 구할 때 입력값이 1개이면 min(), 입력하는 파라미터가 2개 이상이면 least()
  • 최대값 구할 때 입력값이 1개이면 max(), 입력하는 파라미터가 2개 이상이면 greatest()

2. 집계 함수 (Aggregate Functions)

집계 함수는 여러 행을 요약하여 한 개의 결과를 반환합니다.

함수설명예시
COUNT()행의 개수를 셉니다. NULL은 제외할 수 있음SELECT COUNT(empno) FROM emp;
COUNT(*)NULL 포함한 전체 행 개수를 셉니다SELECT COUNT(*) FROM emp;
SUM()열 값의 총합을 계산SELECT SUM(sal) FROM emp;
AVG()열 값의 평균을 계산SELECT AVG(sal) FROM emp;
MIN()지정된 열의 최소 값을 반환합니다.SELECT MIN(sal) FROM emp;
MAX()지정된 열의 최대 값을 반환합니다.SELECT MAX(sal) FROM emp;
VARIANCE()열 값의 분산을 계산SELECT VARIANCE(sal) FROM emp;
STDDEV()열 값의 표준편차를 계산SELECT STDDEV(sal) FROM emp;
GROUP_CONCAT()특정 그룹 내의 값들을 연결하여 반환SELECT GROUP_CONCAT(ename) FROM emp;
NULL 처리 예제
-- `comm` 컬럼의 평균과 합계
SELECT AVG(comm), SUM(comm) / COUNT(comm), SUM(comm) / COUNT(*) FROM emp;

-- NULL 값이 있을 경우 0으로 대체한 후 평균 계산
SELECT AVG(IFNULL(comm, 0)), SUM(comm) / COUNT(IFNULL(comm, 0)), SUM(comm) / COUNT(*) FROM emp;

예제 설명

  • AVG(comm): NULL 값을 제외한 평균을 구합니다.
  • SUM(comm) / COUNT(comm): NULL을 제외한 평균.
  • SUM(comm) / COUNT(*): 모든 행을 기준으로 NULL 포함한 평균.

암호화 및 해시 함수 (Encryption, Hashing and Compression Functions)

1. 가역적 암호화 (Reversible Encryption)

  • 정의: 암호화된 데이터를 다시 원래의 형태로 복원할 수 있는 암호화 방식입니다.
  • 목적: 데이터의 기밀성을 보호하면서도, 필요할 때 복호화하여 원본 데이터를 확인할 수 있도록 합니다.

2. 비가역적 암호화 (Irreversible Encryption)

  • 정의: 암호화된 데이터를 원래의 형태로 복원할 수 없는 방식입니다. 보통 해싱(Hashing)이라 불리며, 해시 함수로 데이터를 고정된 길이의 해시 값으로 변환합니다.
  • 목적: 데이터의 무결성 확인과 비밀번호 보호를 위해 사용되며, 해시 값을 통해 원본 데이터가 변경되었는지 여부만 확인할 수 있습니다.
구분가역적 암호화비가역적 암호화 (해시)
복호화 가능 여부복호화 가능복호화 불가능
주요 알고리즘AES, RSASHA-256, MD5
사용 목적기밀 데이터 보호, 통신 보호데이터 무결성 확인, 비밀번호 보호
보안 요소복호화 키 관리 중요솔트 추가로 보안 강화 가능

주요 함수

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

-- MD5 해시 함수 예제
SELECT MD5('Important Data') AS hash_value;

0개의 댓글

관련 채용 정보