본문 바로가기

CERT/SQLD6

[SQLD] JOIN 오답 노트 - 3 USING (column) CREATE TABLE T1(C1 NUMBER, C2 VARCHAR2(1)); CREATE TABLE T2(C1 NUMBER, C3 VARCHAR2(1)); 핵심 규칙: USING은 두 테이블 모두에 같은 이름의 컬럼이 존재해야 사용 가능함이때 컬럼 이름도 같아야 하고, 데이터 타입도 호환되어야 함조인 후엔 USING에 지정된 컬럼은 한 번만 나타남지금 상황CREATE TABLE T1(C1 NUMBER, C2 VARCHAR2(1));CREATE TABLE T2(C1 NUMBER, C3 VARCHAR2(1));→ 두 테이블 모두 C1 컬럼 존재 → USING(C1) 사용은 가능오류 발생 이유?SELECT A.C1, B.C3 FROM T1 A JOIN T2 BUSING (C1.. 2025. 7. 30.
[SQLD] JOIN 오답 노트 - 2 문제 구조 요약목표: 고객별로 특정 날짜까지의 누적 주문금액을 계산하고, 이 중 가장 작은 누적합계금액을 구하는 것.테이블 구조 예시주문번호 고객번호 주문일자 주문금액50112019050120000612120190523500072812020031125000904120200715100004042201912087000603220200428600080722020052717000SQL 분석SELECT MIN(주문합계금액) AS 최저주문합계금액FROM ( SELECT A.고객번호, A.주문일자, SUM(B.주문금액) AS 주문합계금액 FROM 주문 A, 주문 B WHERE B.고객번호 = A.고객번호 AND B.주문일자 1. 서브쿼리 부분A는 기준 날짜, B는 누적 범위동일 고객의 모든 .. 2025. 7. 30.
[SQLD] JOIN 오답 노트 - 1 1. 테이블 요약고객고객번호 고객명1김대원2노영미3김경진4박하현총 4명주문 (주문금액 > 10000만 추출)주문번호 고객번호 주문금액2001140000 2002215000 2005220000 → 주문금액 합계: 40000 + 15000 + 20000 = 750002. 고객 수조건: COUNT(DISTINCT A.고객번호)→ 고객은 총 4명3. 결과SELECT SUM(B.주문금액) / COUNT(DISTINCT A.고객번호) AS R1FROM 고객 A, 주문 BWHERE B.고객번호(+) = A.고객번호AND B.주문금액(+) > 10000;→ SUM(B.주문금액) = 75000→ COUNT(DISTINCT A.고객번호) = 4R1 = 75000 / 4 = 18750정답: 18750 2025. 7. 30.
[SQLD] 3 - SQL 기본 오답부 개념 정리 일반 집합 연산자8가지의 관계형 대수 중 일반 집합 연산자는 관계형 데이터베이스에서 다음과 같은 문법으로 구현되어 있다.UNION 연산 - 집합 연산자 중 UNION / UNION ALL 연산자로 구현INTERSECTION 연산 - 집합 연산자 중 INTERSECTION 연산자로 구현DIFFERENCE 연산 - 집합 연산자 중 EXCEPT / MINUS 연산자로 구현PRODUCT 연산 - 조인 문법 중 CROSS JOIN 으로 구현집계 함수의 특징 집계 함수를 수행할 때 Null은 대상에서 제외하므로 Null의 개수에 따라 함수 결과가 달라진다. 대상 행의 모든 값이 Null 일때, COUNT 함수는 0을, SUM, MIN, MAX, AVG 함수는 NULL을 반환한다. COUNT 함수 내에 DISTINC.. 2025. 7. 23.
[SQLD] 2 - 데이터 모델과 SQL 오답부 개념 정리 관계와 조인 관계형 DB라는 이름에서 알 수 있듯 관계(Relation)가 무엇보다 중요하다. 관계형 DB에서 데이터를 추출하고 가공할 때 SQL을 사용하며, 엔터티 간 관계는 조인으로 표현한다. 조인에 대한 이해가 관계형 DB를 사용하는 데 있어 가장 핵심적인 요소일 수밖에 없는 이유다. 조인에는 Inner 조인, Outer 조인, Cross 조인 등이 있다. Outer 조인은 Left Outer 조인, Right Outer 조인, Full Outer 조인으로 세분화된다. 두 테이블을 조인할 때 어떤 방식을 사용할지는 데이터 모델에 의해 결정된다. 따라서 SQL 개발자는 데이터 모델을 정확히 읽고 해석할 줄 알아야 한다. 특히, 식별 / 비식별 관계, 관계차수(Cardinality), 관계의 선택사향,.. 2025. 7. 23.
[SQLD] 1 - 데이터 모델링의 이해 오답부 개념 정리 데이터 모델 / Data Model 모델은 일정한 표기법에 따라 표현한 모형, 축소형을 의미하고, 모델링은 모델을 만들어 가는 일 자체를 나타낸다. 모델링은 현실 세계의 복잡하고 구체적인 것을 단순 명확하게 추상화한다.모델의 3대 특징은 단순화, 명확화, 추상화다. 데이터 모델은 추상화 수준에 따라 개념 데이터 모델, 논리 데이터 모델, 물리 데이터 모델로 구분한다. 개념 데이터 모델은 추상화 수준이 가장 높고 주로 핵심 엔터티와 그들관의 관계를 나타낸 데이터 모델이다. 논리 데이터 모델은 모든 엔터티, 속성, 관계를 도출하고 중복 제거를 위해 정규화를 적용한 데이터 모델이다. 개념추상화 수준이 높고 업무 중심적, 포괄적 수준의 모델링논리업무에 대한 키, 속성, 관계 등을 정확하게 표현물리데이터베이스 .. 2025. 7. 23.