MySQL에서 컬럼 이름을 알파벳 순서로 가져오기
MySQL에서 테이블의 컬럼 이름을 알파벳 순서로 조회하려면 ORDER BY 절을 사용해야 합니다. 기본 문법은 다음과 같습니다.
SELECT anyReferenceName.COLUMN_NAME
FROM INFORMATION_SCHEMA.COLUMNS anyReferenceName
WHERE anyReferenceName.TABLE_NAME = 'yourTableName'
ORDER BY anyReferenceName.COLUMN_NAME;
먼저 INFORMATION_SCHEMA.COLUMNS를 사용하여 테이블의 모든 컬럼을 조회한 뒤, ORDER BY로 정렬하는 방식입니다. INFORMATION_SCHEMA는 MySQL이 데이터베이스의 메타데이터(테이블, 컬럼, 인덱스 등) 정보를 저장해 두는 시스템 스키마이므로, 별도의 권한 설정 없이도 컬럼 정보를 손쉽게 확인할 수 있습니다.
예제 테이블 생성
문법을 직접 확인해 보기 위해 예제 테이블을 먼저 만들어 보겠습니다. 테이블 생성 쿼리는 다음과 같습니다.
mysql> create table ColumnsOrder
-> (
-> StudentFirstName varchar(20),
-> Id int,
-> StudentAge int,
-> StudentLastName varchar(20)
-> );
Query OK, 0 rows affected (0.90 sec)
위 테이블은 컬럼이 알파벳 순서가 아닌 상태로 정의되어 있으므로, 조회 결과가 어떻게 정렬되는지 확인하기에 적합합니다.
Case 1: 오름차순 정렬 (기본값)
ORDER BY는 기본적으로 오름차순(ASC)으로 정렬합니다. 따라서 별도의 옵션 없이 쿼리를 작성하면 컬럼 이름이 알파벳 순서로 출력됩니다.
mysql> select ref.column_name from information_schema.columns ref
-> where ref.table_name = 'ColumnsOrder'
-> order by ref.column_name;
실행 결과는 다음과 같습니다.
+------------------+
| COLUMN_NAME |
+------------------+
| Id |
| StudentAge |
| StudentFirstName |
| StudentLastName |
+------------------+
4 rows in set (0.13 sec)
결과를 보면 Id, StudentAge, StudentFirstName, StudentLastName 순으로 알파벳 오름차순 정렬된 것을 확인할 수 있습니다.
Case 2: 내림차순 정렬
컬럼 이름을 알파벳 역순으로 조회하고 싶다면 ORDER BY 절 마지막에 DESC 키워드를 추가하면 됩니다.
mysql> select ref.column_name from information_schema.columns ref
-> where ref.table_name = 'ColumnsOrder'
-> order by ref.column_name desc;
실행 결과는 다음과 같습니다.
+------------------+
| COLUMN_NAME |
+------------------+
| StudentLastName |
| StudentFirstName |
| StudentAge |
| Id |
+------------------+
4 rows in set (0.00 sec)
정리
MySQL에서 테이블 컬럼 이름을 정렬된 형태로 조회하는 핵심은 INFORMATION_SCHEMA.COLUMNS와 ORDER BY의 조합입니다. 기본값인 오름차순(ASC)은 알파벳 순서를, DESC 키워드는 역순 정렬을 제공하므로 상황에 맞게 활용하면 됩니다. 참고로 특정 데이터베이스의 컬럼만 조회하고 싶다면 WHERE 절에 ref.table_schema = '데이터베이스명' 조건을 함께 추가하는 것이 좋습니다.