마케터를 위한 SQL : SELECT, FROM 구문

Sean Lee·2022년 9월 7일
0

마케터를 위한 SQL

목록 보기
4/7
post-thumbnail

테이블 탐색

SQL 연습의 대상이 되는 DB에 대한 상세정보는 마케터를 위한 SQL : 연습용 데이터베이스 구축 에서 확인할 수 있습니다.
데이터 다운로드 : 데이터 다운로드 (.csv, .sql 파일 지원)

관계형 데이터베이스 안에는 여러개의 테이블이 존재합니다. 어떠한 테이블이 존재하는지, 그리고 각 테이블에는 어떠한 데이터들이 담겨있는지 탐색하기 위한 SQL을 배워보도록 하겠습니다.

1. 테이블 목록확인

아래의 SQL 구문을 입력하면, 데이터베이스에 존재하는 테이블의 이름 정보를 반환합니다.

SHOW TABLES;


현재 사용중인 데이터베이스에는 총 4개(billing, orders, products, users)의 테이블이 존재하는 것을 확인할 수 있습니다.

  • billing : 결제 데이터가 담긴 테이블
  • orders : 주문 데이터가 담긴 테이블
  • products : 상품 데이터가 담긴 테이블
  • users : 회원 데이터가 담긴테이블


2. SELECT 구문 이해하기

SQL의 SELECT 구문을 아주 간단하게 설명하면, 데이터베이스에 존재하는 테이블과 데이터를 바탕으로 n x m 사이즈의 결과 테이블을 어떻게 만들어낼 것인지 그 방법을 명시해놓은 명령어입니다.

데이터베이스 안에는 여러개의 테이블이 있고, 각 테이블에는 데이터가 담겨져 있습니다. SQL의 SELECT 구문을 통해 데이터베이스의 어느 테이블에, 무슨 컬럼들을 몇개 가져와서 어떻게 값들을 처리하고 그 결과를 n x m 테이블로 표현할 수 있습니다.

SELECT 구문을 통해

  • 데이터베이스의 여러 테이블을 하나의 테이블로 합치거나,
  • 테이블 안에서 특정 컬럼에 속하는 값들의 평균을 내거나,
  • 테이블 안에서 특정 조건에 부합하는 데이터를 찾거나,
  • 테이블 안에서 피봇팅을 하는등의 다양한 일을 수행할 수 있습니다.


3. SELECT 키워드를 이용해서 모든 컬럼의 데이터 확인

본격적으로 SQL의 키워드인 SELECT 를 사용해서 각각의 테이블에 저장된 데이터를 확인해보도록 하겠습니다.
이해하기 쉽도록 키워드(Keyword)와 함수(Fuction)에는 대문자를 사용하도록 하겠습니다.

공통적으로 사용된 SQL 요소 설명

1. 요소 : "SELECT"
	-> 테이블에서 특정 속성(Attribute) or 열(Column)을 선택하겠다는 의미의 키워드입니다.

2. 요소 : "*"
	-> 테이블에 존재하는 모든 컬럼들을 선택하겠다는 의미의 키워드입니다.

3. 요소 : "FROM"
	-> 데이터베이스에서 특정 테이블을 선택하겠다는 의미의 키워드입니다.
    
4. 요소 : "LIMIT n"
	-> 처음 n개의 행(row)을 제한해서 출력하겠다는 의미의 키워드입니다.

테이블에 많은 양의 데이터가 저장되어 있는 경우가 있습니다. 이때 전체 데이터를 조회하게 되면 많은 양의 데이터를 처리하기 때문에 데이터가 반환되는데 걸리는 시간이 길어지게 됩니다. 간단한 탐색 목적이라면 LIMIT 키워드를 활용해서 반환되는 데이터(행 - row) 수를 제한해서 빠르게 결과를 확인하는 방법이 좋습니다.



3-1. 회원(users) 테이블 확인

SELECT * 
FROM users 
LIMIT 10;

쿼리 실행 결과

해석
users 테이블 에서 (FROM) 테이블에 존재하는 모든 컬럼(*)을 선택하고(SELECT) 이에 대한 10개의 기록(LIMIT 10)을 출력합니다.



3-2. 결제(billing) 테이블 확인

SELECT * 
FROM billing 
LIMIT 5;

쿼리 실행 결과

해석
billing 테이블 에서 (FROM) 테이블에 존재하는 모든 컬럼(*)을 선택하고(SELECT) 이에 대해 처음 5개의 기록(LIMIT 5)을 출력합니다.



3-3. 상품(products) 테이블 확인

SELECT * 
FROM products 
LIMIT 5;

쿼리 실행 결과

해석
products 테이블 에서 (FROM) 테이블에 존재하는 모든 컬럼(*)을 선택하고(SELECT) 이에 대해 처음 5개의 기록(LIMIT 5)을 출력합니다.



3-4. 주문(orders) 테이블 확인

SELECT * 
FROM orders 
LIMIT 100;

쿼리 실행 결과

해석
orders 테이블 에서 (FROM) 테이블에 존재하는 모든 컬럼(*)을 선택하고(SELECT) 이에 대해 처음 100개의 기록(LIMIT 100)을 출력합니다.



4. SELECT 키워드를 이용해서 특정 컬럼의 데이터 확인

테이블에 대한 탐색을 끝내고 앞서 3-1. 의 회원(users) 테이블 내에서 특정 컬럼을 선택하는 쿼리를 연습해보도록 하겠습니다.

회원 테이블에 총 11개의 컬럼이 존재

- user_id 			: 회원 id
- name 				: 이름
- phone 			: 휴대폰
- email 			: 이메일
- user_status 		: 상태 (활성 및 휴면 정보)
- user_class 		: 등급
- marketing_agree 	: 마케팅 수신동의
- social_login 		: 소셜로그인
- last_logged_at 	: 마지막 접속일
- modified_at 		: 수정일
- created_at 		: 생성일


4-1. SMS 전체 발송을 위해 회원의 이름과 전화번호 추출

SELECT name, phone 
FROM users;

쿼리 실행 결과

해석
users 테이블 에서 (FROM) 테이블에서 name 컬럼과 phone 컬럼을 선택하여(SELECT) 출력합니다.



4-2. 이메일 전체 발송을 위해 회원의 이름과 이메일 주소 추출

SELECT name, email 
FROM users;

쿼리 실행 결과

해석
users 테이블 에서 (FROM) 테이블에서 name 컬럼과 email 컬럼을 선택하여(SELECT) 출력합니다.



4-3. 휴면고객 분석을 위해 고객의 이름과 마지막 접속일 추출

SELECT name, last_logged_at
FROM users;

쿼리 실행 결과

해석
users 테이블 에서 (FROM) 테이블에서 name 컬럼과 last_logged_at 컬럼을 선택하여(SELECT) 출력합니다.


정리

1. SQL의 간단 이해
-> 데이터베이스의 어느 테이블과 데이터를 바탕으로 n x m 사이즈의 결과 테이블을 만들어낼 것인지 그 방법을 정리한 명령어

2. 데이터의 탐색
- 데이터베이스에서 테이블 목록 확인
- SELECT 구문을 활용해서 각 테이블에 담겨진 데이터 확인
	* SELECT 키워드를 이용해서 모든 컬럼의 데이터 확인
	* SELECT 키워드를 이용해서 특정 컬럼의 데이터 확인

감사합니다 :)

profile
배우기만 하고 생각하지 않으면 얻는 것이 없고, 생각만 하고 배우지 않으면 위태롭다.

0개의 댓글