반응형
0. 개요
MySQL 의 특정 Database 내부에 포함된 테이블, 뷰, 프로시저 등 특정 객체의 수를 쿼리문을 통해 조회하도록 한다.
1. 특정 DB 안의 테이블 수만 조회
Database 내부의 아래 객체의 수를 조회할 수 있는 쿼리이다.
- 테이블
SET @DB_NAME = '[DB명칭]';
SELECT COUNT(*) AS table_count
FROM information_schema.tables
WHERE table_schema = @DB_NAME
AND table_type = 'BASE TABLE';
▶ 실행 결과
2. 특정 DB 안의 객체 종류별로 조회
Database 내부의 아래 객체의 수를 조회할 수 있는 쿼리이다.
- 테이블
- 뷰
- 프로시저
- 트리거
- 이벤트
SET @DB_NAME = '[DB명칭]';
-- 테이블 수 조회
SELECT 'TABLE' AS object_type, COUNT(*) AS cnt
FROM information_schema.tables
WHERE table_schema = @DB_NAME
AND table_type = 'BASE TABLE'
UNION ALL
-- 뷰 수 조회
SELECT 'VIEW', COUNT(*)
FROM information_schema.tables
WHERE table_schema = @DB_NAME
AND table_type = 'VIEW'
UNION ALL
-- 프로시저 수 조회
SELECT 'PROCEDURE', COUNT(*)
FROM information_schema.routines
WHERE routine_schema = @DB_NAME
AND routine_type = 'PROCEDURE'
UNION ALL
-- 함수 수 조회
SELECT 'FUNCTION', COUNT(*)
FROM information_schema.routines
WHERE routine_schema = @DB_NAME
AND routine_type = 'FUNCTION'
UNION ALL
-- 트리거 수 조회
SELECT 'TRIGGER', COUNT(*)
FROM information_schema.triggers
WHERE trigger_schema = @DB_NAME
UNION ALL
-- 이벤트 수 조회
SELECT 'EVENT', COUNT(*)
FROM information_schema.events
WHERE event_schema = @DB_NAME;
▶ 실행 결과
특정 부분만 필요 시 상기 쿼리에서 필요한 부분만 잘라내어 사용하면 좋을 듯 하다.
300x250
반응형

