데이터 조회 (SELECT) : 데이터 조작어 (DML)이며, 데이터 분석에서 가장 많이 사용되는 명령어

- 여러 절들과 함께 사용되어, 분석에 필요한 데이터 조회 (FROM, WHERE, GROUP BY, HAVING, ORDER BY)

 

FROM : 테이블 확인

WHERE : FROM절 테이블을 특정 조건으로 필터링

GROUP BY : 열 별로 그룹화, 집계함수와 주로 사용, SELECT에도 작성해야 원하는 분석 결과 확인 가능

HAVING : 그룹화된 새로운 테이블을 특정 조건으로 필터링

SELECT : 열 선택

ORDER BY : 열 정렬 (DESC, ASC)

 

FROM -> WHERE -> GROUP BY 순으로 실행되며, FROM -> GROUP BY 순으로 작성해도 됨

 

 

SELECT 명령어 보기 좋은 작성법

SELECT	[열1]
	,[열2]
        ,[집계함수] AS [열이름]
        
FROM 	[테이블명]

WHERE	[조건]

GROUP
   BY	[열1]
	,[열2]
      
HAVING	[조건]

ORDER
   BY	[열1];

 

SELECT ADDR
	   , COUNT(MEN_NO) AS 회원수
  FROM CUSTOMER
 WHERE GENDER = 'MAN'
 GROUP
 	BY ADDR
 HAVING COUNT(MEN_NO) < 100
 ORDER
 	BY COUNT(MEN_NO) DESC;

 

 

 

테이블 결합 (JOIN) : 두 테이블 관계를 활용하여, 테이블을 결합하는 명령어 (여러 테이블을 활용한 분석 가능)

- 관계는 1:1, 1:N, N:N 세 가지 형태로, 테이블 간의 연결이 가능하다는 것을 의미함

- ERM (Entity-Relationship Modeling)은 개체-관계 모델링이며, 관계형 데이터베이스에 테이블 모델링할 때 사용

- ERD (Entity-Relationship Diagram) : 개체 간의 관계를 도표로 표현할 때 사용

- 개체 (Entity) : 하나 이상의 속성으로 구성된 객체

- 관계 (Relationship) : 개체 간의 관계

 

INNER JOIN : 두 테이블의 공통 값이 매칭되는 데이터만 결합

SELECT *
  FROM CUSTOMER AS A
 INNER
  JOIN SALES AS B
    ON A.MEM_NO = B.MEM_NO;

 

LEFT JOIN : 두 테이블의 공통 값이 매칭되는 데이터만 결합, 왼쪽 테이블의 매칭되지 않는 데이터는 NULL

RIGHT JOIN : 두 테이블의 공통 값이 매칭되는 데이터만 결합, 오른쪽 테이블의 매칭되지 않는 데이터는 NULL

 

 

테이블 결합 (JOIN) + 데이터 조회(SELECT) : 여러 테이블들을 결합하여 조회 및 분석

 

테이블 결합은 3가지 이상 테이블 결합 가능함

SELECT *
  FROM SALES AS A
  LEFT
  JOIN CUSTOMER AS B
	ON A.MEM_NO = B.MEM_NO
  LEFT
  JOIN PRODUCT AS C
  	ON A.PRODUCT_CODE = C.PRODUCT_CODE;

 

 

 

서브 쿼리 (Sub Query) : SELECT문 안에 또 다른 SELECT문이 있는 명령어

SELECT절 서브 쿼리 : SELECT 명령문 안에 SELECT 명령문이 있는 쿼리 (JOIN보다 처리 속도 늦음)

FROM절 서브 쿼리 : FROM 명령문 안에 SELECT 명령문이 있는 쿼리

WHERE절 서브 쿼리 : WHERE 명령문 안에 SELECT 명령문이 있는 쿼리

 

 

FROM절 서브 쿼리 보기 좋은 작성법

SELECT *
  FROM (
  	    SELECT [열1]
        	   , [집계함수] AS [열이름]
        FROM [테이블명]
       GROUP
          BY [열1]
       ) AS A

 

+ Recent posts