반응형
안녕하세요! Plitche(플리체)입니다.
이번 포스팅은 [Excel] 엑셀로 만드는 쉽게 Insert 쿼리(다중insert)입니다.
Intro
- 금일 간단한 이벤트(프로모션) 서비스 하나를 오픈하였다. 대표적으로 특정 버튼 클릭 시 쿠폰을 제공하는 기능이다.
Test를 하기 위한 쿠폰 번호는 임의로 생성하여서 사용하였으나, 실제 서버에 적용할 때에는 쿠폰 번호를 insert 쿼리문을 작성하여 DB팀에 공유했어야 했다.
쿼리문이 숫자가 작다면 일일이 copy & paste를 하여 쿠폰 번호만 변경할 수도 있겠지만, 오늘은... 3만개였다.
(하마타면 종일 더블클릭만 할 뻔 했다..)
Excel을 이용한다면 정말 쉽게 몇 만, 몇 십만개라도 순식간에 작성할 수 있다.
DB Table 구조
아래의 쿼리문을 통해 간단한 시퀀스와 COUPON 테이블을 만들어 두었다.
CREATE SEQUENCE coupon_seq -- 시퀀스명
START WITH 1 -- 1부터 시작
INCREMENT BY 1 -- 1씩 증가
NOCACHE;
CREATE COUPON
(
event_no number primary key, -- 쿠폰 sequence
coupon_no varchar2(6) not null, -- 쿠폰 번호
getUser_id varchar2() null, -- 받을 유저 id
getDate date null -- 쿠폰 지급 날짜
)
위의 테이블에 20개의 쿠폰을 INSERT해보겠다.
EXCEL
01. 하드코딩
아래 사진과 같이 무작위 쿠폰번호가 20개 있을 때 물론 일일이 작성할 수도 있다.
하지만 우린 이걸 원하는게 아니잖아!?
02. CONCATENATE()
Excel의 CONCATENATE()를 이용해서 원하는 셀들을 합쳐 하나의 셀로 만들 수 있다.
(1) insert query문 준비
- 두개의 셀에 사진처럼 insert문의 일부를 나누어서 작성해준다.
- 쿠폰번호가 들어갈 자리만 비워 두고 그 자리를 기준으로 따로 작성해놓으면 된다.
(2) concatenate() 사용법
- CONCATENATE의 ()안에 insert query문의 순서대로 셀을 선택해준다.
(3) 단축키 Ctrl + Shift + End
- 쿼리문을 작성할 첫번째 셀에 커서를 두고 ctrl + shift + end를 같이 누르면 사진과 같이 아래로 열이 선택될 것이다.
(4) 단축키 Ctrl + D
- 열이 선택이 되었다면 ctrl + d를 함께 눌러 첫 번째 셀과 동일한 함수가 적용되도록 하자.
(5) Error + Solution
- 엥?? 근데 아래 사진의 결과를 보면 알 수 있듯이 원하는대로 작성되지 않았다. 뭐가 문제일까?
- 일반적으로 엑셀은 동일한 함수를 적용한다거나 할 때 자동으로 알파벳과 숫자를 증가시켜 준다.
- 이를 제대로 작동하기 위해서는 $, 달러 기호를 증가시키지 않고 fix(고정)시키길 원하는 문자 앞에 작성해준다.
(6) result(결과)
- 드디어! 우리는 제대로된 query문을 손쉽게 얻어내는 방법을 알았다!
03. '&' 활용
- CONCATENATE()를 굳이 번거롭다 하시는 분들은 & 기호를 활용하면 동일한 결과를 얻을 수 있다.
review
- 처음 배우고 처음 적용하기 시작하신 분들은 저처럼 하나하나 모두 당황스러우실 수 있습니다.
- 하지만 정말 99.9%의 해결책은 이미 다 있더라구요!!
- 오늘도 봐주셔서 감사합니다.
반응형
'Database > OTHER' 카테고리의 다른 글
[H2Database] directory not found, either pre-create it or allow remote database creation 해결법 (0) | 2022.08.11 |
---|