데이터 분석가 시작 SQL 기본 절(Clause) 배우기
데이터 분석가 채용 공고를 보면 절대 빠지지 않는 역량이 하나 있다. 바로 SQL이다. SQL은 관계형 데이터 베이스를 조작하기 위한 언어, 즉 데이터를 불러오고 새 것을 추가하고, 수정 그리고 제거하는 등 그 모든 것을 할 수 있는 언어이다. 지금부터 SQL 기본 절을 배우도록 하자.
SQL 기본 절 꼭 배워야 할까?
데이터 분석 관련으로 단기 코스를 다닌 적이 있다. 그 때 SQL에 대한 개념은 배웠으나, 실제 쿼리를 짜 보진 못했다. 대신 Python 언어로 데이터 정제 작업을 했었다.
운 좋게 나는 학교에 들어가기 전에 한 2달 정도 Python 언어를 온라인 교육 플랫폼(codeit)으로 공부를 했었다. 같이 배우는 사람들 중에 한 사람을 제외하고는 모두 처음 Python을 다뤄보는 것처럼 보였다.
나는 내 노트북으로 Jupiter notebook을 다운 받아서 사용했고, 학교에서는 Google colab이라는 것을 사용했다. Google colab은 구글 클라우드 서버에서 연결해서 AI를 자유롭게 이용할 수 있었다.
그래서 굳이 Python 언어로 코드를 입력하지 않고, 자연어(우리말)로 입력 해도 알아서 코드를 만들어 주었다. 나는 그 당시 크게 충격이었다. 2026년 현재는 Jupiter notebook도 AI 프로그램을 별도로 설치하면 가능하다고 들었다.

‘그럼 왜 나는 Python을 공부한 거지? 그냥 AI에게 자연어로 입력을 해서 코드를 짜면 안될까?’
왜 SQL 이야기를 하는데 갑자기 Python 얘기를 하는 지 궁금해 할 것 같다. SQL 공부를 하면서 같은 생각이 들었다. 꼭 SQL 코드를 알아야 하나, AI를 이용해서 자연어로 현업에서는 하고 있지 않을까 하는 생각이 들었다. 지금 이것은 현업에 계신 분들 만나면 물어보고 싶다.
아무리 AI가 자연어 입력을 코드로 전환해 준다고 해도 이렇게 해도 괜찮나?
그럼에도 불구하고 내가 SQL 기본 절을 알아야 한다고 생각하는 이유는 크게 2가지이다.
- AI 활용하여 코드를 만든 것이 맞는 지에 대한 쿼리 확인
- 복잡한 것은 아니더라도 최소한 SQL 기본 절을 알아야 하지 않나?
SQL 기본 절 배우기

정말 기본이 되는 절만 가져왔으니, 가능하면 쿼리 짤 때를 대비해서 기억했음 좋겠다.
- SELECT : 무엇을 표현할 지를 결정
- FROM : 데이터를 가져올 테이블
- WHERE : 어떤 데이터를 가져올 지를 말함
- ORDER BY : 데이터를 어떤 순서로 표현할 지 (내림차순, 오름차순)
- LIMIT (예시 10) : 위에서 부터 10개까지만 표현하라
ORDER BY 컬럼A DESE (높은 순 -> 낮은 순)은 내림차순, 그 반대는 오름차순(ASC) 하지만 SQL은 기본적으로 ASC라서 생략 가능하다.
1) SELECT와 기본적으로 같이 쓰이는 것들
- SELECT DISTINCT 컬럼 이름: 데이터 표시할 때, 중복 데이터는 없이 (유일한 값만 출력하고 2개 이상의 데이터 나올 때도 조합으로 유일한 값만 출력)
- SELECT * : 데이터 모든 컬럼을 표시하기
- SELECT 컬럼A : 컬럼A의 데이터만 표시하기
- SELECT 컬럼A, 컬럼B : 컬럼A와 컬럼B 데이터만 표시하기(,로 연결)
- SELECT 컬럼A AS 별칭(임의) : 컬럼A 이름 말고 별칭으로 표시하기
- SELECT LEFT (‘abcde’, 3) ->출력 abc
- SELECT RIGHT (‘abcde’, 3) ->출력 edc
- SELECT SUBSTR (‘abcde’, 3, 2) ->출력 cd
2) WHERE과 함께 많이 쓰이는 것들
- WHERE 조건1 AND(OR) 조건2 : 이렇게 AND 또는 OR로 연결할 수 있다.
- WHERE 컬럼A IN (‘A’, ‘B’) : 컬럼A 데이터 속에 A와 B를 모두 표시하기
- WHERE 컬럼A BETWEEN A AND B : 이 사이의 데이터 값 표시하기
- WHERE 컬럼A IS NULL : 컬럼A 데이터 값이 비워 있는 행만 표시하기
- WHERE 컬럼A IS NOT NULL : 컬럼A 데이터 값이 채워 있는 행만 표시
- WHERE 컬럼A LIKE ‘%영어%’ : 컬럼A 데이터 값 중에 앞뒤는 상관없고 영어라는 글자만 들어가 있으면 다 가져와라
- WHERE 컬럼A LIKE ‘_영어_’ : 컬럼A 데이터 값 중에 앞뒤로 딱 한글자만 더 있고 영어라는 데이터 값이 그 중간에 있으면 다 가져와라
- – 살리는 법 : LIKE ‘%\_글자’ -글자 그 자체인 것을 표시
SQL 작성 순서와 실행 순서가 다르다 라는 것 아시나요?
기본적으로 SQL 실행 순서를 알고 있어야, 쿼리가 어디서 어디로 가는 지 이해할 수 있다. 가끔 연습 문제 풀다가 실행 순서가 내가 생각한 대로 되지 않을 때가 있었는데 이유는 바로 이거였다.
|
작성순서 |
실행순서 |
|
SELECT FROM WHERE GROUP BY HAVING ORDER BY |
FROM WHERE GROUP BY HAVING SELECT ORDER BY |
크게 차이가 나지 않지만, 딱 하나 SELECT가 ORDER BY보다 먼저 작동을 한다는 것은 꼭 기억했으면 한다. 예를 들어 SELECT AS에서 별칭을 정해 놓았을 경우 ODER BY에서 그 별칭을 지칭할 수 있다.
마무리
현재 나는 데이터리안에서 SQL 분석 캠프(일반+실전)을 듣고 있다. 이미 데이터 분석 단기 코스도 수강을 마쳤고, 온라인 플랫폼(Datacamp)으로 SQL 수업도 완료했다.
그럼에도 내가 데이터리안에서 SQL 기본 절을 배우면서 다시 시작한 것은 바로 포트폴리오를 만들고, RFM 고객세분화 분석 등 현업에서 사용되는 분석 기법을 배우고 싶어서 였다.
나는 Python, SQL 등을 배우는 것 보다, 데이터가 분석이 되는 전 과정을 그려보고, 직접 해보는 그런 경험을 갖고 싶었다.
문제를 어떤 식으로 정의하고, 그 정의한 문제를 확인하기 위해서는 어떤 지표를 보고 그 지표를 구하기 위해서는 어떤 고객의 행동에 주의해야 하고 이런 것들 말이다.
그동안 만들었던 프로젝트는 데이터를 사용하기는 했으나, 나의 주관적인 해석이 다분히 많이 들어간 것들이라, 할 때마다 이게 맞는 지에 대한 의문이 생기곤 했다. 이번에는 데이터리안에 계시는 멘토분들, 선배, 동기 분들이 함께 나의 이러한 의문이 조금은 해소되지 않을까 싶다.
SQL 집계함수는 무엇이고, 어디에 쓰는지 궁금하신 분들은 아래 포스팅을 꼭 읽어 보시기 바랍니다. 기본 절을 잇는 배움 순서입니다.
