목록DB/SQL (7)
나의 잡다한 노트 및 메모
CREATE TABLE users ( id SERIAL PRIMARY KEY, username VARCHAR(50) NOT NULL, email VARCHAR(100) NOT NULL, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP);테이블은 다음과 같이 생성되었다고 가정 1. 단일 컬럼 인덱스가장 기본적인 인덱스 생성 방법입니다. 예를 들어, username 컬럼에 인덱스를 생성하여 사용자 이름으로 검색할 때 성능을 향상시킬 수 있습니다. CREATE INDEX idx_users_username ON users (username); 2. 유니크 인덱스만약 email 컬럼의 값이 중복되지 않도록 보장하려면, 유니크 인덱스를 생성할 수 있습니다. CREATE ..
데이터 웨어하우스나 OLAP 시스템에서 fact는 주로 측정 가능한 수치 데이터, 즉 사실 데이터를 의미합니다. 이는 비즈니스 프로세스나 이벤트에서 발생하는 수치적 정보를 담고 있으며, 분석의 중심 대상이 됩니다. 주요 특징수치 데이터:fact 테이블에는 매출, 수량, 비용, 이익 등과 같이 집계 및 계산이 가능한 수치 데이터가 저장됩니다.연관 키:각 fact 레코드는 여러 차원(dimension)과 연결되며, 이 차원에 대한 참조 키(예: 제품 ID, 시간, 지역 등)를 포함하여 데이터를 다양한 관점에서 분석할 수 있도록 합니다.집계 및 분석:사실 데이터는 주로 합계, 평균, 최대/최소값 등의 집계 함수로 분석됩니다. 예를 들어, 특정 기간 동안의 총 매출이나 지역별 평균 매출 등을 계산할 때 사용됩니..
Dimension"은 주로 데이터 웨어하우스나 OLAP(Online Analytical Processing) 시스템에서 사용되는 용어로, 사실(Measure) 데이터를 설명하거나 분류하는 데 사용되는 속성 또는 범주를 의미한다. 주요 개념정의:Dimension은 데이터 분석에서 맥락(context)을 제공하는 설명적 요소입니다. 예를 들어, 판매 데이터의 경우 "제품", "지역", "시간" 등이 각각 하나의 dimension이 될 수 있습니다.역할:데이터 분류: Dimension을 사용하면, 데이터를 다양한 관점에서 집계하고 분석할 수 있습니다. 예를 들어, 제품별, 시간별, 지역별 판매량을 분석할 수 있습니다.슬라이싱 및 다이싱: Dimension을 기준으로 데이터를 필터링(슬라이싱)하거나, 여러 Di..
ROLLUP은 SQL의 GROUP BY 확장 기능 중 하나로, 집계 결과에 대한 계층적(subtotal) 요약 집계를 자동으로 생성할 수 있게 해줍니다. 이를 통해 여러 수준의 집계 결과(부분 합계와 전체 합계)를 한 번의 쿼리로 구할 수 있습니다. ROLLUP은 GROUP BY를 확장하여 여러 수준의 집계(부분 합계, 총합계 등)를 한 번에 계산할 수 있는 기능 1. 기본 개념목적:ROLLUP은 그룹화한 데이터에 대해, 지정한 컬럼들을 기반으로 하위 수준부터 최상위(전체)의 집계 결과를 자동으로 생성합니다.계층적 집계:예를 들어, 부서별, 그리고 부서 내의 직급별 매출 집계를 구하는 경우, ROLLUP을 사용하면 부서별 합계와 전체 합계를 함께 산출할 수 있습니다.2. ROLLUP 구문ROLLUP은 G..
집계 함수 (Aggregate Functions)목적:여러 행에 걸쳐 계산을 수행해 하나의 결과(또는 소수의 결과)를 도출합니다.예시 및 설명:SUM(), AVG(), MIN(), MAX(), COUNT()특정 컬럼의 합계, 평균, 최소/최대 값, 또는 행의 개수를 구할 때 사용됩니다.주로 GROUP BY와 함께 사용하여 그룹별 통계 정보를 산출합니다. 스칼라 함수 (Scalar Functions)목적:각 행마다 단일 값을 반환하며, 입력 값에 대해 변환, 계산 또는 조작을 수행합니다.예시 및 설명:수학 함수: ABS(), ROUND(), CEIL(), FLOOR() 등숫자 값의 절대값, 반올림, 올림, 내림 등 계산에 사용됩니다.문자열 함수: UPPER(), LOWER(), SUBSTR(), CONCA..
데이터베이스(특히 관계형 DB)에서 JOIN은 여러 테이블의 데이터를 결합해 필요한 정보를 얻는 핵심 연산입니다. 실제로는 “교집합/합집합”이라기보다, 테이블 간 매칭되는 키(key)나 조건을 통해 데이터 행을 연결하는 작업에 가깝습니다. 예를 들어 JOIN 문은 WHERE A.id = B.id 같은 식으로 각 행을 연결하죠.1. JOIN의 필요성과 비용필요성정규화된 데이터베이스에서, 중복을 피하고 데이터 무결성을 유지하기 위해 테이블을 나눠 설계하는 것이 일반적입니다.이를 통해 테이블이 분할(분리)되면, 조회 시점에 필요한 속성들을 JOIN으로 연결해 정보를 종합합니다.예) 사용자 정보(Users 테이블)와 주문 정보(Orders 테이블)를 별도로 관리하되, 조회할 때 특정 사용자의 주문 내역을 확인하..
1. 데이터 조작어 (DML: Data Manipulation Language)데이터를 조회, 추가, 수정, 삭제하는 데 사용됩니다.1.1 데이터 조회 (SELECT)SELECT column1, column2 FROM table_name; 조건 조회:SELECT * FROM employees WHERE department = 'Sales'; 정렬:SELECT name, salary FROM employees ORDER BY salary DESC; 중복 제거:SELECT DISTINCT department FROM employees; 그룹화 및 집계:SELECT department, AVG(salary) AS avg_salary FROM employees GROUP BY department HAVING A..