MYSQL 기초 문법 10가지 정리 _ 패스트캠퍼스 6회차
파이썬 프로젝트를 끝내고 드디어 SQL을 배우게 시작했습니다. 데이터분석 업무 현업에서 가장 자주 쓰이는 툴이라고 해서 관심이 많이 갔습니다. 확실히 파이썬보다는 문법이 간단하더군요.
이것도 당연히 깊게 파고 들면 복잡한 내용들이 많겠지만. 일주일 이론 배우고, 일주일 코딩 테스트 연습용 문제 풀고, 바로 프로젝트에 돌입하는 만큼 강사님이 세운 강의 방향성은 SElECT문법에 집중하는 거였습니다. SELECT 문법만 잘 활용해도 주니어 단계에서 굉장히 많은 일을 할 수 있다 하시더라고요.

이 포스팅에서는 제가 문제를 풀면서 자주 쓰게 된다고 느꼈던, 가장 기초적이면서 중요하다고 느낀 SQL 문법들을 저처럼 따로 강의를 수강하는게 아니라 직장에 다니시면서 SQL을 독학하려고 하시는 분에게 도움이 됐으면 좋겠습니다.
1. COUNT
데이터 행의 개수를 세는 예약어 입니다. 어떤 조건에 부합되는 행이 몇개나 있는지 출력하는 기능을 가지고 있습니다.
2.LIMIT
출력할 행의 개수를 제한하는 예약어입니다. 데이터의 숫자가 많아지면 보기에도 불편하고 처리에도 시간이 많이 걸리겠죠. 그때 마지막에 LIMIT10; 으로 마무리하면 조건을 충족하는 10개의 데이터만 출력됩니다. ORDER BY와 같이 써서 상위, 하위 몇개의 데이터를 불러오는 식으로 자주 활용 했습니다.
3. WHERE
출력값에 조건을 거는 예약어입니다. KBO타자들의 성적을 정리한 데이터가 있는데, 여기서 30홈런 이상을 친 타자만 보고 싶다고 한다면 WHERE로 30홈런 이상이라는 조건을 걸어서 출력할 수 있죠.
주의할 점은 GROUP BY에서 묶은 값에는 조건을 걸 수 있어서 HAVING이 사용되며, WHERE에는 집계함수를 쓸수가 없습니다.
4. GROUP BY
어떤 컬럼의 값으로 행들을 묶습니다. 예를 들어, A라는 투수가 총 5가지의 구종을 던지고 그걸 정리한 표가 있습니다.
A - 포심
A - 체인지업
A - 커브
A - 스플리터
A - 슬라이더
이런 식으로 말이죠. 이걸 A로 묶은 다음 몇 개의 구종을 가지고 있는지 표를 정리하는 용도로 쓸 수 있습니디.
5. HAVING
GROUP BY로 묶은 결과에 조건을 거는 예약어이며, HAVING에서는 집계함수 또한 사용할 수 있습니다.
6. ORDER BY
출력되는 값의 순서를 정할 수 있습니다.
[ORDER BY 기준이 되는 값 DESC or ASC]
DESC는 내림차순이고 ASC는 오름차순이지만, ASC는 생략이 가능합니다.
7. SUM/AVG/MAX/MIN
대표적인 집계함수들입니다. 기능은 순서대로 합산/평균치/최대치/최솟값을 구할 수 있습니다.
8. DISTINCT
중복되는 값들은 출력되지 않도록 하는 예약어입니다.
9. AS
표시될 컬럼명을 바꿀 수 있는 예약어입니다.
SELECT 배트 라고 적혀 있으면 배트라는 컬럼명이 나오겠지만
SELECT 배트 AS 방망이 라고 적으면 방망이라는 컬럼명이 나오는 것이죠. AS는 생략이 가능하지만, 전 개인적으로 붙이는 게 읽기에 편하더군요.
10. JOIN ON
테이블을 연결할 수 있습니다. 각각의 분리된 테이블을 공통된 컬럼명으로 엮어서 하나의 테이블로 취급하는 것이죠. INNER JOIN, RIGHT JOIN, LEFT JOIN 등 종류가 다양하지만 INNER JOIN이 핵심이라고 볼 수 있습니다. INNER은 생략해도 될 정도로 가장 중요한 JOIN 기능이라고 보시면 돼요.
FROM 테이블1
JOIN 테이블2
ON 테이블1.컬럼명 = 테이블2. 컬러명
의 구조를 지닙니다. 여기서 꿀팁은 alias가 적용되니, alias를 사용하시는 게 훨씬 입력이 빨라지실 겁니다.