상세 컨텐츠

본문 제목

[DB2] DB2 쿼리 연습

인프라 취약점진단/DB

by about_SC 2020. 4. 16. 16:47

본문

[DB2] DB2 쿼리 연습

: 모의해킹을 진행하다보면, 중요 전산망에, MAIN DB로 IBM DB2를 사용하는 기업들이 존재한다.
Oracle을 사용하는 기업이 가장 많지만, 유지보수에 대한 금액적인 문제가 많아 기업의 입장에서는 서버를 구매하면 딸려오는 DB2를 사용하는 경우가 많은거 같기도 하다. 쿼리의 구조가 다른 부분이 존재하여 범용성은 줄어들지만 퍼포먼스 적인 측면에서는 나쁘지 않다는 말이 들린다. 이야기가 길었다.

DB2의 쿼리에 대해 알아보자.

 

____How to use.

DB2에서는 쿼리를 사용하는 방법이 두가지이다.
콘솔에 붙어서 직접 작업할 수도 있고, 그냥 Shell에서 실행하는 방법이 있다.
https://aboutsc.tistory.com/208?category=671899

 

[DB2] Docker를 이용한 DB2 설치방법

[DB2] Docker를 이용한 DB2 설치방법 : 모의해킹을 진행하다보면, 중요 전산망에, MAIN DB로 IBM DB2를 사용하는 기업들이 존재한다. Oracle을 사용하는 기업이 가장 많지만, 유지보수에 대한 금액적인 문제가 많..

aboutsc.tistory.com

 

 

Step 1) 데이터베이스 생성

create database DB_NAME;

 

Step 2) 테이블 생성

create database DB_NAMEcreate table DB_NAME.TABLE_NAME(
COL_1 char(30) not null,
COL_2 varchar(100) not null
);

 

Step 3) insert

insert into DB_NAME.TABLE_NAME(COL_1, COL_2, .... ) values('VAL1_1', 'VAL1_2', '...'), ('VAL2_1', 'VAL2_2', '...'),(...);

 

Step 4) select

select * from DB_NAME.TABLE_NAME where CONDITION;

* where절 사용 시, 문자는 작은 따옴표(')로 묶어야 하고, 조건은 대문자를 구분한다.
ex) select * from DB_NAME.TABLE.NAME where col='TEST';
// 
col = 'test'와 col = 'TEST'는 다른 결과를 얻게된다.

 

Step 5) 전체 데이터베이스 출력

list database directory;

 

Step 5) 전체 테이블 리스트 확인

select * from sysibm.systables;

컬럼이 넘 길어서 깨져서 출력되네요

 

Step 6) 특정 데이터베이스의 테이블명만 추출

select name from sysibm.systables where creator='DB_NAME';

 

Step 7) 특정 개수만큼 select

select * from DB_NAME.TABLE_NAME fetch first [NUM] rows only;

// 마지막 행부터 특정 개수의 행 추출을 희망할 시 특정 컬럼 기준으로 order by desc를 진행한 후 위의 fetch first NUM rows only를 사용해야한다.

관련글 더보기