본문 바로가기
Developer/DB

[DB] CUBRID 모든 테이블 조회

by 순수한소년 2022. 4. 13.
728x90
반응형

-- 테이블정보
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;

반응형