데이터베이스 테이블에 CSV 데이터 임포트해보기
지난 시간에는 TablePlus 를 이용해서 테이블을 만들어 보았습니다. 오늘은 지난 시간에 만든 테이블에 실제 데이터를 추가해보는 시간을 가지도록 하겠습니다. 스프레드시트 기반 업무의 문제 글에서 데이터베이스는 여러 사람이 동시에 하나의 행을 수정하지 못하게 함으로써, 데이터의 무결성을 유지한다고 이야기했습니다. 다시 말해, DBMS 에 데이터 추가 요청을 보낼 때, 열 하나 하나 데이터를 입력해서 전달하는 것이 아니라, 하나의 행 전체 데이터를 전달합니다. TablePlus 에서 데이터를 추가할때도 완전한 하나의 열 정보를 입력한 후 DBMS 에 전달하도록 하겠습니다.
TablePlus에서 정보를 입력후 DBMS에 전달하기 위해서 저장하는 단계를 Commit (커밋) 이라고 부릅니다. 맥에서 단축키는 Command + S이며, 윈도우에서 단축키는 Ctrl + S 입니다. 앞으로 이 작업을 간단히 커밋이라고 부르도록 하겠습니다.
TablePlus에서 지난 시간에 만들었던 users 테이블을 열어보도록 합시다. 좌측 패널에서 해당 테이블을 클릭하면 됩니다. 우측 패널에 중간에 보면 data와 structure 2개의 버튼이 있을 것입니다. structure를 누르면 테이블 생성시 설정했던, 테이블 구조를 보여주게 됩니다. 반대로, data를 클릭하면 현재 선택한 테이블의 데이터 중 일부를 보여주게 됩니다. 우리는 데이터를 추가할 예정이기 때문에, data 탭을 클릭해 아래와 같은 화면을 보도록 선택해주세요.
화면에 들어가게 되면, 방금 data 버튼을 클릭한 우측에 +row 버튼이 보이게 됩니다. 이 버튼을 눌러서 행을 추가할 수 있습니다. 한번 클릭하면, 우측 그림과 같이 처음 우리가 테이블을 만들때와 비슷하게 화면에 초록색으로 하이라이트된 하나의 행이 추가되는 것을 볼 수 있습니다. 이 안에 원하는 데이터를 넣고 커밋하면 TablePlus가 DBMS에 데이터 삽입 요청을 보내게 됩니다.
DBMS에 데이터 삽입 요청을 보낼 때, 한번에 여러 행의 데이터 추가를 요청할 수 있습니다. 연습으로 아래와 같은 3명의 사용자 정보를 추가해 보도록 합시다. 마지막에 커밋하는 걸 잊지 마세요.
다음 주제인 데이터 임포트를 다루기 전에 기본 지식인 CSV 에 대해 알아보는 시간을 가져보도록 합시다. CSV는 Comma Separated Values 의 약자로 번역하면 쉼표로 분리된 값이라는 뜻입니다. 메모장을 열어 회원 관리 정보를 입력한다고 가정합시다. 이때 아래와 같이 쉼표로 값을 구분해서 저장하면 CSV 파일이라고 할 수 있습니다.
이 파일을 컴퓨터가 읽을 때, 각 행을 쉼표로 나누고 이를 열로 처리하게 되면 일종의 테이블 형태로 처리할 수 있습니다. 엑셀 프로그램 역시 csv 파일을 읽고 csv 파일 형태로 저장하는것을 지원하고 있습니다. 우리가 평소에 엑셀 파일을 저장할때는 .xlsx 확장자로 저장하는 경우가 많습니다. 엑셀에서 지원하는 필터기능이나 그래프 기능을 파일에 저장하고 싶을때 .xlsx를 사용하고 있습니다. 순수하게 테이블에 그려진 데이터만을 저장하는것은 .csv 파일로 저장하면 됩니다.
아래 csv 파일은 여러명의 사용자 정보를 CSV 형태로 저장해 둔 파일입니다. 엑셀 프로그램이 있다면, 다운받아서 실행해보세요. csv 확장자인데도 엑셀에서 테이블 형태로 데이터가 보일 것 입니다.
기존에 엑셀 파일로 있던 데이터를 데이터베이스에 이동해서 추가해야하는 경우에는 어떻게 해야할까요? 물론, 하나씩 손으로 입력해서 데이터베이스에 추가할 수 있겠지만, 이렇게 하는 것은 너무 많은 비용과 시간이 발생합니다. TablePlus 는 기존 CSV 데이터를 불러와서 DBMS에 바로 추가하는 것을 지원하고 있습니다. 이를 데이터 임포트(import) 라고 부르며, 반대로 데이터베이스의 정보를 CSV 파일에 저장하는 익스포트 (export) 기능도 지원하고 있습니다. 위에서 다운 받은 데이터를 임포트 기능을 활용해서 데이터베이스에 추가해보도록 합시다.
상태창 좌측의 파일 메뉴를 클릭하면 Import 옵션이 있는 것을 확인할 수 있습니다. 이를 클릭하고, From CSV 옵션을 클릭한 후 다운받아 두었던 csv 파일을 선택합니다. 임포트하고자 하는 테이블에 users를 선택하면, 오른쪽 그림처럼 TablePlus는 자동으로 어떤 열이 어디에 들어갈지 매칭을 진행합니다. 이렇게 되는 이유는 csv 파일 첫줄에 열의 이름을 입력해두었기 때문에, 이를 기반으로 한 것입니다.
이제 Import 버튼을 누르면 삽입이 진행됩니다. 한번 진행해보도록 하세요 :) 임포트가 완료되면, Command + R 혹은 Ctrl + R을 눌러 리프레시를 진행해주세요. 최종적으로 데이터가 삽입된 것을 확인할 수 있습니다.
오늘은 TablePlus를 이용해서 테이블에 데이터를 직접 삽입해 보았습니다. 주어진 예제 이외에도 다양한 데이터를 삽입해보고 에러도 겪어 보시기를 권장합니다. 다음 글에서는 삽입한 데이터를 수정하고 삭제하는 방법에 대해서 다뤄보도록 하겠습니다.