Computer >> 컴퓨터 >  >> 프로그래밍 >> MySQL

MySQL에서 SHOW TABLES 결과를 이름순으로 정렬해 조회하는 방법

MySQL의 SHOW TABLES 명령은 데이터베이스에 있는 테이블 목록을 빠르게 확인할 수 있는 편리한 도구입니다. 하지만 이 명령은 결과를 원하는 순서로 정렬하는 옵션을 기본적으로 제공하지 않습니다. 이럴 때 INFORMATION_SCHEMA.TABLES를 활용하면 테이블 목록을 이름 기준으로 오름차순 또는 내림차순으로 정렬하여 조회할 수 있습니다.

정렬된 테이블 목록 조회 문법

아래 문법은 지정한 데이터베이스의 테이블 목록을 이름 기준 오름차순(ASC)으로 정렬해서 보여줍니다.

select TABLE_NAME from INFORMATION_SCHEMA.TABLES
where TABLE_SCHEMA= 'yourDatabaseName' order by TABLE_NAME;

SHOW TABLES와 동일한 결과 얻기

실제로 'sample'이라는 데이터베이스를 대상으로 위 쿼리를 실행한 예시는 다음과 같습니다.

mysql> select TABLE_NAME from INFORMATION_SCHEMA.TABLES
-> where TABLE_SCHEMA= 'sample' order by TABLE_NAME;

쿼리를 실행하면 아래와 같이 테이블 이름이 알파벳 순서로 깔끔하게 정렬되어 출력됩니다.

+------------------------------------+
| TABLE_NAME |
+------------------------------------+
| a |
| accumulateddemo |
| add10minutedemo |
| add1toexistingvalue |
| addanumbertocurrentvaluedemo |
| addcolumnandindexdemo |
| addingcurrentyeardemo |
| addprefixtocolumndemo |
| addtoexistingvaluedemo |
| addtotaltimedemo |
| ... |
| yesterdayrecordsdemo |
| yourtable |
+------------------------------------+
342 rows in set (0.11 sec)

* 출력 결과가 매우 길어 일부만 발췌했습니다. 실제 실행 시에는 해당 데이터베이스의 모든 테이블이 정렬되어 표시됩니다.

내림차순으로 정렬하기

반대로 이름 역순(Z→A)으로 목록을 확인하고 싶다면 DESC 키워드를 추가하면 됩니다.

select TABLE_NAME from INFORMATION_SCHEMA.TABLES
where TABLE_SCHEMA = 'yourDatabaseName'
order by TABLE_NAME DESC;

추가로 알아두면 좋은 팁

  • 뷰(View) 제외하기: WHERE 절에 AND TABLE_TYPE = 'BASE TABLE' 조건을 추가하면 실제 테이블만 조회되고 뷰는 제외됩니다.
  • 테이블 개수 세기: SELECT COUNT(*) FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = 'yourDatabaseName'; 쿼리로 데이터베이스 내 전체 테이블 수를 손쉽게 확인할 수 있습니다.

이처럼 INFORMATION_SCHEMA를 활용하면 단순히 테이블 목록을 보는 것을 넘어, 정렬·필터링 등 훨씬 유연한 메타데이터 조회가 가능합니다.