단일행 및 집계 함수 (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 처리 예제
SELECT AVG(comm), SUM(comm) / COUNT(comm), SUM(comm) / COUNT(*) FROM emp;
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, RSA | SHA-256, MD5 |
사용 목적 | 기밀 데이터 보호, 통신 보호 | 데이터 무결성 확인, 비밀번호 보호 |
보안 요소 | 복호화 키 관리 중요 | 솔트 추가로 보안 강화 가능 |
주요 함수
PASSWORD('string')
:
- 기능: 문자열을 MariaDB의 사용자 비밀번호 해시 형식으로 변환.
- 사용 목적: MariaDB의 사용자 비밀번호를 안전하게 저장하여 인증할 때 사용.
- 보안성:
PASSsWORD()
함수의 해시 값은 MariaDB에 의해 고유한 형식으로 변환되지만, 비밀번호 암호화형으로 권장되지 않습니다.
MD5('string')
:
- 주요 용도: 파일 무결성 확인, 간단한 데이터 검증.
- 실무 사례: 데이터를 전송하거나 파일을 다운로드할 때 파일 무결성을 확인하기 위해
MD5()
해시를 비교.
예제 코드
SELECT PASSWORD('my_password');
SELECT MD5('Important Data') AS hash_value;