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

MySQL에서 테이블의 모든 필드(컬럼) 이름을 조회하는 방법

MySQL에서 특정 테이블에 정의된 모든 필드(컬럼)의 이름을 확인하고 싶다면, information_schema.columns 시스템 뷰를 활용하면 됩니다. 이때 table_schema에는 현재 사용 중인 데이터베이스를, table_name에는 대상 테이블명을 지정합니다.

기본 문법

아래와 같은 형식으로 쿼리를 작성하면 테이블의 전체 컬럼 목록을 세로 방향으로 깔끔하게 출력할 수 있습니다.

select column_name as 별칭 from information_schema.columns
where table_schema=database()
and table_name='테이블명'\G

여기서 database() 함수는 현재 선택된 데이터베이스를 반환하며, 마지막의 \G 옵션은 결과를 가로가 아닌 세로 형태로 보여주어 컬럼이 많은 경우 가독성을 높여 줍니다.

예제 테이블 생성

먼저 실습용으로 학생 정보를 담는 테이블을 하나 만들어 보겠습니다.

mysql> create table DemoTable1938
   (
   StudentId int,
   StudentName varchar(20),
   StudentAge int,
   StudentCountryName varchar(20),
   StudentMobileNumber bigint
   );
Query OK, 0 rows affected (0.00 sec)

모든 필드 조회 쿼리 실행

이제 DemoTable1938 테이블의 모든 필드 이름을 조회해 보겠습니다.

mysql> select column_name as ALL_FIELDS from information_schema.columns
   where table_schema=database()
   and table_name='DemoTable1938'\G

실행 결과

쿼리를 실행하면 아래와 같이 테이블에 정의된 5개의 필드가 순서대로 출력됩니다.

*************************** 1. row ***************************
ALL_FIELDS: StudentId
*************************** 2. row ***************************
ALL_FIELDS: StudentName
*************************** 3. row ***************************
ALL_FIELDS: StudentAge
*************************** 4. row ***************************
ALL_FIELDS: StudentCountryName
*************************** 5. row ***************************
ALL_FIELDS: StudentMobileNumber
5 rows in set (0.00 sec)

참고: 더 간단한 대안

단순히 필드 구조만 확인하는 것이 목적이라면 DESC 테이블명; 또는 SHOW COLUMNS FROM 테이블명; 명령어를 사용할 수도 있습니다. 다만 information_schema를 사용하면 특정 조건(예: 데이터 타입, 문자셋 등)으로 필터링하거나 다른 테이블과 조인하는 등 더 유연한 조회가 가능하다는 장점이 있습니다.