※ 글을 들어가기에 앞서 나는 SQL고수도 아니고 엄청난 전문가도 아님을 밝힌다. 그러나 나처럼 막연하게 느껴졌을 이들을 위해 적어본다.
요즘 많은 채용 공고에 올라오는 단어가 있다.
바로 SQL 가능자 우대.
SQL이 도대체 뭐길래 마케팅, 기획, 경영 등 다양한
분야에서 우대하는지 궁금했다.
SQL이란 무엇인가
- RDBMS(관계형데이터베이스시스템)이라는 데이터 저장고를 관리하고 처리하기 위해 만들어진 언어
- 관계형DB 기본이나 최근 NoSQL이라는 비관계형 DB 등장
- 서버 : MYSQL, ORACLE
이에 관한 공부는 정말이지 '막연함;;' 그 자체였다.
땀날 정도로 광범위한 이 세계의 언어,, 가장 답답했던 부분은 이러했다.
개발자도 아닌 내가
이걸 어떻게 써먹어야 하는데?
그래서 SQLD라는 자격증 공부를 시작했다.
솔직히 개념 정리 외에 전 혀 도움이 안 됐다^^
그냥 DDL, DML, DCL, TML이라는 문법이 있고, 무결성이 있고 어쩌고..
이러한 겉햝기 식의 개념을 알아갔으나
막상 DB시스템을 깔았을 때 손 하나 대지 못했다..
SQL은 무족건 실전으로 익숙해져야 되는 언어라 생각한다.
여튼! 이렇게 도움이 안 되는 자격증 공부를 뒤로 하고
왜 why! 개발자도 아닌 일반직군이 sql을 알아야 하는 건지 다양한 정보를 긁어모으며
스스로를 이해시키는 과정을 거쳤다. 결론은 단순 명료했다.
정량 데이터를 단시간 내에
깔끔하게 도출해 낼 수 있으니까
이러한 sql이 필요한 이유를 명확하게 이해하고
나서는 실무에 적용할 만한 방법을 고민하였다.
어떤 DB 시스템을 사용할지, 어떻게 배워야 할지를 말이다.
어떤 DB 시스템을 사용할지
관계형 DB 시스템에는 여러 가지가 있다.
우선, 오라클의 문법은 가장 쉽고 사용하는 사람이 가장 많다고 한다.
MYSQL은 적용되는 프로그램이 주로 무료이기 때문에 이로 시작하는 게 좋다는 조언을 받았다.
MYSQL과 유사한 postgreSQL 또한 알게 됐다.
깊게 공부하면 또 엄청난 차이가 있지만
또 대충 나같은 비전문가가 보기엔
걍 문법만 조금씩 다른 언어라 생각하면되고..
이런거 데이터 분석 입문에 안중요하다.
- 그래도 자세한 정보는 여기서 확인하길 https://ko.gadget-info.com/difference-between-mysql
여튼! postgreSQL을 사용하는 PDadmin이라는 편리하고 무료인 프로그램을 사용하기로 했다.
어떻게 배워야 할 지
나는 혼자는 못하겠고,.. 이미 경험한 교육 사이트의 강의가 어렵고 이해가 안 되는 경험을 했다.
그러던 와중 인프런이라는 강의를 찾게 되었고 이 교육사이트의 도움을 받았다.
인프런의 장점
- 가격이 부담스럽지 않음. (무료강의도 종종보임)
- 영상들이 짧고 집약적임
- 실전 도입용 정보를 많이 알려줌
이렇게 방법이 결정되고 난 뒤, 나는
- 인프런의 홍팍쌤 강의 시리즈 (입문, 실전)
- postgreSQL을 사용하는 프로그램 PDAMIN 설치
를 준비하고 본격적인 공부에 들어갔다.
pdamin을 사용하는 기초 순서
1. pdadmin을 깔고, Datebases 클릭 => Create => Database
2. 생성된 DB 우클릭 => Query Tool 열기
- Query가 뭔데? DB에게 특정 데이터를 보여달라 요청하는 방법
3. 강의에 따라 활용하고, 실전에 활용한다.
말은 쉽지.. 데이터 분석의 예시를 알아보자
홍쌤 강의의 경우 실무에 있을 법한 사례를 통해 SQL을 교육한다.
그러므로 문제랑 과제만 잘 풀어도 기본적인 데이터 분석 능력을 기를 수 있다.
나 같은 경우는 홍쌤 강의로 주석을 활용하며 정확한 데이터를 도출하는 법을 배울 수 있었다.
- 주석 : -- 를 사용하면 주석처리가 되어 문법 실행에 영향을 주지 않는다.
데이터 분석을 위해 가장 중요한 것 !
기존 데이터를 DB 시스템에 주입시키는 것이다.
이 방법을 간략히 말하자면
- CREATE TABLE 테이블명(컬럼들 명칭 + 요소설정(정수인지, 길이는 어떤지 등));
- INSERT INTO 1로 생성한 테이블명(1로 만든 컬럼명,,,) VALUES(컬럼명별 들어가는 데이터 주입);
이정도라 할 수 있다. 자세한 것은 교육용 인강이나 블로그로 확인을 하길^-^
이렇게 테이블과 데이터가 완성되면 실제 상황의 문제를 해결할 수 있다.
다음은 내가 풀었던 데이터 분석 예시이다.
Q. 상품1 돈까스 총 판매액은 51,600원이다 이를 쿼리로 조회하라.
- 판매금액 = 가격 * 수량
- 알아보기 쉽게 별명 붙이기 : AS "별명"
SELECT SUM(products.price * order_details.count) AS "총판매금액"
FROM products -- 제품 테이블로부터 (제품.가격 * 주문내역.개수)의 총합을 구하고 명칭을 총판매금액으로 한다.
JOIN order_details ON
order_details.product_id = products.id -- 주문 내역과 상품ID가 일치하는 것
AND
products.id = 1 -- JOIN이 된 것 중에 상품1인 조건만 추출
JOIN orders ON
orders.id = order_details.order_id
AND orders.status = 'DELIVERED' -- 주문과 주문내역 ID가 일치하고 배송된 상태인것
;
그니까! 일반직군에 SQL이 필요한 이유는 '데이터 분석' 목적이고 '프로세스'는
- 내가 원하는 결과가 무엇인지, 그때 어떤 함수가 들어가는지(SELECT문 자리) 파악한다.
- 어떠한 문법을 쓸 것인지 고민한다.
- 어떠한 조건을 붙여줄지 고민한다. (AND/OR 등)
- 도출 값이 알맞은지 확인하고 더 효율적인 방법을 고민한다.
- 손쉽게 데이터 분석 끝
라고 할 수 있겠다.
처음에 할 때는 어렵고 복잡했으나, 이론으로 배운 것보다 실전예제를 풀면서
SQL에 정이 붙었고 지금은 실제 데이터 정리에 적용할 수 있을 정도로 기초적인 분석이 가능한 수준이 되었다.
정말로 생각보다 안어렵다.
다양한 강의를 보며 실전예제를 풀어나가며 SQL을 습득해보자.
'관련 도서 및 지식 > 강의 및 인사이트' 카테고리의 다른 글
[ 얄팍한 코딩사전 - 혼공얄코 ] 1-13강 : 서버와 언어 (0) | 2022.12.17 |
---|---|
JIRA 대시보드 야무지게 활용하기 (JQL 활용법) (2) | 2022.12.16 |
얕고 슬기롭게 아틀라시안(JIRA + Confluence) 활용하기 (0) | 2022.12.16 |
[플랫폼] SaaS(서비스형 소프트웨어)란? (0) | 2022.12.16 |
IT기업 비개발자가 알아야 하는 기초상식 (2) (0) | 2022.12.16 |