류나의 갓생살기

20대의 마지막을 갓생으로 장식하기

Data Science/SQL

모두의 SQL: 후기

Ryuna (류준범) 2020. 7. 19. 19:18
지난 6월 6일에 쓰인 글입니다. 블로그를 옮기면서 내용을 보강해 작성합니다.

제가 SQL과 처음 만난 것은 작년 11월, 포켓몬 계산기를 만들던 때였습니다. 당시에는 워드프레스의 (ACF과 같은) 다양한 플러그인의 존재를 몰랐기 때문에 포켓몬의 데이터를 직접 데이터베이스를 만들어서 집어넣었습니다. 그랬기 때문에 데이터를 조회하여 웹에 표시하는 데 SQL이 필요했고, 짧은 기간 동안 MySQL의 쿼리 문법을 공부했었습니다. 그러다가 ACF의 존재를 알고 계산기를 개편하면서 더 이상 SQL을 웹에서 사용할 일은 없어졌습니다.

대신, 데이터 분석에 대해 알면 알수록 SQL의 필요성이 느껴지게 되었습니다. 실무에서는 대부분의 데이터가 DB에 저장되어 있을 것이고, 거기서 데이터를 조회하는 것만 해도 SQL이 필요하니 ‘데이터 분석에서 SQL만 잘해도 반은 간다’는 말까지 나오는 것 같습니다. 그래서 이번 기회에 제대로 공부해 봐야겠다는 생각이 들었고 책을 하나 사서 보게 되었습니다.

 

지난 몇 일 동안 <모두의 SQL>을 공부했습니다. SQL을 공부하는 데 이 책을 선택한 이유는 가격이 싸고, 분량도 많지 않기 때문에 빠르게 끝낼 수 있을 것 같아서입니다.

책의 구성

1장에서는 관계형 데이터베이스의 개념과 SQL이 무엇인지에 대해 설명합니다.

2장에서는 실습에 필요한 Oracle Database Express, Oracle SQL Developer 소프트웨어 설치 방법을 다루는데, 저는 맥 환경이라 Oracle Live SQL로 온라인에서 실습했습니다.

3장에서는 본격적으로 SQL 문법을 다룹니다. SELECT 문의 기본을 배웁니다.

4장에서는 NVL, DECODE 같은 단일 행 함수나 SUM, MAX, MIN 같은 그룹 함수를 다룹니다.

5장에서는 ERD를 다루는데, 문법과 관련된 내용은 아니지만 관계도를 읽을 줄 아는 것은 꽤 중요해 보여서 정독했습니다.

6장에서는 가장 어렵다고 손꼽히는(?) JOIN을 다룹니다. 굉장히 빠르게 넘어가기 때문에 초심자라면 조금 부족하다고 느낄 수도 있겠네요.

7장에서는 서브쿼리를 다룹니다. SELECT 안에 SELECT를 중첩해서 사용하는 법을 알려줍니다.

 

여기까지가 데이터 조회에 관련된 내용이고 이후부터는 데이터베이스를 조작하는 것과 관련되어 있습니다. 데이터 분석을 위해 SQL을 공부하시는 분이라면 7장까지를 중점적으로 보시면 좋을 것 같습니다.

8장에서는 INSERT, UPDATE, DELETE를 다룹니다.

9장에서는 데이터베이스 운영의 기본 규칙인 데이터 무결성, 그리고 트랜잭션을 다룹니다.

10장에서는 CREATE, ALTER, TRUNCATE, DROP을 다룹니다.

11장에서는 뷰, 옵티마이저, 인덱스 개념을 다룹니다.

마지막인 12장은 실무 실습으로, 패밀리 레스토랑의 신규 제품 매출을 분석하는 내용입니다. 매출 데이터와 인구 통계를 분석하는 작업을 직접 해보면서 손으로 익힐 수 있습니다.

후기

빠르게 읽을 수 있도록 구성되어 있고, 예제도 적절해서 초심자들이 무리 없이 배울 수 있을 것 같습니다. 다만 연습문제가 없기 때문에 연습이 필요한 분들은 다른 책이나 컨텐츠를 함께 보시는 것이 좋겠습니다.

저는 프로그래머스의 SQL 문제를 풀어보면서 추가적인 학습을 하려고 합니다.

'Data Science > SQL' 카테고리의 다른 글

[HackerRank] SQL - Weather Observation Station 3  (0) 2020.08.03
프로그래머스 SQL 고득점 Kit  (0) 2020.07.19