⚡ 데이터 조회 (SELECT)
가장 빈번하게 사용하는 데이터 조회 및 필터링 패턴
- 기본 조회 및 중복 제거
- SELECT *: 전체 열 조회
- SELECT DISTINCT: 중복된 값 제외 후 유니크한 데이터만 출력
- WHERE 조건 활용
- IN: 여러 값 중 하나라도 일치하는 데이터 필터링
- LIKE: 문자열 패턴 매칭 (예: %@gmail.com)
- BETWEEN: 특정 범위 내의 데이터 추출
- IS NOT NULL: 데이터가 비어있지 않은 행만 선택
- 정렬 및 페이징
- ORDER BY: ASC(오름차순), DESC(내림차순) 정렬
- LIMIT & OFFSET: 대량 데이터 중 필요한 구간만 끊어서 조회 (페이징 필수 기법)
🛠️ 데이터 조작 (DML)
데이터를 삽입, 수정, 삭제하는 명령어 및 주의사항.
- INSERT: 단일 행 또는 여러 행의 데이터를 한 번에 삽입 가능
- UPDATE: 기존 데이터 변경 시 반드시 WHERE 절을 사용하여 대상 지정
- DELETE: 데이터 삭제 시 WHERE 절 누락 주의 (전체 삭제 위험 예방)
📊 집계 및 그룹화 (Aggregate)
데이터의 통계적 수치를 도출하는 방법.
- 주요 함수: COUNT (개수), SUM (합계), AVG (평균), MAX/MIN (최대/최소)
- GROUP BY & HAVING
- 특정 열을 기준으로 데이터를 그룹화하여 집계
- HAVING: 그룹화된 결과에 대한 필터링 조건 (WHERE와 구분 필요)
🔗 조인 (JOIN)
서로 다른 테이블 간의 관계를 활용한 데이터 결합.
- INNER JOIN: 양쪽 테이블에 공통된 값이 존재하는 데이터만 결합
- LEFT JOIN: 왼쪽 테이블의 모든 데이터를 포함하며, 오른쪽 테이블에 일치하는 값이 없으면 NULL 처리
- 다중 JOIN: 3개 이상의 테이블을 체인 형태로 연결하여 복합 정보 추출
💡 유용한 패턴
- CASE 문: SQL 내에서 조건별로 값을 변경하여 출력하는 로직 (조건부 업데이트 등)
- 서브쿼리: 쿼리 안의 쿼리를 통해 동적인 조건 지정 (예: 평균보다 높은 값 찾기)
- COALESCE: NULL 값을 만났을 때 지정한 기본값으로 대체하는 처리
⚠️ 보안 및 성능 최적화
❌ 위험 명령어 주의
- TRUNCATE: 테이블의 모든 데이터를 삭제하며 롤백이 불가능하므로 주의
- DROP: 테이블 구조 자체를 완전히 제거함
- WHERE 절 누락: UPDATE, DELETE 시 WHERE 절이 없으면 전체 데이터가 오염됨
✅ 안전한 실행 프로세스
- SELECT 확인: 변경 전 대상 데이터를 반드시 먼저 조회
- 트랜잭션 활용: START TRANSACTION 후 작업 수행, 문제 발생 시 ROLLBACK
🚀 성능 향상 팁
- 인덱스(Index): 자주 조회되는 열(WHERE 절에 자주 쓰이는 열)에 인덱스 생성하여 속도 개선
- SELECT * 지양: 필요한 열만 명시하여 네트워크 트래픽 및 메모리 낭비 방지
- 대량 조회 제한: 테스트 시에는 항상 LIMIT를 사용하여 부하 방지
📝 빠른 참조 테이블 (Cheat Sheet)
| 구분 | 명령어 | 설명 |
| 조회 | SELECT | 데이터 추출 및 확인 |
| 추가 | INSERT INTO | 새로운 데이터 생성 |
| 수정 | UPDATE SET | 기존 정보 변경 |
| 삭제 | DELETE FROM | 조건부 데이터 삭제 |
| 그룹 | GROUP BY | 데이터 통계 및 그룹화 |
| 필터 | HAVING | 그룹화된 결과의 조건 지정 |
'💡 Tech Note' 카테고리의 다른 글
| 소프트웨어 개발 보안 핵심 가이드 (0) | 2026.02.27 |
|---|---|
| [서버 보안] API 키 관리 전략 및 환경변수 설정 (0) | 2026.02.27 |
| [Git] 실무 핵심 명령어 요약 및 자동 업로드 스크립트(.sh) 공유 (0) | 2026.02.19 |