IT/DataBase
[DB2] 시스템 View 테이블 및 예제
원창연
2020. 12. 5. 22:59
※ View 테이블은 command로 조회하는 내용을 SQL로 조회 가능토록 함
ㅁ 권한/특권 관련 뷰
sysibmadm.privileges
sysibmadm.authorizationids
sysibmadm.objecttowners
syscat.dbauth
syscat.tabauth
syscat.colauth
syscat.indexauth
syscat.schemaauth
syscat.sequenceauth
ㅁ 일반 정보
SYSCAT.CHECKS 점검제한조건
SYSCAT.COLUMNS 컬럼
SYSCAT.COLCHECKS 점검 제한 조건이 참조하는 컬럼
SYSCAT.KEYCOLUSE 키에서 사용되는 컬럼
SYSCAT.DATATYPES 데이터 유형
SYSCAT.FUNCPARMS 함수 매개변수 또는 함수의 결과
SYSCAT.REFERENCES 참조 제한 조건
SYSCAT.SCHEMATA 스키마
SYSCAT.TABCONST 테이블 제한 조건
SYSCAT.TABLES 테이블
SYSCAT.TRIGGERS 트리거
SYSCAT.FUNCTIONS 사용자 정의 함수
SYSCAT.VIEWS 뷰
▶ 테이블 인덱스 조회 예
SELECT TABNAME,INDNAME,COLNAMES,UNIQUERULE,INDEXTYPE
FROM SYSCAT.INDEXES
WHERE TABSCHEMA='CCS'
인덱스 조회 DESCRIBE INDEXES FOR TABLE table-name [show detail]
▶ 테이블 컬럼조회
select TABNAME,COLNAME,TYPESCHEMA,LENGTH,NULLS,DEFAULT,REMARKS
from SYSCAT.COLUMNS
where TABSCHEMA ='CCS' --AND TABNAME = 'TBH001'
ORDER BY TABNAME,COLNO
▶ 기타 예제
SELECT * FROM SYSIBM.SYSVERSIONS : 버전확인
SELECT * FROMSYSIBM.SYSINDEXES : INDEX 테이블
※ COMMAND로 조회시 주의
※ ssh접속에서는 따옴표로 sql구분
ex) $db2 "select * from SYSCAT.VIEWS"
ㅁ 나만에 테이블 및 컬럼조회
▶ 테이블 목록조회
SELECT
BB.TABSCHEMA AS 스키마
,aa.NAME AS 테이블영문명
,AA.REMARKS AS 테이블한글명
,TYPE AS 테이블타입
,'' AS 테이블구조
,0 AS 레코드건수
FROM SYSIBM.SYSTABLES AA
,(
SELECT TYPESCHEMA
,TABSCHEMA
,TABNAME
from SYSCAT.COLUMNS
GROUP BY TYPESCHEMA , TABSCHEMA, TABNAME
) BB
WHERE (NAME LIKE UPPER('${var}')
OR REMARKS LIKE UPPER('${var}'))
AND AA.TYPE = 'T'
AND AA.NAME = BB.TABNAME
AND BB.TABSCHEMA LIKE '${schema}%'
WITH UR;
▶ 테이블 컬럼조회
SELECT
B.COLNO AS NO
,(CASE WHEN B.KEYSEQ='1' THEN 'Y'
ELSE ' ' END) AS PK
,B.NAME AS 영문명
,B.REMARKS AS 한글명
,NULLS AS NULLYN
,B.COLTYPE AS 데이터타입
,B.LENGTH AS 자릿수
,B.SCALE AS 소수점
,'' AS 데이터
FROM SYSIBM.SYSTABLES A
,SYSIBM.SYSCOLUMNS B
WHERE (A.NAME = UPPER('${var}')
OR A.REMARKS =UPPER('${var}'))
AND A.CREATOR = B.TBCREATOR
AND A.NAME = B.TBNAME
ORDER BY B.COLNO
WITH UR