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

MySQL에서 테이블 이름 기준으로 테이블 목록 정렬하여 조회하는 방법

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 조건을 생략하면 서버의 모든 데이터베이스에 있는 테이블이 함께 조회되므로, 반드시 원하는 데이터베이스 이름을 지정하는 것이 좋습니다.