요즘IT
위시켓
최근 검색어
전체 삭제
최근 검색어가 없습니다.

앞선 글에서는 RDB 방식의 데이터베이스(DB)와 SQL이 일반 사무직으로서 우리가 접하는 엑셀(Excel)과 크게 다르지 않은 걸 살펴보았다. 이번 글에서는 데이터를 조회 및 추출하기 위해 사용하는 SQL의 주요 구문과 노하우를 우리에게 친숙한 엑셀에 비유해 설명하고자 한다.

회원가입을 하면 원하는 문장을
저장할 수 있어요!

다음

회원가입을 하면
성장에 도움이 되는 콘텐츠를
스크랩할 수 있어요!

확인

기획

비개발자를 위한 엑셀로 이해하는 SQL: ② FROM과 SELECT

년차,
어떤 스킬
,
어떤 직무
독자들이 봤을까요?
어떤 독자들이 봤는지 궁금하다면?
로그인

 

앞선 글에서는 RDB 방식의 데이터베이스(DB)와 SQL이 일반 사무직으로서 우리가 접하는 엑셀(Excel)과 크게 다르지 않은 걸 살펴보았다. 이번 글에서는 데이터를 조회 및 추출하기 위해 사용하는 SQL의 주요 구문과 노하우를 우리에게 친숙한 엑셀에 비유해 설명하고자 한다.

 

1. 어느 시트/표의 자료를 볼 것인지 정해주는 FROM

우리가 엑셀에서 어떤 데이터를 보기로 한다고 가정해보자. 그럼 우리는 조직에서 관리하는 수많은 엑셀 파일 중에서도 필요한 데이터가 있는 파일, 특히 그중에서도 필요한 데이터가 있는 시트와 표를 열어볼 것이다. 이와 마찬가지로 FROM은 바로 DB에 존재하는 수많은 테이블 중 어떤 테이블의 자료를 조회하고자 하는지 지정해주는 명령어다.

 

FROM 테이블명 “수많은 테이블 중에서 이 테이블에 있는 자료를 확인할 거야”

 

from 테이블명
엑셀로 이해하는 SQL의 FROM 명령어 <출처: 본인>

 

사례1) 우리 회사의 데이터베이스에는 어떤 테이블이 있고, 테이블 안에는 무슨 값이 있는지 어떻게 알 수 있을까?

일하다 보면 우리 자신도 어떤 곳에 어떤 엑셀 파일을 저장했는지, 그리고 그 엑셀 파일 안에 어떤 내용을 기록했는지 일일이 기억하기가 어렵다. 때로는 컴퓨터 폴더부터 드라이브까지 곳곳을 뒤져봐야 ‘아~이런 엑셀 파일이 있었구나!’ 깨닫기도 한다. 더욱이 그 안의 내용은 열어봐야만 알 수 있다.

 

다행히 데이터베이스와 이 안의 테이블들은 이렇게 일일이 찾아다니고 또 열어보지 않아도 된다. 보통의 경우라면 ERD 또는 이에 준하는 문서를 기록하여 관리하기 때문이다. ERD에 대한 자세한 설명은 기술을 중심으로 설명하는 자료에 맡기고, 비개발자, 비데이터 직군 입장에서 이해해야 할 ERD란 아래와 같다.

 

(1) 회사의 데이터베이스에 어떤 테이블들이 있는지, 그 테이블의 명칭은 무엇인지 나열한다.

(2) 각 테이블 안에는 어떤 열(Column)이 있고 그 열 안에 기록해둔 값의 유형이 무엇인지 표기한다. 가령 '가격'이란 열 이 있고, 이게 정수형 숫자(Integer)임을 표기해 둔다.

(3) 그 테이블 사이에 서로 어떤 관계가 있는지 표기한다. 예를 들어, ‘이 테이블과 저 테이블을 함께 참고할 수 있다’는 식의 표기를 한다.

(4) 조금 더 구체적으로 어떤 열을 기준으로 두 테이블이 서로 관계가 있고, 그 관계가 어떤 관계인지도 표기한다. 예를 들어, '상품 리스트'라는 테이블의 '상품번호'라는 값과, '판매 내역'이라는 테이블의 '판매된 상품번호'가 관계가 있고, 이는 1:N의 관계임을 표기한다.

 

 

2. 테이블의 데이터를 조회하게 해주는 SELECT

우리가 필요한 정보를 확인하기 위해 특정 엑셀 시트를 열었다고 가정해보자. 이전부터 기록해둔 정보가 있고 거기에 '열 숨김' 등의 별도의 조치를 한 게 없다면, 기본적으로는 ‘모든’ 열이 보일 것이다.

 

그런데 우리가 평소에 데이터를 취급하다 보면 어떤 때는 시트에 기록해둔 특정 열을 그다지 조회하거나 사용할 필요가 없기도 하다. 예컨대 상품 재고에서 우리가 취급 중인 상품의 종류만 확인하고 싶으면, 상품명과 상품 종류만 살펴보고, 상품별 기타 특징, 가격, 입고일 등은 필요하지 않을 것이다.

 

그래서 이럴 때는 ‘열 숨기기’를 통해 해당 열을 잠시 가려두기도 하고, 아니면 나머지 필요한 열만 골라 복사하여 다른 시트에 붙여 넣어 편집과 분석을 한다. 이처럼 테이블에서 내가 보고자 하는 열이 무엇인지 선택하는 명령어가 바로 SELECT다.

 

SELECT * “테이블에 있는 모든 열을 보여줘”

SELECT 열1 “테이블에 있는 열 중에서 열1만 보여줘”

SELECT 열1, 열2 “테이블에 있는 열 중에서 열1, 열2를 보여줘”

 

테이블 조회
엑셀로 이해하는 SQL의 SELECT 명령어 <출처: 본인>

 

sql select
엑셀로 이해하는 SQL의 SELECT 명령어 <출처: 본인>

 

사례2) SELECT로 불러온 열에는 사칙연산, 함수 등의 적용이 가능하다

우리가 실무에서 데이터를 조회할 때, '있는 그대로, 곧이곧대로' 불러와서 사용할까? 때로는 사칙연산을 적용하기도 하고, 때로는 서식을 바꾸거나, 각종 함수를 적용하기도 한다.

 

마찬가지로 SQL에서 SELECT를 통해 불러온 열의 값에도 사칙연산, 함수 등의 적용이 가능하다. 이를 통해 값을 변경하고, 서식을 바꾸고, 이 외에 필요한 형태로 가공할 수 있다. (적용할 수 있는 다양한 함수는 이후 글에서 한 번 더 자세히 살펴보겠다)

 

다만 이때 특이사항이 몇 가지 있는데,

(1) 엑셀처럼 글자 색깔, 굵기, 배경색 적용하고 그런 건 당연히 없다.

(2) 우리는 지금 SELECT, 즉 ‘조회’를 하고 있다. 다시 말해 SELECT로 불러온 값에 무슨 함수를 적용하건 무슨 사칙연산을 적용하건 DB에 있는 원본 데이터에는 아무런 지장이 없다. 이게 엑셀과 DB의 궁극적인 차이다. 엑셀은 우리가 조회하는 표가 곧 원본이기 때문에, 1) 사본을 떠서 사본을 이용하거나 2) 그렇지 않으면 원본을 바꿔버리는 셈이 된다. 하지만 SQL에선 입력, 수정, 삭제, 조회가 엄밀하게 구분되어 있다. 그러니 안심하고 써도 된다.

 

특정열 조회
SELECT로 조회하는 특정 열에 *3을 적용한 사례 <출처: 본인>

 

사례3) 테이블과 열의 이름은 누가 어떻게 정하는 걸까? 바꿀 순 없을까?

우리도 실무에서 엑셀로 데이터를 기록, 관리하다 보면 자료의 기록된 순서에 대해 어떤 사람은 '연번'이라고 표기하기도 하고 어떤 사람은 'No'라고 쓰기도 한다. 또 어떤 사람은 이런 걸 굳이 적지 않기도 한다. 그럼 대체 어떤 값을 적을지, 그리고 이 값을 적기로 할 때에 그 값의 이름, 열의 이름은 누가 어떻게 정하는 걸까?

 

(1) 우선 DB의 테이블(Table)에 어떤 값을 기록할지는 서비스에서 필요한 내용에 따라 기획자, 분석가 등과 논의하여 최종적으로는 백앤드 엔지니어, 또는 데이터 엔지니어가 만든다.

(2) DB 테이블은 '나만 보고 마는' 개인적인 기록이 아니라, 우리가 사용하는 온라인 서비스의 곳곳에 참고되어 사용된다. 엑셀은 보고서용, 기록용으로 사람이 수동으로 가공하고 표기가 다르거나 오탈자가 있어도 적당히 넘어가도 된다. 그렇지만 DB의 테이블에 있는 열의 명칭은 그럴 수 없다. 그래서 이름을 정하는 데에는 나름 조직 내의 규칙이 있고, SQL에서 권고하는 규칙이 있다. 다만 이를 '조회'하는 입장인 우리가 크게 신경 쓸 필요는 없다.

(3) 그럼에도 '조회'하여 참고하고 사용하는 입장에서는 영어로 된 열 이름이 직관적이지 않을 때가 있다. 특히 이 자료를 다시 다른 누군가에게 공유하거나 보고서로 올릴 때는 'item_no'보다는 '품번'이 적절하고, 'price'보다는 '단가' 등이 적절할 것이다.

(4) 그래서 SELECT 또는 FROM 명령어로 이름을 바꿔서 테이블이나 테이블 안의 열을 조회할 수 있다. 이게 바로 AS(또는 Alias) 명령어다. 마찬가지로 어디까지나 SELECT, 조회이므로 실제 DB Table에서의 명칭이 바뀌지는 않으니 안심하자.

테이블 정보 조회
<출처: 본인>

 

정리

지금까지 데이터를 조회 및 추출하기 위해 사용하는 SQL의 주요 구문인 ‘FROM’과 ‘SELECT’에 관해 알아봤다. 이 구문은 데이터를 조회하거나 추출할 때 유용하게 쓰이는 비개발자라도 알고 있으면 좋다. 이어지는 다음 글에서는 SQL의 기초 문법 중 하나인 WHERE과 ORDER BY를 엑셀에서의 실사용 사례에 빗대어 살펴보겠다.

좋아요

댓글

공유

공유

댓글 0
그로스PM
86
명 알림 받는 중

작가 홈

그로스PM
86
명 알림 받는 중
사수 없이 고군분투하며 깨닫고 배운 것들을 기록하여 공유합니다. 저의 어제의 발버둥이 누군가의 오늘에 도움이 되길 바랍니다.

좋아요

댓글

스크랩

공유

공유

요즘IT가 PICK한 뉴스레터를 매주 목요일에 만나보세요

요즘IT가 PICK한 뉴스레터를
매주 목요일에 만나보세요

뉴스레터를 구독하려면 동의가 필요합니다.
https://auth.wishket.com/login