[SQL] GROUP BY (ROLLUP,CUBE) 이해하기
·
기타
GROUP BY란? GROUP BY는 SQL에서 데이터를 특정 컬럼 기준으로 그룹화하는 명령어임. 이를테면, 여러 직원들의 입사 연도 데이터가 있다 치면, 이 데이터를 연도별로 그룹화해서 각 연도에 몇 명의 직원이 입사했는지 알고 싶을 때 GROUP BY를 활용할 수 있음. SELECT 입사연도, COUNT(*) AS 입사인원 FROM 직원 GROUP BY 입사연도;결과예시 입사연도 직원수 2020 15 2021 20 2022 25 이 쿼리는 각 입사 연도별로 몇 명의 직원이 있었는지를 계산해줌. GROUP BY ROLLUP이란? GROUP BY ROLLUP은 GROUP BY의 확장판임. 이 명령어를 사용하면, 지정한 컬럼들에 대해 더 상세한 계층적인 집계 데이터를 만들어낼 수 있음. 예를 들어서, 연도..
[SQL] 서브쿼리 (스칼라, 인라인 뷰, 중첩 서브쿼리)
·
기타
SQL 서브쿼리: 유형과 사용법 SQL 서브쿼리는 다른 쿼리 내에 포함되어 있는 쿼리로, 데이터 조작과 분석을 위해 사용된다. 서브쿼리는 메인 쿼리의 조건 생성, 데이터 임시 조직화, 결과에 대한 추가 계산이나 필터링 등에 활용될 수 있다. 서브쿼리란? 메인 쿼리 내에 포함되는 쿼리. 데이터 처리와 분석을 위한 핵심 도구. 서브쿼리 유형 스칼라 서브쿼리 사용 위치: SELECT, WHERE, HAVING 절. 목적: 단일 값을 반환해 비교 연산이나 결과 셋 컬럼 값으로 사용. 예시:모든 직원의 이름과 회사에서 가장 높은 급여를 보여줌. SELECT 이름, (SELECT MAX(급여) FROM 직원) AS 최대급여 FROM 직원; 인라인 뷰 사용 위치: FROM 절. 목적: 임시 테이블 생성해 복잡한 쿼리..
[SQL] 정규화와 반정규화
·
기타
정규화와 반정규화 데이터베이스 정규화란 데이터 중복을 줄이고, 업데이트 시 오류를 방지하기 위해 데이터를 구조화하는 과정이다. 반면, 반정규화는 정규화된 구조를 일부러 중복되게 만들어 성능 향상이나 쿼리의 단순화를 목적 여기서 기본적인 정규형과 반정규화에 대해 간단한 예시와 함께 정리해보자. 제 1정규형 (1NF) 정의: 모든 필드의 값이 원자값이어야 하고, 각 필드에서 여러 값이나 리스트를 허용하지 않음. 예시: 학생들의 취미를 기록한다고 할 때, 한 학생이 여러 취미를 가지고 있다면 이를 하나의 필드에 나열하지 않고, 각 취미를 별도의 행으로 나누어 기록한다. 1NF 전: 학생 A - 읽기, 그리기 1NF 후: 학생 A - 읽기 학생 A - 그리기 제 2정규형 (2NF) 정의: 1NF를 만족하고, 모..
[SQL] CASE 문
·
기타
CASE 문이란? 'CASE'문은 조건에 따라 다른 값을 반환할 수 있게 해준다. 즉 "이 조건이 참이면 어떠한 값을 반환하고 아니면 다른 값을 반환해줘"라고 데이터베이스에 지시하는 것 예를들어 'user'테이블에 있는 'rate'값이 따라 사용자에게 '골드','실버','브론즈' 등급을 매기고싶다. SELECT id , rate , CASE WHEN rate > 1500 THEN '골드' WHEN rate > 1250 THEN '실버' ELSE '브론즈' END as rank FROM user; #CASE #WHEN 조건1 TEHN 결과1 #WHEN 조건2 TEHN 결과2 #E..