MySQL에서 테이블 이름을 기준으로 테이블 목록 정렬하기
MySQL에서는 INFORMATION_SCHEMA.TABLES 뷰의 table_name 컬럼에 ORDER BY 절을 적용하면 테이블 이름을 기준으로 테이블 목록을 정렬할 수 있습니다. ASC(오름차순) 또는 DESC(내림차순)를 사용해 원하는 방향으로 정렬할 수 있습니다.
기본 문법
SELECT table_name FROM information_schema.tables WHERE table_type = 'BASE TABLE' AND table_schema='yourDatabaseName' ORDER BY table_name DESC;
여기서 table_schema에는 실제 데이터베이스 이름을 지정하고, table_type = 'BASE TABLE' 조건을 추가하면 뷰(View)를 제외한 실제 테이블만 조회됩니다.
예제: sample 데이터베이스의 테이블 확인
먼저 SHOW TABLES 명령어로 sample 데이터베이스에 있는 모든 테이블을 확인해 보겠습니다.
mysql> show tables;
실행 결과는 다음과 같습니다.
+--------------------------+ | Tables_in_sample | +--------------------------+ | blobsizedemo | | insert_prevent | | insertrecord_selecttable | | insertrecordprevent | | mytable | | newlinedemo | | notequaloperator | | sumofeverydistinct | | yourtable | +--------------------------+ 9 rows in set (0.00 sec)
ORDER BY로 테이블 이름 내림차순 정렬하기
이제 information_schema.tables를 조회하면서 ORDER BY 절에 table_name과 DESC를 지정하면, 테이블 이름을 내림차순(Z→A 순)으로 정렬된 목록을 얻을 수 있습니다.
mysql> SELECT table_name -> FROM information_schema.tables -> WHERE table_type = 'BASE TABLE' AND table_schema='sample' -> ORDER BY table_name DESC;
실행 결과는 다음과 같습니다.
+--------------------------+ | TABLE_NAME | +--------------------------+ | yourtable | | sumofeverydistinct | | notequaloperator | | newlinedemo | | mytable | | insertrecordprevent | | insertrecord_selecttable | | insert_prevent | | blobsizedemo | +--------------------------+ 9 rows in set (0.00 sec)
참고 사항
- DESC 대신 ASC를 사용하면 테이블 이름이 오름차순(A→Z 순)으로 정렬됩니다.
- table_schema 조건을 생략하면 서버의 모든 데이터베이스에 있는 테이블이 함께 조회되므로, 반드시 원하는 데이터베이스 이름을 지정하는 것이 좋습니다.