728x90
반응형
개발을 하다 보면 DB 테이블이나 컬럼 정보를 직접 조회해야 할 일이 자주 생깁니다.
- AS-IS 테이블 정의서를 작성할 때
- 기존 테이블 구조를 파악할 때
- 컬럼의 의미나 타입이 궁금할 때
등등…
매번 MySQL Workbench나 phpMyAdmin을 열고 하나하나 클릭하기보다는,
간단한 SQL로 빠르게 조회해서 정리하는 것이 훨씬 효율적입니다.
📌 기준: MySQL
📂 1. 데이터베이스 내 테이블 목록 조회
SELECT
@rownum := @rownum + 1 AS `No.`,
TABLE_NAME AS `테이블명`,
TABLE_COMMENT AS `테이블 코멘트`
FROM
INFORMATION_SCHEMA.TABLES,
(SELECT @rownum := 0) r
WHERE
TABLE_SCHEMA = 'your_database_name'; -- 여기에 데이터베이스 이름 입력
✅ 설명
- INFORMATION_SCHEMA.TABLES: MySQL에서 테이블 메타정보를 가지고 있는 시스템 테이블입니다.
- TABLE_SCHEMA: 조회할 데이터베이스 이름
- TABLE_NAME: 테이블 이름
- TABLE_COMMENT: 테이블에 작성된 주석 (없으면 빈값)
🔸 @rownum을 사용해 자동으로 번호를 붙여주면 엑셀 등에서 보기 좋습니다.
📋 2. 특정 테이블의 컬럼 정보 조회
SELECT
ORDINAL_POSITION AS `No.`,
COLUMN_NAME AS `컬럼명`,
COLUMN_COMMENT AS `설명`,
DATA_TYPE AS `데이터타입`,
CHARACTER_MAXIMUM_LENGTH AS `길이`,
CASE WHEN COLUMN_KEY = 'PRI' THEN 'Y' ELSE 'N' END AS `PK`,
CASE WHEN IS_NULLABLE = 'YES' THEN 'N' ELSE 'Y' END AS `NOT NULL`,
COALESCE(COLUMN_DEFAULT, 'NULL') AS `Default`
FROM
INFORMATION_SCHEMA.COLUMNS
WHERE
TABLE_NAME = 'your_table_name' AND
TABLE_SCHEMA = 'your_database_name' -- 여기에 데이터베이스 이름 입력
ORDER BY
ORDINAL_POSITION;
✅ 설명
- COLUMN_NAME: 컬럼 이름
- COLUMN_COMMENT: 컬럼에 작성된 설명 (주석)
- DATA_TYPE: 데이터 타입 (int, varchar 등)
- CHARACTER_MAXIMUM_LENGTH: 문자열 타입일 경우 최대 길이
- PK: Primary Key 여부 (Y/N)
- NOT NULL: 널 허용 여부 (Y/N)
- Default: 기본값 (없으면 NULL 출력)
📎 테이블 구조를 문서화하거나 시스템 정리할 때 유용하게 활용할 수 있습니다.
📌 마무리
- INFORMATION_SCHEMA는 모든 MySQL에서 기본 제공되는 메타 데이터 뷰입니다.
- 조회 결과를 복사해서 엑셀에 붙여 넣거나 문서화에 활용하면 생산성이 크게 향상됩니다.
- 개발, 운영, 기획 등 모든 부서에서 유용하게 사용할 수 있는 DB 리버스 엔지니어링 도구라고 볼 수 있습니다.
728x90
반응형
'DEV > Database' 카테고리의 다른 글
| [SQL] SQL에서 정규식을 활용한 조건 필터링 - dev는 제외하되 devops는 포함하고 싶다면? (0) | 2025.06.18 |
|---|---|
| [Mybatis] Mybatis 설치 (0) | 2022.12.26 |
| [MySQL] DDL문 ALTER - 컬럼 추가, 수정, 삭제 (0) | 2022.12.02 |
| [MySQL] update문에 에러가 날 때, Safe mode 해제 (0) | 2022.11.22 |
| [MySQL] 테이블생성, 사용해보기 (0) | 2022.11.22 |
댓글