SQL 5

PAD + MOD

오늘은 Oracle의 여러가지 키워드에 대해서 알아보려고 한다. 최근 유지보수 개발 요청이 들어와서 코드를 뜯어보던 중 전반적인 아키텍쳐가 이상한 것을 깨닫고 전체 구조를 뜯어보는데 몇날며칠을 썼다. 그리고 저번주에 그 근본적인 원인을 찾았는데 그 원인은 바로 테이블 구조였다. 우선 PK가 이상하게 설정되어 있었다.PK는 Primary Key의 준말로 우리말로는 기본키 라고 불린다.기본키는 그 조합이 유일해야한다.그런데 이 테이블은 기본키의 조합이 유일하지 않게 설계되어 있었다.그래서 나는 유일한 값을 만들기 위해 일련번호 컬럼을 하나 추가하게 되었다. 나는 일련번호의 타입을 VARCHAR2(15)로 설정했는데날짜(YYYYMMDD, 8) + 구분코드(_, 1) + 브랜치(지점)코드(___, 3) + 숫..

SQL 2026.02.03

빈 그릇 테이블, DUAL

오늘은 DUAL이라는 테이블에 대해 알아보려고 한다.DUAL은 나에게 그리 익숙한 문법이 아니었다.그래서 처음에는 부끄럽지만 DUAL이라는 테이블이 도대체 어떤 테이블인지 한참 찾았었다........도대체 얼마의 시간을 쓴건지...그러나!!! 그런 시간이 있기에 배움의 가치를 더 크게 느낀다고 생각하기로 했다.럭키비키 마인드로~★☆ 여러분은 그 시간을 아꼈으면 하는 마음에서 오늘의 주제는 DUAL로 잡아봤다.쿼리를 쓰다보면 FROM절 없이 SELECT만 쓰고 싶을 때가 있다.예를 들면 그냥 파라미터 값을 그대로 리턴하는 SELECT 문 같은거!그럴 때 유용하게 쓸 수 있는 것이 DUAL 테이블이다. DUAL은 쉽게 말하면 1x1 크기의 가상 테이블이라고 볼 수 있다.즉, 단 하나의 행과 단 하나의 컬럼..

SQL 2025.12.16

두 테이블을 비교하여 값 갱신하기, MERGE 사용법

최근에 새로운 개념을 만나지 못해서 블로그를 못쓰고 있었는데 오랜만에 새로운 먹잇감을 발견했다!오늘은 MERGE 사용법에 대해 알아보려고 한다. 오늘 아래와 같은 코드를 보게 되었다.MERGE INTO TABLE TUSING (SELECT #COL1# COL1, #COL2# COL2, #COL3# COL3, #COL4# COL4 FROM DUAL ) SON ( T.COL1 = S.COL1 AND T.COL2 = S.COL2 AND T.COL3 = S.COL3 )WHEN MATCHED THEN UPDATE SET T.COL1 = S.COL1, T.COL2 = S.COL2, T.COL3 = S.COL3, ..

SQL 2025.12.11

버전 관리를 하자!

얼마 전부터 리포트 관련 개발을 하고 있다.Clip Report 라는 툴을 사용해서 crf 문서를 만들고 웹 사이트에서 출력 버튼을 누르면 해당 crf 파일을 띄우게끔 한다. 나는 유지보수를 하고 있기 때문에 새로운 문서를 만들기 보다 기존에 있던 문서를 수정하여 반영하는 일이 더 많다.기존 문서를 수정할 때 나는 크게 두 가지 방식을 선택할 수 있다. 1. 기존 문서 파일을 변형한다.2. 기존 문서 파일은 그대로 두고 새로운 문서를 만들어 새로운 파일로 코드를 연결한다. 어떤 수정을 하는 것인지, 수정의 규모가 어떻게 되는지, 그 팀의 개발 규칙 등에 따라 선택하는 방식이 달라질 수 있겠지만,나는 2번을 압도적으로 지지한다! 왜일까?우선, 나는 금융권 종사자임을 밝힌다.우리나라에서 금융권은 굉장히 ..

개발 공부 2025.11.25

UNION 사용 시 주의할 점

대학 시절 백엔드 개발을 하며 '쿼리'를 써볼 일이 많지 않았다.주로 Springboot 프레임워크에서 JPA를 써서 개발을 했기 때문에 간단한 함수만 사용하고 직접 쿼리를 짜서 데이터를 뽑아본 적은 없었던 것이다.물론 대학에서 데이터베이스 수업을 들었을 때는 나름 열심히 했지만.... 대학을 졸업하고 개발자로 취업하여 실무를 보고 있는 지금, Java 코드보다 SQL 쿼리를 훨씬 더 많이 보고 있다.개인 프로젝트를 했을 때 데이터베이스에서는 단순히 필요한 데이터만 가져오고 그것을 정제하는 건 백엔드 코드에서 했었다.그런데 실무에서는 대부분 쿼리에서 원하는 데이터를 원하는 형식으로 정제하고 코드에서는 그저 그것을 리턴하는 정도의 역할만 한다.이것이 내가 경험한 실무와 개인 개발의 가장 큰 차이인 것 같다..

SQL 2025.11.17
반응형