| 구분 | 가역적 암호화 | 비가역적 암호화 |
|---|---|---|
| 복호화 가능 여부 | 가능 | 불가능 |
| 주요 알고리즘 | AES, RSA | SHA-256, MD5 |
| 사용 목적 | 기밀 데이터 보호 | 데이터 무결성 확인 |
| 보안 특징 | 키 관리 중요 | 솔트 추가로 보안 강화 |
-- 사용자 비밀번호 해시 생성
SELECT PASSWORD('mypassword');
-- 데이터 무결성 확인용 해시 생성
SELECT MD5('Important Data') AS hash_value;
| 함수 | 설명 | 예시 |
|---|---|---|
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; |
-- 기본 평균 계산
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;
NULL 처리
그룹화 활용
SELECT
department,
COUNT(*) as 직원수,
AVG(salary) as 평균급여,
GROUP_CONCAT(name) as 직원목록
FROM employees
GROUP BY department;
조건부 집계
SELECT
COUNT(CASE WHEN salary > 5000 THEN 1 END) as 고액연봉자,
COUNT(CASE WHEN salary <= 5000 THEN 1 END) as 일반연봉자
FROM employees;