IBM DB2에서 컬럼명으로 컬럼이 속한 테이블 전체 조회하는 쿼리

IT/데이터베이스|2020. 8. 16. 08:45

 

저희 회사에서는 IBM사의 DBSM제품군인 DB2를 사용하고 있습니다. 차세대 이전부터 사용하던 DBMS라 섣불리 다른 DBMS로 바꿀 생각을 못하죠.

 

저희 회사는 금융권이라 시스템 복잡도와 의존도가 상당합니다. 사용중인 DB 인스턴스만 수십개이고 수십개의 스키마에 테이블만 스키마 별로 수천개가 있는 규모죠.


[IBM DB2]

IBM DB2는 IBM에서 1983년에 발표된 상업용 관계 데이터베이스 관리 시스템이다. MVS/XA와 MVS/370 운영체제에서 사용되며 SQL을 데이터 언어로 사용하여 다수의 사용자들이 여러 개의 관계 데이터베이스를 동시에 접근할 수 있는 대형 데이터베이스를 위한 시스템이다.[출처 : 위키백과 DB2]

 

 

 

 

이번에는 제가 업무적으로 사용하고 있는 몇개의 DB2 쿼리를 정리하려 합니다. SQL은 DB를 다루는 사용자에게는 쿼리라는 용어로 친숙한데 일반적인 사용자들은 Select절만 사용합니다(DML).

 

하지만 시스템을 관리하는 DBA(Database Administrator)나 DA(Data Architecure) 직군은 기타 SQL(Grant, Revoke, Create, Truncate, Delete, Update, Insert, Declare 등)의 명령어를 업무에 다양하게 사용합니다. 

 

 

 

 

 

Select Syntax.

 


FROM table_name;

 

Select의 기본적인 사용 구문은 위와 같습니다. 실제 사례는 아래와 같습니다.

 

SELECT * FROM Customers;

- Cutomers 테이블에서 포함되어 있는 전체 컬럼의 데이터를 추출하는 Select문.

 

 

 

 

SQL의 Select문은 기본적이로 이와 같이 사용되며 DB2에서 특정 컬럼의 명을 가지는 테이블을 조회하는 특수한 Select문은 아래와 같습니다.

 

SELECT *
FROM SYSCAT.COLUMNS
WHERE 1=1
AND REMARKS LIKE '%비밀번호%'
OR REMARKS LIKE '%패스워드%'
WITH UR;

 

여기서 WITH UR절은 query 를 보다 보면 with UR 이 붙은 쿼리를 많이 볼 수 있을 것입니다. UR 이란 Isolation level 중 하나로서 Uncommitted Read 의 약어 입니다. 기본적으로 내가 조회하고자 하는 table 의 다른 트랜잭션이 진행중일때 대기하다가 커밋,롤백이 되는 경우에 조회할 수 있지요.

 

 

 


그러나 WITH UR 이 옵션을 붙이면 대기하지 않고 실시간으로 변경중인 데이터를 가져올 수 있습니다. 하지만 커밋이 안된 데이터를 가져오므로 신뢰성 보장을 못한다는 단점이 있습니다. 그러므로, 단순조회일 경우엔 넣고 꼭 신뢰성보장이 되어야 하는 경우 WITH UR 구문을 쿼리에 넣지 않는 것이 좋습니다.

위 구문 외에 사용되는 특수한 쿼리는 굉장히 많습니다. 중복된 값을 제거하고 1개의 값만 추출하는 DISTINCT, 두개 이상의 테이블을 연결하여 조회하는 JOIN 구문 등 SELECT절에서 사용되는 특수 구문은 다양하니 공부하면 좋을 듯 합니다.

댓글()
  1. BlogIcon Deborah 2020.08.16 09:35 신고 댓글주소  수정/삭제  댓글쓰기

    남편이 프로그래머라서 낯선 단어들은 아니네요. 좋은 정보성의 글 잘 보고 갑니다. 행복한 하루를 열어 가세요.

  2. BlogIcon 봄자탕 2020.08.16 12:00 신고 댓글주소  수정/삭제  댓글쓰기

    전문적인 글이군요.. 잘보고갑니다!

  3. BlogIcon 드림 사랑 2020.08.16 18:42 신고 댓글주소  수정/삭제  댓글쓰기

    덕분에 유익하고 유용한 포스팅 읽고갑니다.

  4. BlogIcon 오렌지훈 2020.08.16 21:49 신고 댓글주소  수정/삭제  댓글쓰기

    잘 보고 공감하고 갑니다^^
    좋은 휴일되세요

  5. BlogIcon sJSfam 2020.08.17 00:47 신고 댓글주소  수정/삭제  댓글쓰기

    넘나 어려운 세계~~~ ㅎㅎ
    저도 고등학교 때부터 여러가지 컴퓨터에 관련된 수업도 듣고, 배워 왔는데
    중간에 안하니까 이거 뭐 봐도 모르겠더라고요
    ㅎㅎ지금 블로그 시작하면서 이것 저것 공부하느라 머리 터지겠습니다. ㅎㅎ
    어려운 일을 하고 계시는 군요~~

  6. BlogIcon pennpenn 2020.08.17 07:15 신고 댓글주소  수정/삭제  댓글쓰기

    이런 일을 하시는 분들은
    정말 대단합니다.

    오늘은 임시공휴일입니다.
    월요일을 상큼하게 시작하세요.

  7. BlogIcon @산들바람 2020.08.17 08:55 신고 댓글주소  수정/삭제  댓글쓰기

    처음 접해보는거라 어렵네요^^

  8. BlogIcon kangdante 2020.08.17 08:59 신고 댓글주소  수정/삭제  댓글쓰기

    컬럼데이타 추출은 잘 모르지만
    관심있는 사람에게는 유용하겠어요
    잘 보고 갑니다.. ^^

  9. BlogIcon 엔젤예다움 2020.08.17 10:22 신고 댓글주소  수정/삭제  댓글쓰기

    저한테는 좀 어렵네요.
    훌륭하세요

  10. BlogIcon 신웅 2020.08.17 10:36 신고 댓글주소  수정/삭제  댓글쓰기

    잘보고 갑니다
    즐거운 하루 되세요 ^^