LumoMate
LumoMate/용어집/SedimentData

SQL

SQL(Structured Query Language)은 관계형 데이터베이스에서 데이터를 조회·삽입·수정·삭제하는 표준 언어입니다. 'SELECT ... FROM ... WHERE ...' 구문이 그 시작입니다.
SQL의 개념을 표현한 편집형 일러스트.

쉬운 설명

관계형 DB(MySQL·PostgreSQL·SQL Server 등)는 데이터를 표(table) 단위로 저장합니다. 표에서 무엇을 어떻게 가져올지 적는 언어가 SQL입니다. '어디서, 어떤 조건으로, 어떤 컬럼을, 어떻게 정렬해서'를 영어 비슷한 문법으로 적습니다.

SQL이 강력한 이유는 두 가지입니다. ① 선언적 — '어떻게 가져올지'가 아니라 '무엇을 가져올지'만 적으면 DB가 알아서 최적의 방법을 정합니다. ② 표끼리 연결(JOIN)할 수 있다 — 사용자 표와 주문 표를 user_id로 이어 '이 사용자의 마지막 주문이 무엇이었나'를 한 쿼리로 답할 수 있습니다. 비슷한 작업을 다른 언어로 짜려면 코드가 훨씬 길어집니다.

기본 구성요소는 다음과 같습니다. SELECT(가져올 컬럼), FROM(원본 표), WHERE(조건), GROUP BY(묶기), HAVING(묶은 결과의 조건), ORDER BY(정렬), LIMIT(개수 제한), JOIN(표 연결). 이 일곱 단어만 익혀도 실무 SQL의 80%를 다룰 수 있습니다.

SQL은 50년 가까운 표준 언어이고, 데이터 분야 거의 모든 도구가 어떤 형태로든 SQL을 지원합니다. PostgreSQL·MySQL 같은 운영 DB뿐 아니라, BigQuery·Snowflake·Redshift 같은 클라우드 분석 웨어하우스, ClickHouse·Trino 같은 OLAP 엔진, 심지어 Spark·pandas에서도 SQL 비슷한 인터페이스를 제공합니다.

데이터 분석가·엔지니어·BI 사용자에게 '한 가지 언어를 잘 알아야 한다면 SQL'이라고 자주 권합니다. 한 번 익히면 새 도구로 옮겨가도 80% 이상이 그대로 통하기 때문입니다. 단점도 있습니다 — 같은 결과를 내는 쿼리도 작성 방법에 따라 성능이 100배 이상 차이 날 수 있어, '쿼리 플랜'을 읽는 감각이 깊은 SQL 사용자의 영역입니다.

SQL의 개념을 본문 안에서 다른 각도로 비춰 보는 편집형 일러스트.
FIG. 1SQL을 다른 각도에서 다시 봅니다.

비유로 보면

SQL은 도서관에 가서 사서에게 카드 한 장 건네는 일과 비슷합니다. '20세기 초 한국 시집, 작가 알파벳 순, 10권만'이라고 적으면 사서가 알아서 서가를 뒤져 가져옵니다. 어느 책장에서 어떻게 찾을지는 사서의 몫이고, 우리는 무엇을 원하는지만 명확히 적으면 됩니다.

어디에서 만나나

모든 관계형 DB(운영·분석), 클라우드 데이터 웨어하우스(BigQuery·Snowflake), BI 도구(Tableau·Looker·메타베이스), 데이터 파이프라인 도구(dbt가 SQL 위에서 동작), 일부 검색 엔진과 그래프 DB까지 — SQL의 영향력은 데이터 세계 전체에 걸쳐 있습니다.

작은 예시

쇼핑몰 운영자가 '지난주 매출 상위 10개 상품'을 보려면 SQL 한 줄이면 됩니다: SELECT product_id, SUM(amount) FROM orders WHERE created_at >= now() - interval '7 days' GROUP BY product_id ORDER BY 2 DESC LIMIT 10. 같은 일을 코드로 짜면 훨씬 길어집니다.

자주 하는 오해

오해
흔한 오해 셋. ① 'SQL은 옛날 기술' — 50년 됐지만 여전히 표준입니다. ② 'NoSQL이 SQL을 대체한다' — 둘은 다른 도구이고 같이 쓰는 경우가 많습니다. ③ 'SQL은 쉽다' — 기본 문법은 쉽지만 성능 좋은 SQL을 쓰는 일은 평생 익히는 기술입니다.

한 줄 정리

SQL은 '데이터를 다루는 공용어'입니다. 한 번 깊이 익히면 도구를 갈아탈 때마다 다시 배울 필요 없이 그대로 쓸 수 있습니다.
매주 월요일 오전 8시

한 주에 한 통,
오래 남는 이해를 보냅니다.

흘려보내지 않는 글만 골라 보내드립니다. 광고와 추적, 외부로 빠지는 미끼 링크 없이 메일 안에서 끝나는 한 통입니다.

언제든 한 번의 클릭으로 해지할 수 있습니다. 스팸은 보내지 않습니다.