2021-03-02 08:52:05

MLB의 데이터를 담고 있는 데이터베이스에는 여러 종류가 있는데, 그중에서 레먼 데이터베이스(Lahman database)와 레트로시트(Restrosheet)가 유명합니다. 저는 오늘 레먼 데이터베이스를 사용해보려고 합니다.

 

레먼 데이터베이스의 경우 매년 새롭게 갱신해서 데이터를 제공합니다. 그중에서 2019년까지의 기록을 담고 있는 데이터베이스의 경우 sqlite 형태로도 데이터를 제공하기에, 다운로드 받아서 실행해봤습니다. 

 

 

먼저 sqlite3 프로그램을 실행한 다음에 레먼 데이터베이스를 열겠습니다. 

 

sqlite> .open lahmansbaseballdb.sqlite

 

 

데이터베이스 내에 어떤 테이블들이 있는지 보겠습니다. 

 

sqlite> .tables

 

 

batting 타자, pitching 투수, salaries 연봉 등 다양한 테이블이 있습니다.

 

류현진 선수 기록 읽기

저는 투수 테이블에서 류현진 선수의 기록을 한 번 살펴보겠습니다. 참고로 류현진 선수의 ID는 ryuhy01입니다. 

 

sqlite> select * from pitching where playerID == 'ryuhy01';

 

 

무언가 데이터가 읽히긴 했는데 각 열이 무엇을 나타내는지 잘 알아보기가 어렵습니다. 그래서 .header on과 .mode column으로 좀 더 깔끔하게 출력되게 해보겠습니다. 

 

sqlite> .header on

sqlite> .mode column

sqlite> select * from pitching where playerID == 'ryuhy01';

 

 

이렇게 해주니 잘 정돈된 결과를 볼 수 있게 되었습니다. 류현진 선수의 경우 기록으로 봤을 때 2019년이 커리어하이 시즌이었던 것 같습니다. 우선 ERA가 2.32로 매우 낮았고, 548개의 아웃카운트(IPouts)도 만들어냈습니다. 물론 ERA만 보면 2018년이 가장 좋았지만, 상대적으로 훨씬 적은 이닝을 던졌습니다. 2019년은 삼진(SO)도 163개로 가장 많이 잡은 해였고, 반면 볼넷(BB)은 24개로 아주 적게 내줬습니다. 또한 승리는 14번을 거뒀고, 5번의 패를 기록했습니다. 이런 성적 덕분에 좋은 대우(4년 약 930억)를 받고 토론토 블루제이스로 이적하게 된 것입니다.

 

류현진 선수가 2013년부터 2019년까지 거둔 총 승수는 sum 함수를 사용해서 다음과 같이 읽어낼 수 있습니다. 

 

sqlite> select sum(W) from pitching where playerID == 'ryuhy01';

 

 

54승을 거두었군요. 메이저리그에서 54승이라니 정말 대단합니다. 박찬호 선수는 총 몇 승을 거뒀는지 갑자기 궁금해지네요. 박찬호선수의 아이디는 park01입니다.  

 

sqlite> select sum(W) from pitching where playerID == 'parkch01';

 

 

124승이군요. 다시봐도 놀랍습니다. 과연 류현진 선수가 박찬호 선수의 기록을 깰 수 있을지 궁금해집니다. 류현진 선수의 나이(87년생)를 감안한다면 쉽지 않아보이지만 류현진 선수가 앞으로 15승을 4시즌 이상 거둔다면 또 모르죠. 

 

오늘은 간단하게 류현진 선수와 박찬호 선수의 데이터만 읽어봤습니다. 앞으로는 이 레먼 데이터베이스를 가지고 다양한 분석을 시도해보려고 합니다. 

 

bskyvision의 추천글

[sqlite3] 기본 명령어 및 create, read, update, delete 하는 법 정리  

[sqlite3] 행 갯수 카운트하기