아하
검색 이미지
생활꿀팁 이미지
생활꿀팁생활
생활꿀팁 이미지
생활꿀팁생활
쿨한고라니34
쿨한고라니3421.04.17

SQL 공부 처음 시작에 대한 조언이 필요합니다.

안녕하세요 저는 40대 생산관련 직장인입니다

요번에 회사에서 신규 ERP 프로그램을 도입했는데 사용자에 친절하지 않은 프로그램이라 재고에 대한 문제가 생겼을때

원인 분석을 ERP 업체에다가 일일이 하는게 번거로워 제가 직접 할수있는 방법을 물어보니 SQL을 배우면 된다고 해서 공부를 좀 해보려고 합니다.

유튜브에서 SQL 검색하면 자료들 많으니 공부하면 된다 하는데 전공과목도 아니다 보니 어디서 뭘 시작하면 되는지 감이 안잡히네요

생 초보가 처음부터 시작하면서 배울수 있는 유튜버분들 소개해주셨으면 합니다.

많은 답변 부탁드릴께요 감사합니다.

55글자 더 채워주세요.
답변의 개수6개의 답변이 있어요!
  • 안녕하세요 . 현업 6년차 개발자입니다. SQL을 주력 언어로 하고 있구요. 말씀하신 부분 충분히 공감을 합니다. ERP 업체에서 대응이 제때제때 되지 않나보네요. 특히 재고 쪽은 빠른 대응이 필수인데 많이 답답하실 듯 합니다.

    직접 SQL을 공부하시면 크게 도움이 될 것으로 보입니다. 저도 개발자이지만, 실제로 현업에서 SQL을 하시는 분들을 정~~말 가끔 봅니다. 재고 데이터도 직접 뽑으시고, 여러 데이터 조합해서 분석하시는 데 여러모로 대단하다고 생각합니다.

    SQL을 검색하면 자료들이 많긴 합니다만, 쉽지 않습니다. 유튜브의 경우 SQL 강의가 아무래도 학원 강의가 대부분인데, 약간 어려운 부분이 있죠. 제가 추천드리는 건 생활코딩님 강의 입니다.

    https://opentutorials.org/module/4192

    강의에서도 다루겠지만, 알기 쉽게 몇 가지 첨언을 드리겠습니다. SQL에서 가장 중요한 포인트는 두가지라고 생각합니다. 바로 데이터를 저장하는 테이블을 이해하는 것이고, 두번째는 그 데이터를 읽고, 새로 추가하고, 업데이트하고, 지우는 프로그램 코드를 짜는 겁니다.

    지금 활용하시려는 수준은 아마 테이블을 설계한다거나, 새로 만드는 작업은 거의 없으실 거라고 봅니다. 따라서 데이터를 "읽는 것"에 집중하셔도 충분하지 않을까.. 그런 생각이 듭니다.

    데이터를 읽는다는 건 어떤 걸까요? SQL은 어떻게 보면 엑셀의 필터 기능과, VLOOKUP 기능과 유사합니다.

    엑셀에 표로 간단하게 재고 정보를 정리했다고 생각해봅시다. 아래 정보를 담고 있는 표를 SQL에서는 "테이블"이라고 명명합니다. 이 테이블의 이름을 INVENTORY 라고 해보겠습니다.

    그리고 이 테이블에서 이제 데이터를 읽어들일 건데, 엑셀의 필터를 쓰는 것과 같습니다.

    1. 모델코드가 JK0001이라는 것만 읽어들인다라는 걸 코드로 변환하면 이렇게 됩니다.

    SELECT *

    FROM INVENTORY

    WHERE 모델코드 = 'JK0001';

    그러면 결과가 이렇게 나옵니다.

    2. 조건은 추가가 가능합니다. 가령 이순신이라는 재고 담당자가 가지고 있는 선풍기 모델명만 조회한다고 하면

    SELECT *

    FROM INVENTORY

    WHERE 모델명 = '선풍기'

    AND 재고담당자 = '홍길동';

    요런식으로 SQL문을 만들게 됩니다.

    3. 여기서 조금 더 나아가 JOIN이라는 것 까지 배우기만 하면, 질문자님이 필요하신 지식 중 기본적인 건 충분히 얻으신 거라고 봅니다

    JOIN이라는 건 테이블 두개에 '관계'를 만들어서 해당 정보를 엮어버리는 걸 뜻하는데요.

    쉽게 생각하면 엑셀의 Vlookup 입니다.

    가령 아래 임직원이라는 테이블이 하나 더 있다고 칩시다.

    그러면 재고에서 재고담당자 정보만 가지고, EMPLOYEE의 전화번호를 같이 붙여서 조회 할 수 있습니다.

    쿼리문으로 다음과 같습니다.

    SELECT INVENTORY.*

    ,EMPLOYEE.전화번호

    FROM INVENTORY

    , EMPLOYEE

    WHERE INVENTORY.재고담당자 = EMPLOYEE.임직원;

    엑셀로 보면 아래와 같이 되겠죠?

    이런 구문을 JOIN구문이라고 하는데, 여러가지 테이블의 데이터를 모두 엮어서 조회할 수 있게 됩니다.

    4. 가령 ERP의 실제 데이터를 예시로 설명드려보면, 판매법인에 있는 송장 정보와, 재고별로 가지고 있는 송장정보 등을 엮어서 기초 재고 중에 출하가 얼마나, 언제 일어났는 지 확인할 수 있는 SQL 쿼리를 짤 수도 있구요. 출하까지 걸리는 시간 등도 계산해낼 수 있겠죠?

    또한 출하 쪽에 이슈가 있어서 출하 Holding이 되었다면, ERP화면에서 Holding 된 사유를 건건이 찾을 수 있겠지만, SQL문을 써서 직접 데이터베이스에 접근한 뒤, 월별로 Holding된 출하 목록과 사유를 한번에 뽑을 수도 있을 겁니다.

    조금 이해가 가시나요? 데이터를 읽는 구문인 [ SELECT ~ FROM ~ WHERE ~] 이것과

    위의 JOIN 방법을 이해하시고 응용하시는 정도에 따라 뽑으실 수 있는 데이터는 상당히 많아질 겁니다.

    5. 마지막으로 그룹함수라는 게 있는 데, 이건 SELECT 구문과 JOIN을 모두 이해하시고 나면 직접 찾아보시면서 공부하셔도 될거 같습니다.

    대용량 데이터가 아닌 이상 굳이 그룹함수 쓰지 않고, SQL로 데이터 읽은 뒤 엑셀로 내려받으시구요.

    이후 엑셀의 피봇 기능만 써도 그룹함수는 충분히 대체가 가능하다고 봅니다.

    6. ERP 담당자에게 pl sql이나 sql develop와 같은 sql을 날릴 수 있는 프로그램을 달라고 하시고, 가능하다면 DB에 접속할 수 있도록 셋업을 요청해보세요. 사용법도 알려달라고 하면 약간 귀찮아할 수도 있지만, 알려주실 겁니다. 원하시는 데이터가 들어있는 테이블이 무엇인지 물어보시고, 제가 알려드린 [ select * from 테이블명 ] 이라는 쿼리로 조회를 먼저 해보시길 바랍니다.

    아무쪼록 도움이 되셨길 바랍니다!


  • 안녕하세요.

    처음 SQL을 공부하신다고 하면 신규 도입하신 ERP시스템의 DB를 무엇을 쓰는지 한번 확인해 보시길 바랍니다.

    대표적으로 Oracle SQL ,MySql 이 있습니다. 둘은 비슷하지만 다른 점도 있기 때문에

    사용하는 DB에 따라 차이가 있기 때무에 먼저 확인이 필요하시겠습니다.

    유튜브도 있지만 책을 통해 천천히 공부하시는 것을 추천드립니다.

    DB를 집에서 연습 할 수있는 설치 방법부터 상세하게 설명된 책들이 많기 때문에

    천천히 찾아보시길 추천드리겠습니다. 한순간에 늘고 그러지는 않지만

    기초부터 차근 차근 준비하시면 SQL의 경우 일주일이면 기본적인 것을

    가능하시리라 봅니다. 감사합니다.


  • 안녕하세요! 반갑습니다ㅎㅎ말씀하신 부분에 대해서 좋은 유튜버 분을 알고 있어서 소개해드리고 싶습니다. 유튜버 sql 정미나 님 추천드립니다! sql 에 대해서 아주 기초적인 부분부터 쿼리문을 자세하게 하나하나 예시와 함께 설명해주고 있어서 저도 공부하면서 필요한 부분 있을때 보는데 정말 많이 도움이 됩니다!


  • 안녕하세요. 아하(a-ha) 프로그래밍 지식 답변자 입니다.

    질문자님은 주로 조회 업무를 많이 하실 것 같습니다. 그렇다면 DML 언어 위주로 익히시는 것이 좋습니다. SQL에서 조회를 담당하는 DML 언어는 SELECT절 입니다. 사용하고자 하는 DB에 맞는 SELECT 쿼리를 찾아보시면서 학습 하시는 것이 좋다고 생각이 듭니다.

    답변이 도움이 됐으면 합니다. 좋은 하루 되세요!


  • 탈퇴한 사용자
    탈퇴한 사용자21.04.17

    안녕하세요.

    우선 ERP에 사용된 DB 종류가 어떤건지 알아야 연결하고 실행할 환경을 만들 수 있습니다.

    유튜브도 DB 종류에 따라 강의가 다릅니다.

    DB 종류를 아셨다면 tool 선택도 중요하고, tool 사용법을 먼저 익히시는게 좋습니다.

    DB 용어와 tool 이 익숙해져야 사고가 나지 않습니다.

    ERP측에서 조회용으로 계정을 별도로 만들어줬다면 크게 상관은 없습니다만 그게 아니라면 개발용 DB가 아니기 때문에 변경하거나 삭제가 되지 않게 조심해야 됩니다.

    oracle인 경우는 sql developer (oracle 사이트에서 무료), mssql은 ssms 를 설치하면 tool이 제공됩니다.

    SQL 쿼리는 개발 목적이 아니라 데이터 확인용이기 때문에 우선 간단한 select 만 알아도 가능합니다.

    쿼리를 잘 짜서 실행하면 더 쉽게 데이터를 확인할 수 있지만 그건 천천히 배우셔도 될 거 같습니다.


  • 안녕하세요

    기본적인 개념은 우리가 원하는 자료가 DBMS 라는 DB안에 각각 TABLE로 데이터가 저장되어있고, 해당 자료를 조회할때 사용하는것이 SQL 입니다.

    내가 원하는자료를 어떤테이블에서 어떤조건으로 볼것인지, 어느테이블과 연결(조인) 해서 볼것인지 등등 조건에 맞게 sql를 작성하고 수행하면 원하는 데이터를 볼수있습니다.

    아래 SQL 상세설명 링크와 sql 구문, 공부할 링크 남겨드립니다. 공부하셔서 업무에 잘 사용하시길 바랍니다~!

    SQL 개념설명

    https://youtu.be/MJsOoA8yM7A

    https://youtu.be/nDaD5YJSJLo

    SQL 구문 및 사용법

    https://opentutorials.org/course/3161