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

MySQL에서 데이터 값과 함께 컬럼의 데이터 유형을 별도 열로 표시하는 방법

MySQL에서 테이블에 저장된 실제 데이터 값과 해당 컬럼의 데이터 유형을 한 번에 조회하고 싶다면 INFORMATION_SCHEMA.COLUMNS를 활용할 수 있습니다. 이 메타데이터 뷰는 데이터베이스 내 모든 테이블과 컬럼의 구조 정보를 담고 있어, 일반 SELECT 쿼리와 조인하여 데이터 유형을 별도 열로 출력할 수 있습니다.

1. 샘플 테이블 생성

먼저 예제로 사용할 테이블을 생성해 보겠습니다.

mysql> create table DemoTable
    (
    Id int NOT NULL AUTO_INCREMENT PRIMARY KEY,
    Name varchar(20)
    );
Query OK, 0 rows affected (0.73 sec)

2. 데이터 삽입

INSERT 명령을 사용해 몇 개의 레코드를 추가합니다.

mysql> insert into DemoTable(Name) values('Chris');
Query OK, 1 row affected (0.25 sec)

mysql> insert into DemoTable(Name) values('Robert');
Query OK, 1 row affected (0.26 sec)

mysql> insert into DemoTable(Name) values('Sam');
Query OK, 1 row affected (0.12 sec)

3. 전체 레코드 확인

SELECT 문으로 테이블의 모든 레코드를 조회합니다.

mysql> select *from DemoTable;

실행 결과는 다음과 같습니다.

+----+--------+
| Id | Name   |
+----+--------+
| 1  | Chris  |
| 2  | Robert |
| 3  | Sam    |
+----+--------+
3 rows in set (0.00 sec)

4. 데이터 값과 데이터 유형을 함께 조회하기

이제 원본 테이블과 INFORMATION_SCHEMA.COLUMNS를 조인하여, 실제 데이터 값(Name)과 해당 컬럼의 데이터 유형(DATA_TYPE)을 별도 열로 동시에 표시하는 쿼리입니다.

mysql> SELECT DemoTable.Name, col1.DATA_TYPE 
FROM DemoTable, INFORMATION_SCHEMA.COLUMNS col1 
WHERE col1.TABLE_NAME='DemoTable' AND COLUMN_NAME='Name';

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

+--------+-----------+
| Name   | DATA_TYPE |
+--------+-----------+
| Chris  | varchar   |
| Robert | varchar   |
| Sam    | varchar   |
+--------+-----------+
3 rows in set (0.04 sec)

쿼리 설명 및 참고 사항

이 쿼리의 핵심은 WHERE 절에 있는 두 가지 조건입니다. TABLE_NAME='DemoTable'은 메타데이터를 조회할 대상 테이블을 지정하고, COLUMN_NAME='Name'은 데이터 유형을 확인할 컬럼을 지정합니다. 이렇게 하면 DemoTable의 각 행마다 Name 컬럼의 값과 그 데이터 유형인 'varchar'가 함께 표시됩니다.

추가로, 여러 데이터베이스에 같은 이름의 테이블이 존재할 수 있으므로 정확성을 높이려면 TABLE_SCHEMA 조건도 함께 사용하는 것이 좋습니다. 예를 들어 AND col1.TABLE_SCHEMA = 'your_database_name'을 WHERE 절에 추가하면 특정 데이터베이스로 범위를 좁힐 수 있습니다. 또한 명시적인 JOIN 구문(예: CROSS JOIN 또는 INNER JOIN ... ON 1=1)을 사용하면 가독성이 더욱 향상됩니다.