Database
[MySQL] 테이블 및 컬럼, 코멘트 조회
헤르메스의날개
2020. 11. 18. 23:56
728x90
MySQL comment 설정 및 조회
Database 목록 조회
-- Database 목록 조회
SHOW DATABASES;
Table 정보조회 (with comment)
-- 테이블 목록 조회
SHOW TABLES;
-- 'springboot' 계정의 'Product' 테이블 정보
SELECT *
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_SCHEMA = 'springboot'
AND TABLE_NAME = 'Product'
;
COLUMN 정보조회 (with comment)
show columns from 테이블명;
-- Product 테이블 컬럼정보
show columns from Product;
/* Query를 통한 테이블정보 조회 */
SELECT TABLE_SCHEMA,TABLE_NAME,COLUMN_NAME,ORDINAL_POSITION,COLUMN_DEFAULT
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_SCHEMA = 'database_name'
AND TABLE_NAME = 'table_name';
-- springboot 계정의 Product 테이블 컬럼정보
SELECT *
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_SCHEMA = 'springboot'
AND TABLE_NAME = 'Product';
TABLE CREATE 구문 확인
show CREATE table Product;
결과
CREATE TABLE `Product` (
`id` bigint NOT NULL COMMENT '제품 ID',
`name` varchar(255) DEFAULT NULL COMMENT '제품명',
`price` double DEFAULT NULL COMMENT '제품가격',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='제품정보'
TABLE 정보 조회
SELECT TT.TABLE_NAME
, TT.COLUMN_NAME
, TT.ORDINAL_POSITION
, TT.COLUMN_TYPE
, CASE WHEN TT.IS_NULLABLE = 'NO'
THEN 'N' ELSE 'Y'
END NULL_ABLE
, TT.COLUMN_DEFAULT
, CASE WHEN TT.COLUMN_KEY = 'PRI'
THEN 'PK' ELSE ''
END PK
, IDX.INDEX_NAME
, TT.COLUMN_COMMENT
FROM (
SELECT T.TABLE_NAME
, C.COLUMN_NAME
, C.COLUMN_COMMENT
, C.ORDINAL_POSITION
, C.COLUMN_TYPE
, C.IS_NULLABLE
, C.COLUMN_DEFAULT
, C.COLUMN_KEY
FROM INFORMATION_SCHEMA.TABLES AS T /* 테이블 정보 */
, INFORMATION_SCHEMA.COLUMNS AS C /* 컬럼 정보 */
WHERE T.TABLE_SCHEMA = 'springboot'
AND T.TABLE_NAME = 'Product'
AND T.TABLE_NAME = C.TABLE_NAME
) TT
LEFT JOIN INFORMATION_SCHEMA.STATISTICS IDX /* INDEX 정보 */
ON TT.TABLE_NAME = IDX.TABLE_NAME
AND TT.COLUMN_NAME = IDX.COLUMN_NAME
ORDER BY TT.ORDINAL_POSITION
TABLE COMMENT 설정
ALTER TABLE 테이블명 COMMENT = '테이블 코멘트';
-- 사용의 예
ALTER TABLE Product COMMENT = '제품정보';
COLUMNS COMMENT 설정
/* 테이블 생성 시 Comment 를 넣을 수 있음.*/
CREATE TABLE `Product` (
`id` bigint NOT NULL COMMENT '제품 ID',
`name` varchar(255) DEFAULT NULL COMMENT '제품명',
`price` double DEFAULT NULL COMMENT '제품가격',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='제품정보'
/* Alter 명령을 이용해서 comment를 추가할 수 있음. */
ALTER TABLE 테이블명 MODIFY 컬럼명 데이터타입 COMMENT '컬럼 코멘트'; -- 컬럼 코멘트 설정
-- 사용의 예
ALTER TABLE Product MODIFY id bigint COMMENT '제품 ID'; -- 컬럼 코멘트 설정
ALTER TABLE Product MODIFY name varchar(255) COMMENT '제품명'; -- 컬럼 코멘트 설정
ALTER TABLE Product MODIFY price double COMMENT '제품가격'; -- 컬럼 코멘트 설정
View 조회하기
SELECT *
FROM INFORMATION_SCHEMA.VIEWS
728x90