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

MySQL 데이터베이스에서 필드 이름과 데이터 유형을 조회하는 방법

MySQL에서 특정 테이블의 컬럼(필드) 이름과 해당 데이터 유형을 한 번에 확인하고 싶다면 INFORMATION_SCHEMA.COLUMNS 뷰를 활용하면 됩니다. 이 방법은 별도의 도구 없이 SQL 쿼리만으로 테이블 구조를 손쉽게 파악할 수 있어 매우 유용합니다.

기본 문법

컬럼 이름과 데이터 유형을 조회하는 기본적인 쿼리 문법은 다음과 같습니다.

SELECT COLUMN_NAME, COLUMN_TYPE
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = '테이블명';

예제 테이블 생성

실습을 위해 먼저 예제용 테이블을 하나 만들어 보겠습니다.

mysql> create table DemoTable
    (
    Id int NOT NULL AUTO_INCREMENT PRIMARY KEY,
    ClientName varchar(60),
    ClientAge int,
    ClientSalary DECIMAL(10,4),
    isRegularClient bool
    );
Query OK, 0 rows affected (0.44 sec)

위 테이블은 정수형 ID, 문자열 이름, 나이, 소수점을 포함한 급여, 불리언 타입의 고객 여부 등 다양한 데이터 유형을 포함하고 있어 예제로 적합합니다.

필드 이름과 유형 조회하기

이제 INFORMATION_SCHEMA.COLUMNS를 사용해 DemoTable의 필드 이름과 데이터 유형을 조회하는 쿼리는 다음과 같습니다.

mysql> SELECT COLUMN_NAME, COLUMN_TYPE
    FROM INFORMATION_SCHEMA.COLUMNS
    WHERE TABLE_NAME = 'DemoTable';

위 쿼리를 실행하면 다음과 같은 결과가 출력됩니다.

+-----------------+---------------+
| COLUMN_NAME     | COLUMN_TYPE   |
+-----------------+---------------+
| Id              | int(11)       |
| ClientName      | varchar(60)   |
| ClientAge       | int(11)       |
| ClientSalary    | decimal(10,4) |
| isRegularClient | tinyint(1)    |
+-----------------+---------------+
5 rows in set (0.02 sec)

참고 사항

결과를 보면 bool 타입으로 선언한 isRegularClient 컬럼이 실제로는 tinyint(1)로 저장된 것을 확인할 수 있습니다. MySQL은 내부적으로 불리언 값을 tinyint로 처리하기 때문입니다. 또한, 여러 데이터베이스를 사용 중이라면 TABLE_SCHEMA = '데이터베이스명' 조건을 함께 추가하면 원하는 데이터베이스의 테이블만 정확하게 조회할 수 있습니다.