본문 바로가기

Data Literacy/SQL

(32)
Chapter 3. 집합 연산자와 서브쿼리 - (2) UNION과 합집합 3 ○ UNION ALL 사용하기 지금까지 알아본 UNION의 속성은, 일단 '합집합'이라는 기본 개념을 베이스로 동작하게 됩니다. 그리고 이 성질의 가장 큰 특징은 자연스럽게 중복되는 테이블의 데이터를 생략한다는 점이지요. 우리가 배웠었던 SELECT DISTINCT에서 DISTINCT 쿼리가 디폴트로 적용된다고 생각하시면 됩니다. Chapter 3. 집합 연산자와 서브쿼리 - (2) UNION과 합집합 2 앞선 아티클에서 우리는 관계형 데이터베이스의 전반적인 용어의 개념과, 이를 바탕으로 합집합 개념인 UNION에 대해서 살펴보았습니다. Chapter 3. 집합 연산자와 서브쿼리 - (2) UNION과 합집합 1 우 nozeroslope.tistory.com 하지만 상황에 따라서, 테이블에서 UNION을..
Chapter 3. 집합 연산자와 서브쿼리 - (2) UNION과 합집합 2 앞선 아티클에서 우리는 관계형 데이터베이스의 전반적인 용어의 개념과, 이를 바탕으로 합집합 개념인 UNION에 대해서 살펴보았습니다. Chapter 3. 집합 연산자와 서브쿼리 - (2) UNION과 합집합 1 우리는 앞서서 아주 간단하고 심플한 방식으로 '관계형 데이터베이스'에서의 용어 개념에 대해서 알아보았습니다. 100% 정확한 내용이라고 볼 수도 없고, 실무적인 내용은 아니지만 어설프게 사 nozeroslope.tistory.com 이제 본격적으로 UNION의 사용에 대해서 살펴보겠습니다. select COLUMN_1_1, COLUMN_1_2 from table_name_1 union select COLUMN_2_1, COLUMN_2_2 from table_name_2; 위 예제에서 두 개의 SE..
Chapter 3. 집합 연산자와 서브쿼리 - (2) UNION과 합집합 1 우리는 앞서서 아주 간단하고 심플한 방식으로 '관계형 데이터베이스'에서의 용어 개념에 대해서 알아보았습니다. 100% 정확한 내용이라고 볼 수도 없고, 실무적인 내용은 아니지만 어설프게 사용하는 용어의 관념에 대해서 최소한의 정의를 진행한 것에 의의를 두시기 바랍니다. Chapter 3. 집합 연산자와 서브쿼리 - (1) 관계형 데이터베이스의 정의 이번 아티클부터는 새로운 챕터를 통해서 몇 가지 집합 연산자와 이와 관련된 서브쿼리를 배워볼 예정입니다. 이번 시간에 배우는 개념들은 SQL을 이해하는 데 있어서 매우 중요합니다. 왜냐하 nozeroslope.tistory.com 이제부터는 '데이터베이스'의 관점에서 복수의 테이블을 다루는 방식, 그리고 그와 관련된 개념들에 대해서 살펴보겠습니다. 우선 하나의..
Chapter 3. 집합 연산자와 서브쿼리 - (1) 관계형 데이터베이스의 정의 이번 아티클부터는 새로운 챕터를 통해서 몇 가지 집합 연산자와 이와 관련된 서브쿼리를 배워볼 예정입니다. 이번 시간에 배우는 개념들은 SQL을 이해하는 데 있어서 매우 중요합니다. 왜냐하면, 앞선 내용의 아티클까지는 '이렇게 입력하면 이거랑 저거랑 붙는다'라는 식으로 관념적인 설명을 최대한 배제하였기 때문이죠. 이번에 집합 연산자라는 쉬운 개념으로 SQL을 다루면서, 본질적으로는 RDBMS, 즉 관계형 모델의 구성 원리와 집합으로서의 테이블에 대한 관계 정의를 심도 있게 다룰 예정입니다. 단순히 테이블 병합, 데이터 추출이라는 기능적인 내용이라고 단정 짓지 마시고, 테이블에 대한 개념적 이해를 높이고 SQL의 쿼리에 접근하는 관점을 발전시켜 보도록 하겠습니다. ○ 집합과 SQL, 그리고 '관계' 지금부터..
Chapter 2. JOIN을 이용한 데이터 조합 - (8) 그룹화 : GROUP BY & HAVING 5 [예제] 이번 아티클에서는, 우리가 꽤 오랫동안 살펴본 GROUP BY와 HAVING을 실제로 사용해 보는 예제를 살펴보도록 하겠습니다. DVDRENTAL 데이터베이스에서 실제로 살펴보고자 하는 데이터를 GROUP BY와 HAVING을 사용해 데이터를 추출해 보도록 하겠습니다. * 매장에서 지금까지 누적된 결제 금액이 가장 많은 고객이 누구인지 확인하려고 한다. 이를 위해 "PAYMENT 테이블에서, CUSTOMER_ID를 기준으로 개별 고객 각각 한 명이 얼마를 결제하였는지 총액을 구하고 고객을 결제 고객이 많은 순으로 정렬하시오." 우선 PAYMENT 테이블을 기본 형태로 출력해보면 아래와 같습니다. '결제 각 건별로' 누가 결제했는지, 담당 계산원은 누구인지, 그리고 결제 금액(AMOUNT)이 얼마인지를 보..
Chapter 2. JOIN을 이용한 데이터 조합 - (8) 그룹화 : GROUP BY & HAVING 4 지금까지 GROUP BY를 배워오면서 짚고 넘어가지 않은 중요한 원칙이 하나 있습니다. 바로 [GROUP BY에서 선언한 열 이외의 열은, SELECT 프레이즈에서 집계함수를 사용하지 않은 채 작성해서는 안된다]입니다. 지금까지 예제를 작성할 때, 별다른 언급이 없었을 뿐이지 잘 생각해 보면 이러한 방식으로 예제를 작성해 왔었던 것 같습니다! 그럼 '왜' GROUP BY에서 선언되지 않은 열은 반드시 집계함수와 함께 SELECT에서 선언해야 하는 것일까요? 한번 그 이유를 살펴보도록 하겠습니다. 우선 지금까지 사용한 SAMPLE00 테이블을 이용해서 살펴보겠습니다. 기억이 잘 나지 않을 수 있으니, 해당 테이블을 다시 조회해 보겠습니다. select * from sample00 s 이제 기본적인 GROU..
Chapter 2. JOIN을 이용한 데이터 조합 - (8) 그룹화 : GROUP BY & HAVING 3 앞선 아티클에서 HAVING의 개념과 기본적인 작동 원칙에 대해서 살펴보았습니다. 그럼 이제 이 내용을 토대로 실제 쿼리를 작성해서 데이터를 확인해 보도록 하겠습니다. Chapter 2. JOIN을 이용한 데이터 조합 - (8) 그룹화 : GROUP BY & HAVING 2 앞서서 GROUP BY의 기본적인 개념과 사용법을 알아보았습니다. Chapter 2. JOIN을 이용한 데이터 조합 - (8) 그룹화 : GROUP BY & HAVING 1 이번 아티클에서는 본격적으로 GROUP BY에 대해서 살펴보도록 하겠습 nozeroslope.tistory.com GROUP BY와 HAVING을 사용해 다음을 출력해 봅시다. 일단, GROUP BY를 이용해 SAMPLE00 테이블의 데이터를 조회해 보겠습니다. ..
Chapter 2. JOIN을 이용한 데이터 조합 - (8) 그룹화 : GROUP BY & HAVING 2 앞서서 GROUP BY의 기본적인 개념과 사용법을 알아보았습니다. Chapter 2. JOIN을 이용한 데이터 조합 - (8) 그룹화 : GROUP BY & HAVING 1 이번 아티클에서는 본격적으로 GROUP BY에 대해서 살펴보도록 하겠습니다. 여기서 설명하기 위한 샘플 테이블을 아래 예시와 같이 생성해 보도록 하겠습니다. create table sample00 ( no int primary key, name nozeroslope.tistory.com 그럼 이제 한 발자국 더 나아가서 생각해 보겠습니다. GROUP BY를 이용해 COUNT, AVG 등 다양한 집계 함수까지 사용할 때 특별한 조건을 부여할 때도 있겠죠? 예를 들어 '수량이 10개인 것만 출력한다'와 같은 조건 말이죠. 집계한 결과에서..