[DB] SQL문의 활용과 중요성

작성자
dra****
작성일
2024-05-08 22:11
조회
350

예전 은행해서 근무하던 작은형 왈, "SQL문의 작성 능력에 따라 연봉이 달라진다."
당시 저는 고작 INSERT, DELETE, UPDATE문 정도만 할 줄 알았던 시기라, 그냥 그러려니 했습니다.

요즘은 DB를 가지고 코딩을 많이 하다 보니, 그 말을 많이 실감합니다.

1. VBA 초보 시절
DB에서 불러온 데이타를, 배열로 받아 루프를 돌리면서
문자열 함수를 이용해서 가공한 다음 엑셀 시트에 뿌려 줌
나름데로 뿌듯했음

2. 현재
데이터를 SQL문으로 가공해서 바로 엑셀에 뿌려줌
코드도 간결하고, 결과물 출력 수정도 쉽고, 속도도 빠르고.

3. 샘플 코드 (VB.NET) = 스샷은 아래에

        Dim strSQL As String = "SELECT " &
                                    "CONCAT('G-', Repeat('0', 6- LENGTH(G_SER)), G_SER) AS SER, " &
                                    " G_GUIDE As GUIDE, COMPANY, G_GUEST As GUEST, " &
                                    "CONCAT(DATE_FORMAT(G_TOFF_DATE, '%b-%d'), ' (', G_WEEK_DAY, ')') AS TOFF_DATE, " &
                                    "G.GC AS GC, G_A_TIME AS ATIME, G_HOLES AS HOLES, G_PAX AS PAX, G_SELL_RATE AS SELL_RATE, " &
                                    "G_SELL_TOTAL AS SUM, G_PAY_METHOD AS BANK, G_PAY_DATE AS PAY_DATE, G_VCHER_DATE AS VCHER_DATE, " &
                                    "CASE " &
                                        "WHEN G_PROG_SER = '3' THEN 'CANCEL' " &
                                        "WHEN G_PROG_SER = '2' THEN 'DONE' " &
                                        "WHEN (`G_PAY_DATE` <> '0000-00-00' AND (`G_PAY_DATE` IS NOT NULL OR LENGTH(`G_PAY_DATE` > 0))) THEN 'PAID' " &
                                        "ELSE '' " &
                                    "END AS STATE, " &
                                    "'' As BALANCE, G_IS_HOLIDAY AS HOLIDAY " &
                               "FROM (GBOOKING B JOIN HGC G On B.GC_SER = G.GC_SER) JOIN HMEMBERS M ON B.G_MEM_SER = M.MEM_SER " & condition_G & ";"

데이터행이 10만개라 한다면,
가변형 로우를 만들어서, 필요한 개수만큼 엑셀의 데이터가 있는 행을 늘였다 줄였다를 하도록 코딩
이렇게 하면, 스크롤의 번거로움이 다 사라짐

4. 결론

아직도 워크시트에 데이터를 입력하고 시트 함수를 이용해서 업무를 하고 계산다면 데이터베이스화 해서 사용해보라 권하고 싶싶습니다. 엑세스나 MS-SQL, MYSQL같은 데이터베이스가 아니어도, 엑셀 워크시트 자체가 데이터베이스가 될 수 있습니다. 이를 SQL문으로 CRUD를 구현할 수 있습니다. 업무가 훨씬 간결하고 수월해질 것입니다. 시간대비 인건비, 업무 효율성 등등 장점이 더 많습니다.

 

P.S. 윈도우즈에 리눅스 서버를 설치해서 사용하기를 정말 강력히 추천합니다.

저도 잘 몰라서 구현을 못했다고, 맘잡고 공부하고 하니 어렵지 않게 됩니다. 모든것을 이해하고 있는 것은 아니지만, 딱 필요한 만큼 공부해서 구현해보니, 정말 신세계입니다.

 

6. 아래는 엑셀에 출력한 스샷입니다. 검색 조건만 주고 출력하면 끝입니다.

 

신고
스크랩
공유
회원등급 : 30레벨
포인트 : 4700 EP
전체 4

  • 2024-10-01 00:43

    @dra**** 님 저도 프로그램 개발 했는데 이제는 다 잊어벼렸네요

    Sql문 보니 옛날 생각납니다.


  • 2024-05-11 22:42

    @dra**** 님 좋은 정보 감사합니다


  • 2024-05-09 03:03

    @dra**** 님 외국 은행은 잘 모르겠지만.. 국내 은행은 DB 접근 권한이 막혀있어서 외부에서 불러오는건 거의 불가능할지도 모르겠네요..

    보안이 워낙 철저해다보니.. 조회 한번만 잘못해도 개인정보법 위반사항이라..

    대부분 사내 툴로만 작업가능하다보니 불편한 점이 있네요 ㅜ


    • 2024-05-09 06:20

      @마이무거따 님 작은형이 전산실 개발부에서 일했습니다. ㅎㅎ


전체 125
번호 제목 작성자 작성일 추천 조회
알림
[📚진짜쓰는 실무엑셀] 2024년 엑셀 공부, 이 책 한권으로 마스터하세요! (290)
오빠두엑셀 | 2022.02.03 | 추천 554 | 조회 844376
오빠두엑셀 2022.02.03 554 844376
74491
New 이름관리 엑셀 업그레이드 버전 입니다. 첨부파일 (2)
박정호 | 2024.10.28 | 추천 0 | 조회 45
박정호 2024.10.28 - 45
74354
월드컵 랭킹 계산(ELO 점수 계산) 첨부파일 (4)
박정호 | 2024.10.22 | 추천 0 | 조회 54
박정호 2024.10.22 - 54
74269
엑셀2021이하에서 CHOOSECOLS, CHOOSEROWS 처럼 동작시키기 첨부파일 (13)
마법의손 | 2024.10.18 | 추천 2 | 조회 107
마법의손 2024.10.18 2 107
74204
이름관리 엑셀입니다.(모듈) 첨부파일 (6)
박정호 | 2024.10.15 | 추천 0 | 조회 136
박정호 2024.10.15 - 136
74028
로또번호2(반자동 기능 업데이트) 첨부파일 (4)
박정호 | 2024.10.05 | 추천 1 | 조회 130
박정호 2024.10.05 1 130
74012
매장 근태관리시트 공유 첨부파일 (3)
체리로그 | 2024.10.03 | 추천 1 | 조회 125
체리로그 2024.10.03 1 125
73964
[파워쿼리] 여러열 열분할하기 첨부파일 (4)
마법의손 | 2024.10.01 | 추천 1 | 조회 103
마법의손 2024.10.01 1 103
73915
M365 GroupBy, PivotBy 함수 공식 배포 (6)
원조백수 | 2024.09.27 | 추천 2 | 조회 139
원조백수 2024.09.27 2 139
73485
m365 신규함수(베타) : TRIMRANGE (7)
더블유에이 | 2024.09.04 | 추천 1 | 조회 209
더블유에이 2024.09.04 1 209
73454
고등학교 선택과목 편성 방법 (4)
toug**** | 2024.09.03 | 추천 0 | 조회 122
toug**** 2024.09.03 - 122
73241
로또 번호 엑셀입니다. 첨부파일 (9)
박정호 | 2024.08.24 | 추천 1 | 조회 278
박정호 2024.08.24 1 278
73096
그룹별 데이터 나누기 [가로정렬] 첨부파일 (7)
마법의손 | 2024.08.20 | 추천 2 | 조회 200
마법의손 2024.08.20 2 200
73093
ppt에 둥근 표 삽입하기 (4)
강민준🤗 | 2024.08.20 | 추천 1 | 조회 175
강민준🤗 2024.08.20 1 175
73029
XLOOKUP, XMATCH 함수에 새로운 Match_mode로 RegEx 추가 (2)
원조백수 | 2024.08.16 | 추천 3 | 조회 208
원조백수 2024.08.16 3 208
72413
아웃룩에 개빡쳐서 만든 ThunderBird로 수신자 별 대량 메일 발송 VBA 매크로 공유합니다.(업무자동화) 첨부파일 (4)
알파고 | 2024.07.22 | 추천 1 | 조회 495
알파고 2024.07.22 1 495
72045
조합짜주는 엑셀(20명까지) 출력은 1만항까지 첨부파일 (13)
박정호 | 2024.07.10 | 추천 1 | 조회 367
박정호 2024.07.10 1 367
71965
서양달력 업데이트 입니다. 첨부파일 (14)
박정호 | 2024.07.07 | 추천 0 | 조회 223
박정호 2024.07.07 - 223
71902
Excel에서 ImportRange, ImportHTML 함수 사용하기 (4)
원조백수 | 2024.07.05 | 추천 0 | 조회 167
원조백수 2024.07.05 - 167
71838
Microsoft 365 신규 번역 함수 (8)
원조백수 | 2024.07.02 | 추천 2 | 조회 385
원조백수 2024.07.02 2 385
71804
음력->양력->서양달력 변환 첨부파일 (2)
박정호 | 2024.07.01 | 추천 0 | 조회 231
박정호 2024.07.01 - 231