상세 컨텐츠

본문 제목

전체 테이블 및 컬럼 조회

DataBase/CUBRID

by H_Develop 2023. 4. 24. 14:28

본문

-- 테이블정보
SELECT
	A.CLASS_NAME AS 테이블명,
	A.COMMENT AS [한글테이블명],
	B.ATTR_NAME AS 컬럼영문명,
	B.COMMENT AS 한글컬럼명,
	B.IS_NULLABLE AS [NULL여부],
	B.DATA_TYPE AS 데이터타입,
	B.PREC AS 데이터길이,
	CASE
		WHEN D.KEY_ATTR_NAME IS NOT NULL THEN 'Y'
	END AS PK정보,
	CASE
		WHEN F.KEY_ATTR_NAME IS NOT NULL THEN 'Y'
	END AS FK정보,
	B.DEFAULT_VALUE AS 제약조건,
	B.DEF_ORDER + 1 AS 컬럼순서
FROM
	DB_CLASS A
INNER JOIN DB_ATTRIBUTE B ON
	B.CLASS_NAME = A.CLASS_NAME
LEFT JOIN DB_INDEX C ON
	C.IS_PRIMARY_KEY = 'YES'
	AND C.CLASS_NAME = B.CLASS_NAME
LEFT JOIN DB_INDEX_KEY D ON
	D.CLASS_NAME = C.CLASS_NAME
	AND D.INDEX_NAME = C.INDEX_NAME
	AND D.KEY_ATTR_NAME = B.ATTR_NAME
LEFT JOIN DB_INDEX E ON
	E.IS_FOREIGN_KEY = 'YES'
	AND E.CLASS_NAME = B.CLASS_NAME
LEFT JOIN DB_INDEX_KEY F ON
	F.CLASS_NAME = E.CLASS_NAME
	AND F.INDEX_NAME = E.INDEX_NAME
	AND F.KEY_ATTR_NAME = B.ATTR_NAME
WHERE
	A.OWNER_NAME = 'PUBLIC'
	AND (A.CLASS_NAME LIKE 'T_%')
GROUP BY
	테이블명
ORDER BY
	A.CLASS_NAME,
	B.DEF_ORDER;