들어가기 전...
처음 SQL을 공부할 때 나는 비전공자였기에 무식한 방법으로 이론을 파려고 했었다. (그 때는 아예 프로그래밍 언어에 대한 지식이 거의 없었음. R만 조금 할 줄 아는 상태.)
하지만 데이터 분석 현직자분을 만나뵌 뒤 그게 아니라는 것을 깨달았다.
'데이터 분석에 필요한 구문'만 빨리 익히고 같은 문제라도 쿼리를 이리저리 다양하게 많이 짜보라는 조언을 해 주셨는데 지금은 그게 무슨 말인지 너무 잘 알겠다.
그래서 오늘과 앞으로의 포스팅에서는 SQL의 기본적인 구문을 "간단히" 정리하고자 한다.
데이터 가공 및 분석에 필요한 SQL Type
쿼리 구문의 순서
- SELECT와 FROM 구는 쿼리에 필요한 "필수 구문"으로 반드시 작성해야 한다.
- WHERE 구는 "선택 구문"으로 조건이 있을 때 작성할 수 있으며 반드시 작성해야 쿼리가 실행되는 것은 아니다.
select col1, col2, ... col as a -- 이런식으로 별칭 가능
from ~ ;
select col1, col2, ...
from db.table1 as tab1;
select col1, col2, ...
from db1.table1
where col1 >= 3 ; -- 3 이상만에 해당하는 값만 가져와라
📌 자주 쓰이는 연산자 정리
종류 | 기호 | 의미 | 예시 |
---|---|---|---|
비교연산자 | = | 같다 | col = 'dessert' |
! =, <> | 같지 않다 | col <> 'dessert' | |
>, >= | ~보다 크다, ~보다 크거나 같다 | total >= 30000 | |
<, <= | ~보다 작다, ~보다 작거나 같다 | total <= 30000 | |
SQL 연산자 | BETWEEN 'A' AND 'B' | 'A 이상 B 이하' (A, B 포함임) | members BETWEEN 3000 and 4000 |
IN (리스트) | '리스트' 중 어느 값이라도 일치하는 경우 | job in ('analyst', 'marketer') | |
LIKE '비교문자' | 비교문자와 비슷한 경우 | last_name like 'KIM%' → KIM으로 시작하는 글자 | |
IS (NOT) NULL | NULL값인 (아닌) 경우 | col is null | |
논리연산자 | AND | 다수 조건 모두 충족 | category = 'cafe' and d_type = 'coffee' |
OR | 다수 조건 중 하나라도 충족 | category = 'cafe' or d_type = 'coffee' | |
NOT | 조건과 반대인 경우 | month(order_date) not 3 |
⭐주의할점
컬럼명 IS NULL
다음 포스팅으로 group by, having, order by, join, 윈도우 함수 등 차례로 TIL로 정리할 예정이다.
정리하면서 다시 한 번 느끼는 것은 어떤 기술을 배울 때는 학문이 아닌 이상 이론을 깊게 파기보다는 빨리 적용하는 연습을 하는게 훨씬 낫다는 것!