brunch

You can make anything
by writing

C.S.Lewis

by 김유환 Oct 04. 2019

9. 테이블에서 데이터 선택하기

TablePlus를 이용해서 데이터베이스에 저장되어있는 데이터 살펴보기

배경

테이블에 데이터 삽입하기 글데이터 수정 및 삭제하기 글을 통해서 우리는 데이터를 삽입, 수정, 삭제하는 방법에 대해서 알아보았습니다. 이제 데이터베이스 기반으로 데이터분석을 진행하는데 가장 많이 사용하는 데이터를 선택하는 방법에 대해서 살펴보도록 합니다. 여기서 데이터를 선택한다는 의미는 데이터베이스에 저장되어있는 방대한 데이터중에서 우리가 원하는 데이터만을 선택해서 가져온다는 의미입니다.


TablePlus 기본값

테이블에 데이터 삽입하기 글에서 CSV 파일을 기반으로 데이터를 임포트했던 users 테이블을 기억하실 겁니다. TablePlus 좌측 패널에서 users 테이블을 선택하면, 우측 패널에는 users 테이블의 데이터가 보여집니다. 이때 TablePlus는 users 테이블에 저장되어있는 모든 데이터를 가져오는 것일까요? TablePlus는 기본값으로 테이블에 있는 300개의 행을 선택해서 보여주게 되어있습니다. 


전체적인 그림에서는 TablePlus가 300개의 행을 가져오는 과정이 어떻게 진행된 것일까요? 우리가 TablePlus를 열고 원하는 테이블 (예: users)를 선택하면, TablePlus는 DBMS에 해당 선택 요청을 보내게 됩니다. 이 요청은 users 테이블에서 300개 행의 모든 열의 값을 가져오라는 의미를 담고 있습니다. DBMS는 해당 요청을 받고 데이터베이스에서 데이터를 추출해 TablePlus에게 전달하게 됩니다. 이렇게 얻어진 데이터가 TablePlus의 우측 화면에 그려지게 되고, 우리는 그 화면을 보게되는 것입니다.


지금부터는 TablePlus 우측 패널에 존재하는 몇가지 메뉴들을 살펴보면서, 원하는 데이터만을 선택하기 위해 사용할 수 있는 3가지 옵션에 대해서 살펴보고자 합니다. 


LIMIT

데이터베이스에 데이터를 저장해놓고 조금만 시간이 지나도 각 테이블에 어떤 데이터가 저장되어있는지 잊어버리게됩니다. 데이터분석을 진행하기 위해서 컴퓨터에 앉을때마다, 가장 먼저 하는 작업은 각 테이블이 어떤 데이터를 가지고 있는지 확인하는 작업일 것 입니다.


이런 상황이 올때마다 테이블에 있는 모든 데이터를 가져올 필요는 없습니다. 샘플값으로 10개 혹은 100개 정도의 데이터만 살펴보더라도 어떤 종류의 데이터가 테이블에 저장되어있는지, 이 데이터를 가지고 어떤 분석을 진행해서 원하는 분석 결과값을 뽑을지 알 수 있습니다. 게다가, 테이블에 들어있는 데이터가 아주 많다면, 이 데이터를 가져와서 화면에 뿌려주는 작업 역시 비용이 발생하게 됩니다. 스프레드시트로 너무 큰 데이터를 관리하게 되면, 컴퓨터가 엄청 느려지는 이유가 바로 이 비용 때문입니다.

데이터베이스는 이러한 상황을 방지하기 위해서 몇개의 데이터를 추출하고 싶은지 제한할 수 있는 기능을 제공하고 있습니다. TablePlus는 이 기능을 기어 아이콘(우측 그림 참고)을 통해 제공하고 있습니다. 우측 그림과 같이 Limit 버튼을 클릭하면 300이라는 숫자가 적혀있는 팝업 메뉴를 볼 수 있을 것입니다. 이 300이 바로 TablePlus에서 데이터를 가져올때 기본으로 적용하는 행 숫자의 제한값입니다. 한번 원하는 숫자만큼 조정해서 데이터를 가져와보세요. 숫자를 5로 변경하면, TablePlus가 가져오는 행의 갯수가 5개로 바뀌는 것을 확인하실 수 있을 겁니다.



여기서 다시 한번 강조하고 싶은 부분은 Limit 값을 50으로 변경했을때 일어나는 일입니다. 위에서 설명드렸듯이, Limit 옵션은 데이터베이스의 기능으로 DBMS가 저장소에서 데이터를 가져올때부터 데이터 갯수를 제한하는 옵션입니다. DBMS가 1000개의 데이터를 TablePlus에 넘기고, TablePlus는 그 중에 50개만 보여주는 방식이 아니라는 의미입니다. 여러분이 50으로 숫자를 변경하고 Go 버튼을 누르면, TablePlus는 다시 한번 DBMS에게 50개만 추출해달라는 요청을 보냅니다. DBMS는 저장소에서 50개의 데이터만 가져와서 TablePlus에게 전달하고 여러분은 이 과정을 통해서 가져와진 데이터를 화면에서 보게 되는 것입니다.


COLUMN

Column은 테이블을 만들때 설정했던 열을 의미합니다. 데이터분석을 위해 데이터를 선택하는 과정에서 항상 테이블에 저장되어있는 모든 열의 정보가 필요한 것은 아닙니다. 예를 들어, 사용자 정보 테이블에 저장되어있는 주민번호는 필요하지 않고, 이름과 성별 정보만 가져오고 싶은 경우가 있을 것입니다. 데이터베이스는 데이터를 선택하는 과정에서 모든 열을 가져올지 아니면 일부 열만 선택해서 가져올지 결정할 수 있는 기능을 제공하고 있습니다.

TablePlus의 기본 설정값은 모든 열을 가져오도록 설정되어있습니다. 이 때문에, 여러분이 왼쪽 패널에서 users 테이블을 선택하게 되면, 우측에 users 테이블이 가지고 있는 모든 열의 정보가 보이는 것입니다. 우측 그림과 같이, TablePlus는 이 선택값을 변경하는 옵션을 Columns라는 버튼을 통해 제공하고 있습니다. 이 버튼을 누르면 기본 값으로 모든 Column이 선택되어있는 것을 확인 할 수 있습니다. 위에 있는 메뉴를 클릭해서 원하는 열인 이름(name)과 성별(gender)을 선택해보세요. 선택이후 Apply 버튼까지 클릭하면, 화면에 이름과 성별만 정보만 선택되어 보이는 것을 확인할 수 있을 것입니다.


여기에서도 Limit 에서 설명했던과 동일한 과정이 적용됩니다. Columns를 선택한것이 전체 모든 열의 정보를 가져온 이후 TablePlus에서 이름과 성별만 보여주는 것이 아닙니다. 애초에 TablePlus가 DBMS에 요청을 보낼때 성별과 이름만 가져오도록 부탁하고, DBMS 역시 저장소에서 데이터를 선택해서 추출할때 이름과 성별 정보만을 가져오는 과정이 일어납니다.


FILTER

마지막으로 살펴볼 기능은 필터 기능입니다. Column이나 Limit도 필터라고 생각하실 수 있지만, TablePlus의 Filter는 특정 행을 선택할 수 있는 조건을 만드는 기능입니다. 예를 들어, 사용자 중 여자 사용자만 선택해서 보고 싶은 경우가 있을 것입니다. 또는, 여자 사용자 중에서도 나이가 30세 미만인 사용자를 선택해서 보고 싶을 수 있습니다. 이 경우에는 Column이나 Limit 기능으로는 원하는 데이터를 추출하는 것이 불가능합니다. 바로 이때, 필터를 사용하면 됩니다.

이제 TablePlus를 이용해서 여자(female) 사용자만 선택하는 필터를 만들어 봅시다. 아래 그림을 참고하시면서 차근차근 따라해 보세요.  TablePlus 화면 중간에 보면 Filters 라는 버튼이 있습니다. 이 버튼을 누르면, 화면 위쪽에 새로운 메뉴가 보이게 됩니다. 가장 왼쪽에 Raw SQL 이라고 설정되어있는 부분을 클릭하고, 필터하고 싶은 열인 gender 를 선택합니다. 열을 선택하면 바로 오른쪽에 조건이 추가되는데, 이를 통해 상세한 필터를 설정할 수 있습니다. 우리는 여자만 필터하고 싶으므로, contains를 = 로 변경하고 오른쪽 패턴에 female이라고 적습니다. 이후 가장 우측에 있는 apply 버튼을 누르면 필터가 적용되는 것을 확인할 수 있습니다.





여자 사용자만 나오도록 잘 필터가 적용되었나요? 여자 사용자 필터에 나이 필터도 추가해보도록 합시다. Apply 우측에 있는 + 버튼을 클릭하면, 또 다른 필터가 생기게 됩니다. 새롭게 만들어진 필터를 나이가 30세 미만의 사용자만 선택하도록 설정해봅시다. 열을 age로 만들고, =로 되어있던 조건을 < 로 선택하면 됩니다. 마지막으로, 오른쪽 값에 30을 입력해줍니다. 이제 Apply All 버튼을 눌르면, 성별과 나이 두개의 필터 모두가 적용된 것을 확인할 수 있습니다. 참고로, Apply All 이 아닌 Apply 버튼만 누르면 해당 필터 조건만 적용됩니다 :)


위에서 컬럼 작업을 진행하면서 이름(name)과 성별(gender)만 선택하도록 되어있어서, 나이 필터가 잘 적용되었는지 확인할 수 없습니다. Columns 메뉴를 이용해서 나이(age) 열도 추가해보세요!


마치며

오늘 글을 통해 원하는 데이터만 뽑아 볼 수 있는 방법에 대해서 알아보았습니다. 오늘 글까지 포함해서 테이블을 만들고, 데이터를 삽입, 수정, 삭제하며 최종적으로 원하는 데이터를 선택하는데까지 다뤄보았습니다. 이처럼 데이터를 간단하게 탐색하고 수정하는 작업은 TablePlus의 GUI 작업창을 통해 쉽게 진행할 수 있습니다.


하지만, 본격적인 데이터 분석이라고 할 수 있는 통계값을 구하거나 그룹지어 데이터를 살펴보는 작업은 GUI 로 진행하는 것이 한계가 있습니다. 이런 작업들은 직접 SQL 을 작성해서 진행하는 것이 훨씬 간편합니다. 다음 글에서는 본격적으로 SQL 을 배우기에 앞서, 마지막으로 배우는 데이터베이스 핵심 개념인 기본 키에 대해서 다루고자 합니다.

브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari