2022년 5월 10일 화요일
테이블 명세 조회 질의문
=========== MYSQL ========================================================================
SELECT * FROM information_schema.TABLES ;
SELECT * FROM information_schema.COLUMNS ;
SELECT
T.TABLE_NAME ,C.COLUMN_NAME ,C.ORDINAL_POSITION ,C.COLUMN_KEY
, ifnull( IF(C.COLUMN_DEFAULT='NULL',NULL,C.COLUMN_DEFAULT),'') AS COLUMN_DEFAULT
,C.IS_NULLABLE ,C.COLUMN_TYPE
,T.TABLE_COMMENT ,C.COLUMN_COMMENT
,T.TABLE_COLLATION ,C.COLLATION_NAME
FROM information_schema.TABLES T
INNER JOIN information_schema.COLUMNS C
ON T.TABLE_CATALOG = C.TABLE_CATALOG
AND T.TABLE_SCHEMA = C.TABLE_SCHEMA
AND T.TABLE_NAME = C.TABLE_NAME
WHERE 0=0
AND T.TABLE_CATALOG =''
AND T.TABLE_SCHEMA = ''
ORDER BY T.TABLE_NAME , C.ORDINAL_POSITION
;
=========== ORACLE 12c========================================================================
WITH P AS (
SELECT 'xxx' AS OWNER
FROM DUAL
),
CONS AS (
SELECT
UC.OWNER,
UC.CONSTRAINT_NAME,
UC.CONSTRAINT_TYPE,
UC.TABLE_NAME,
UCC.COLUMN_NAME,
UCC.POSITION
FROM ALL_CONSTRAINTS UC
INNER JOIN ALL_CONS_COLUMNS UCC
ON UC.OWNER = UCC.OWNER
AND UC.CONSTRAINT_NAME = UCC.CONSTRAINT_NAME
AND UC.TABLE_NAME = UCC.TABLE_NAME
WHERE 0=0
AND UC.OWNER = (SELECT OWNER FROM P)
AND UC.CONSTRAINT_TYPE = 'P'
)
SELECT
TC.TABLE_NAME,
C.COLUMN_NAME,
TC.COMMENTS AS T_COMMENTS,
CC.COMMENTS AS C_COMMENTS,
C.COLUMN_ID,
NVL2(CONS.CONSTRAINT_TYPE, 'PK', NULL) AS CONS,
CONS.POSITION AS PK_POSITION,
C.DATA_TYPE,
C.DATA_LENGTH,
C.CHAR_LENGTH,
C.CHAR_USED,
C.DATA_PRECISION,
C.DATA_SCALE,
C.NULLABLE,
C.DATA_DEFAULT
FROM ALL_TAB_COMMENTS TC
INNER JOIN ALL_TAB_COLUMNS C
ON TC.OWNER = C.OWNER
AND TC.TABLE_NAME = C.TABLE_NAME
INNER JOIN ALL_COL_COMMENTS CC
ON TC.OWNER = CC.OWNER
AND TC.TABLE_NAME = CC.TABLE_NAME
AND C.COLUMN_NAME = CC.COLUMN_NAME
LEFT OUTER JOIN CONS
ON TC.OWNER = CONS.OWNER
AND TC.TABLE_NAME = CONS.TABLE_NAME
AND C.COLUMN_NAME = CONS.COLUMN_NAME
WHERE 0=0
AND TC.OWNER = (SELECT OWNER FROM P)
AND TC.TABLE_TYPE = 'TABLE'
ORDER BY TC.TABLE_NAME ASC, C.COLUMN_ID ASC;
=========== CUBRID ========================================================================
SELECT * FROM DB_CLASS WHERE 0=0
AND OWNER_NAME=''
;
SELECT * FROM DB_ATTRIBUTE WHERE 0=0
;
SELECT * FROM DB_INDEX;
SELECT
T.CLASS_NAME
,C.ATTR_NAME
,T.COMMENT AS T_COMMENT
,C.COMMENT AS C_COMMENT
,C.DEF_ORDER
,C.DATA_TYPE
,C.PREC
,C.SCALE
,C.IS_NULLABLE
,C.COLLATION
FROM DB_CLASS AS T
INNER JOIN DB_ATTRIBUTE AS C
ON T.OWNER_NAME=''
AND T.CLASS_TYPE = 'CLASS'
AND T.CLASS_NAME = C.CLASS_NAME
WHERE 0=0
ORDER BY T.CLASS_NAME,C.DEF_ORDER
;
라벨:
명세,
테이블,
SPECIFICATION,
SQL,
TABLE
피드 구독하기:
글 (Atom)