05-05 10:55
Notice
Recent Posts
Recent Comments
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
Archives
Today
Total
관리 메뉴

(주) 망나니 힘집

[DB2] db2 정보 확인하기 - 1차 정리 본문

스펙도 쌓니

[DB2] db2 정보 확인하기 - 1차 정리

군포망나니 2025. 4. 7. 14:36

--1. 테이블 생성 
CREATE TABLE TESTDB 
   (ID CHAR(3)     NOT NULL, 
   NAME VARCHAR(20) NOT NULL, 
   PRIMARY KEY(ID)
   ) 
   
-- 2.테이블 조회 
SELECT * FROM TESTDB


-- 3. 행 삽입하기 
INSERT INTO TESTDB (ID, NAME)
VALUES ('1', 'ONE')


--4. 컬럼 추가하기 (현재 시간) 
ALTER TABLE TESTDB ADD COLUMN DATE VARCHAR(10)

-- 5. 행 삽입하기 
INSERT INTO TESTDB (ID, NAME, DATE)
VALUES ('1', 'ONE', CURRENT TIMESTAMP)

-- 6.컬럼 삭제하기 
-- 안 됨... 검색해보니까 "DB2에서는 지원이 안됨" 라고 하는데... 
-- ALTER TABLE TESTDB DROP COLUMN DATE


-- 7. 컬럼 속성 변경하기      
-- 컬럼 속성 변경할 때, VARCHAR 만 가능하다고 함. 
ALTER TABLE TESTDB ALTER COLUMN DATE SET DATA TYPE VARCHAR(15) 

-- 아래 행 실행 시에, Attributes of column DATE in TESTDB in DYERP not compatible. 
ALTER TABLE TESTDB ALTER COLUMN DATE SET DATA TYPE TIMESTAMP 

-- 해결방법 : ADD -> 이전 열 데이터를 UPDATE, ADD 컬럼명을 변경 (RENAME) 
ALTER TABLE TESTDB ADD COLUMN DATE2 TIMESTAMP

--이것도 왜 안 됮.. .==> IBM i용 DB2 문장에는 RENAME COLUMN 절이 없답니다.. 이게 DB2 커넥션 정보에 따라 다른가...? 
ALTER TABLE TESTDB RENAME COLUMN DATE TO TXT

  
-- 8.행삭제하기 
DELETE FROM TESTDB WHERE ID='1' 

-- 9. 컬럼 속성보기 
select * from M_ZPPT011 

-- 10. 테이블 생성 정보 보기 
SELECT * FROM QSYS2.SYSTABLES WHERE TABLE_NAME = 'TESTDB'

-- 11. 테이블 정보 확인하기 
SELECT * FROM QSYS2.TABLES WHERE TABLE_NAME = 'TESTDB'
 
-- 12. 테이블 유저 정보 보기 
SELECT * FROM QSYS2.USER_INFO  

--13. SCHEMA 확인하기   
SELECT DISTINCT TABLE_SCHEMA FROM QSYS2.TABLES

--14. SYSIBM.SYSDUMMY1 카탈로그 뷰 
SELECT * FROM SYSIBM.SYSDUMMY1    

--15. 
SELECT * FROM SYSIBM.SYSPERMS WHERE GRANTEE = 'your_user';

--16. SYSIBM VIEW 확인 
SELECT * FROM SYSIBM.VIEWS

--17. 내 특수권한 확인하기 
SELECT AUTHORIZATION_NAME, SPECIAL_AUTHORITIES FROM QSYS2.USER_INFO  WHERE AUTHORIZATION_NAME = 'DBKIM'

 

-- 18. 테이블 생성하기 

CREATE TABLE B_PARTNER_STOP_OUT (   
    CD_PARTNER VARCHAR(10) NOT NULL,
    CD_COMPANY VARCHAR(10) NOT NULL,
    TXT_REMARK VARCHAR(100) DEFAULT '', 
    ID_INSERT  VARCHAR(20) NOT NULL,
    DT_INSERT  TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL,
    ID_UPDATE  VARCHAR(20) NOT NULL,
    DT_UPDATE  TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL,
    
    PRIMARY KEY (CD_PARTNER, CD_COMPANY)
);

 

-- 트리거 (수정일 자동 업데이트) 

CREATE TRIGGER DT_UP_TRIGGER
   BEFORE UPDATE ON B_PARTNER_STOP_OUT
   REFERENCING NEW AS N
   FOR EACH ROW MODE DB2SQL
   SET N.DT_UPDATE = CURRENT_TIMESTAMP
   


/*
* 사용자가 시스템 자원에서 수행할 수 있는 조치 유형 지정 (특수권한) 
* ALLOBJ : 모든 OBJECT 특수 권한 부여, 사용자가 개인 권한을 가지고 있는 지 상관없이 시스템에 있는 자원에 액세스할 수 있다. 
* SECADM : 보안 관리자 특수 권한을 사용하여 사용자 프로파일을 작성, 변경, 삭제 가능하다. 
* JOBCTL : 작업 제어 특수 권한을 사용하면 사용자가 작업, 인쇄, 작업 완료 전 종료, 인쇄 전 출력 삭제 우선순위를 변경할 수 있다. 
* SPLCTL : 스풀 제어 특수 권한을 사용하여 사용자가 스풀 파일 변경, 삭제, 표시, 보류, 해제 같은 모든 스풀 제어 기능을 수행한다. 
* SABSYS : 시스템 저장 특수 권한을 사용하여 오브젝트 존재 권한이 사용자에게 있는 상관없이 시스템 모든 오브젝트에 대해 기억장치 저장, 복원, 해제 권한을 갖는다. 
* SERVICE : STRSST 명령을 사용하여 시스템 서비스 툴을 시작할 수 있다. 
* AUDIT : 감사 특수 권한은 감사 특성을 보고 변경하는 기능을 제공한다. 
* IOSYSCFG : 사용자에게 시스템 구성방식을 변경할 수 있는 기능 제공한다. 통신 구성 정보를 추가 및 제거, TCP/IP 서버에 대한 작업, ICS 구성 (인터넷 연결 서버) 
*/