본문 바로가기

SQL 기초

SQL 왜 필요한가

※ 데이터베이스나 SQL전문가가 아닌 데이터분석을 위한 실무자 입장에서 본 글을 작성하였음을 미리 알립니다.

 

 R을 소개하면서 여러 가지 프로그래밍 언어들에 대해 언급한 적이 있다. 그중에 하나가 SQL이다.

https://double-d.tistory.com/5

 

R? 데이터 분석을 위해 선택할 언어

R이란? 국립중앙과학관에서 정의하고 있는 R은 다음과 같다. R은 오픈소스 프로그램으로 통계/데이터 마이닝 및 그래프를 위한 언어이다. R은 주로 연구 및 산업별 응용 프로그램으로 많이 사용

double-d.tistory.com

 

SQL (Structured Query Language) - 시퀄 

데이터 분석을 위해 SQL을 알아두면 매우 유용하다. 대부분의 회사에서 데이터베이스를 운용하고 있는데, 데이터 베이스는 SQL을 통해 관리된다. 고객 정보, 매출 정보, 공급사, 재고, 등등 얽혀있는 많은 데이터가 실시간으로 입출력되어야 하는데, 가장 효과적으로 관리할 수 있게 해 주는 게 SQL이다. 참고로 얽혀있는 데이터들을 관계형 데이터베이스(Related Database)라고 하고 회사들이 구축하고 있는 데이터베이스는 관계형 데이터베이스 관리 시스템(RDBMS)이라고 한다. 

 

규모가 큰 회사의 경우, IT 부서만 데이터에 직접 접근할 수 있게 하고, 별도의 인터페이스를 통해 일반 직원들이 열람할 수 있게 한다. 그게 아니면 별도의 요청을 통해서 원하는 데이터를 받는다. 회사의 규모가 작거나 정책 상 데이터베이스를 일반 직원들도 열람권한만 갖게 열어두고 있다면, 직접 SQL을 할 수 있어야 한다.

 

SQL은 엑셀에 비해서 많은 양의 데이터를 더 빠르게 처리할 수 있다. 행의 수가 10만이 넘어가는 순간 버벅거리는 엑셀과는 비교도 할 수 없다. 엑셀에만 익숙해져 있는 사람이라면 SQL이 낯설겠지만, 기회가 된다면 관심이 있는 사람은 누구든지 시도해보길 권한다. SQL 언어 자체가 어렵지 않고 직관적이기 때문에 간단한 쿼리는 1~2시간만 배워도 만들어 낼 수 있다. 

 

쿼리(Query)는 무엇인가

데이터베이스에 추가/수정/추출하는 명령들을 넣어줘야 하는데, 그 명령이 적혀있는게 쿼리이고, 명령 자체가 쿼리이다. 즉, SQL 코딩한걸 쿼리라고 보면 된다. 데이터베이스를 관리하는 업무가 아니라, 데이터를 분석하는 입장에서는 데이터 추출을 하는 쿼리가 필요하다. 추출을 할 수 있는 기본기만 갖추면 엉성한 형태의 데이터라 하더라도 다른 툴을 통해 잘 다듬을 수 있으니, 조금씩 익숙해져 가는 게 필요하다. 

 

 

SQL 종류

정확하게는 SQL의 종류가 아니라 관계형데이터베이스 시스템의 종류에 따른 SQL 언어의 종류에 대해 알아보자. 각 시스템을 개발한 단체/업체의 종류에 따라 쿼리의 문법이 약간씩 다르다. 이렇게 다른 문법을 따르는 각각을 Dialect(사투리)라고 하는데, 큰 틀에서는 차이가 없으나 한 문법에 익숙해지면 다른 문법은 거슬리는 편임을 미리 알아두자.

 

  • MySQL
  • MS SQL Server
  • Oracle
  • 기타 등등

 

MySQL은 MySQL SQL Editor, MS SQL Server는 MS SQL Server Management Studio 등 각각을 위한 쿼리 편집기 (Editor)가 다르다. 그 외에도 범용으로 사용할 수 있는 무료 편집기들이 많이 있으나, 안정성 및 정확도가 떨어지는 편이다. 한 예로, 가장 많이 쓰이는 무료 버전 범용 편집기인 DBeaver는 추출했을 때 누락되는 데이터가 많기도 하고, 업데이트되는 버전마다 불안정하여 기능의 일부가 작동하지 않는 경우도 빈번하다.

 

데이터 관리자가 아닌 데이터 분석가로서 추출을 위한 작업을 위주로 해왔기 때문에, 어떤 SQL이 더 나은지 모르겠다. 다만, MS SQL을 우연히 배우게 되었기에 앞으로의 글들은 MS SQL의 문법인 Transact-SQL (T-SQL)로 작성하겠다. MS에서 제공하는 MS SQL Server Management Studio도 무료로 다운로드 받을 수 있다. 

 

데이터 이해의 중요성

사실 앞서 말한 '기본적' 수준의 데이터를 뽑는데는 많은 시간이 필요하지 않다. 조금 더 배워서 고급 문법 및 속도 최적화를 위한 기술까지 배울 수 있지만, 그보다 더 중요한 게 있다. 데이터 자체에 대한 이해이다. 그리고 데이터베이스가 어떤 데이터들로 구성되어 있는지, 각 항목의 성격은 어떤지, 원하는 데이터를 얻기 위해 어떤 테이블들을 조합해야 하는지 등에 대한 이해가 있어야 한다. 데이터를 뽑는 것이 데이터 분석의 시작인데, 본인이 다룰 데이터에 대한 이해가 없다면 시작부터 잘못할 수 있다.