데이터 조회(SELECT)는 데이터 조작어(DML)이며, 데이터 분석에서 가장 많이 사용되는 명령어이다.
데이터 조회(SELECT)는 여러 절들과 함께 사용되어, 분석에 필요한 데이터를 조회한다.
GROUP BY는 집계함수와 주로 사용되는 명령어이다.
SQL 명령어를 보기 좋게 작성하기 위해서는 SPACE 및 TAB 키보드를 잘 활용해야 한다.
USE PRACTICE;
/***************FROM***************/
/* Customer 테이블 모든 열 조회 */
SELECT *
FROM CUSTOMER;
/***************WHERE***************/
/* 성별이 남성 조건으로 필터링 */
SELECT *
FROM CUSTOMER
WHERE GENDER = 'MAN';
/***************GROUP BY***************/
/* 지역별로 회원수 집계 */
SELECT ADDR
,COUNT(MEM_NO) AS 회원수
FROM CUSTOMER
WHERE GENDER = 'MAN'
GROUP
BY ADDR;
/* COUNT: 행들의 개수를 구하는 집계함수 */
/***************HAVING***************/
/* 집계 회원수 100명 미만 조건으로 필터링 */
SELECT ADDR
,COUNT(MEM_NO) AS 회원수
FROM CUSTOMER
WHERE GENDER = 'MAN'
GROUP
BY ADDR
HAVING COUNT(MEM_NO) < 100;
/* < : 비교 연산자 / ~ 보다 작은*/
/***************ORDER BY***************/
/* 집계 회원수가 높은 순으로 */
SELECT ADDR
,COUNT(MEM_NO) AS 회원수
FROM CUSTOMER
WHERE GENDER = 'MAN'
GROUP
BY ADDR
HAVING COUNT(MEM_NO) < 100
ORDER
BY COUNT(MEM_NO) DESC;
/* DESC : 내림차순 / ASC : 오름차순 */
/***************FROM -> (WHERE) -> GROUP BY***************/
/* FROM -> GROUP BY 순으로 작성해도 됩니다. */
SELECT ADDR
,COUNT(MEM_NO) AS 회원수
FROM CUSTOMER
/* WHERE GENDER = 'MAN' */
GROUP
BY ADDR;
/***************GROUP BY + 집계함수***************/
/* 거주지역을 서울, 인천 조건으로 필터링 */
/* 거주지역 및 성별로 회원수 집계 */
SELECT ADDR
,GENDER
,COUNT(MEM_NO) AS 회원수
FROM CUSTOMER
WHERE ADDR IN ('SEOUL', 'INCHEON')
GROUP
BY ADDR
,GENDER;
/* IN : 특수 연산자 / IN (List) / 리스트 값만 */
/* GROUP BY에 있는 열들을 SELECT에도 작성해야 원하는 분석 결과를 확인할 수 있습니다. */
SELECT GENDER
,COUNT(MEM_NO) AS 회원수
FROM CUSTOMER
WHERE ADDR IN ('SEOUL', 'INCHEON')
GROUP
BY ADDR
,GENDER;
/***************SQL 명령어 작성법***************/
/* 회원테이블(Customer)을 */
/* 성별이 남성 조건으로 필터링하여 */
/* 거주지역별로 회원수 집계 */
/* 집계 회원수 100명 미만 조건으로 필터링 */
/* 모든 열 조회 */
/* 집계 회원수가 높은 순으로 */
SELECT ADDR
,COUNT(MEM_NO) AS 회원수
FROM CUSTOMER
WHERE GENDER = 'MAN'
GROUP
BY ADDR
HAVING COUNT(MEM_NO) < 100
ORDER
BY COUNT(MEM_NO) DESC;
관계는 1:1, 1:N, N:N 세가지 형태로,
테이블 간의 연결이 가능하다는 것을 의미한다.
ERM은 개체-관계 모델링이며, 관계형 데이터베이스에 테이블을 모델링할 때 사용된다.
ERD은 개체간의 관계를 도표로 표현할 때 사용된다.
테이블 결합(JOIN)은 3가지 이상 테이블 결합이 가능하다.
서브 쿼리(Sub Query)는 SELECT문 안에 또 다른 SELECT문이 있는 명령어이다.
SELECT절 서브 쿼리는 SELECT 명령문 안에 SELECT 명령문이 있는 쿼리문이다.
- 테이블의 열
스칼라(Scala) 서브 쿼리
- 스칼라: 하나의 값만 보유하는 원자량
- 처리 속도
JOIN보다 처리 속도 늦음
FROM절 서브 쿼리는 FROM 명령문 안에 SELECT 명령문이 있는 쿼리문이다.
- 테이블
열 이름 및 테이블명 지정
WHERE절 서브 쿼리는 WHERE 명령문 안에 SELECT 명령문이 있는 쿼리문이다.
- 리스트(List)
WHERE절 서브 쿼리 = 리스트