250x250
Notice
Recent Posts
Recent Comments
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- Docker
- SpringBoot
- Open Source
- Thymeleaf
- jpa
- JDBC
- 오픈소스
- error
- MySQL
- IntelliJ
- Source
- Exception
- spring
- 문서
- AJAX
- oracle
- Core Java
- Tomcat
- maven
- myBatis
- 설정
- Spring Boot
- MSSQL
- git
- ubuntu
- PostgreSQL
- Python
- JavaScript
- STS
- Eclipse
Archives
- Today
- Total
헤르메스 LIFE
[MySQL] 테이블 및 컬럼, 코멘트 조회 본문
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
'Database' 카테고리의 다른 글
[Tibero] Database 생성부터 User 생성까지 (0) | 2020.11.19 |
---|---|
[Tibero] 시작 / 종료 (0) | 2020.11.19 |
[MySQL] root 패스워드 분실 (0) | 2020.11.18 |
[Oracle] 대량 Insert 예제 (0) | 2020.11.18 |
[Oracle] IMP/EXP 시 에러 발생 (EXP-00008) (0) | 2020.11.18 |