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

MySQL에서 SELECT 시 열 이름을 소문자로 조회하는 방법

MySQL에서 테이블의 열(컬럼) 이름이 대소문자 혼합으로 정의되어 있을 때, 이를 모두 소문자로 변환하여 조회하고 싶은 경우가 있습니다. 이럴 때는 INFORMATION_SCHEMA.COLUMNS 뷰와 LOWER() 함수를 함께 사용하면 간단하게 해결할 수 있습니다.

1. 예제 테이블 생성하기

먼저 실습에 사용할 테이블을 생성해 보겠습니다.

mysql> create table DemoTable
    (
    UserId int NOT NULL AUTO_INCREMENT PRIMARY KEY,
    UserFirstName varchar(20),
    UserLastName varchar(20),
    UserAge int,
    UserCountryName varchar(20)
    );
Query OK, 0 rows affected (0.27 sec)

2. 테이블 구조 확인하기

DESC 명령으로 테이블 구조를 확인하면 열 이름이 대문자로 시작하는 것을 볼 수 있습니다.

mysql> desc DemoTable;

위 명령을 실행하면 다음과 같은 결과가 출력됩니다.

+-----------------+-------------+------+-----+---------+----------------+
| Field           | Type        | Null | Key | Default | Extra          |
+-----------------+-------------+------+-----+---------+----------------+
| UserId          | int(11)     | NO   | PRI | NULL    | auto_increment |
| UserFirstName   | varchar(20) | YES  |     | NULL    |                |
| UserLastName    | varchar(20) | YES  |     | NULL    |                |
| UserAge         | int(11)     | YES  |     | NULL    |                |
| UserCountryName | varchar(20) | YES  |     | NULL    |                |
+-----------------+-------------+------+-----+---------+----------------+
5 rows in set (0.00 sec)

3. 열 이름을 소문자로 변환하여 조회하기

열 이름을 소문자로 변환하려면 INFORMATION_SCHEMA.COLUMNS에서 해당 테이블의 열 정보를 가져온 뒤, LOWER() 함수를 적용하면 됩니다.

mysql> SELECT LOWER(COLUMN_NAME) FROM INFORMATION_SCHEMA.COLUMNS WHERE table_name = 'DemoTable';

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

+--------------------+
| LOWER(COLUMN_NAME) |
+--------------------+
| userage            |
| usercountryname    |
| userfirstname      |
| userid             |
| userlastname       |
+--------------------+
5 rows in set (0.03 sec)

정리

INFORMATION_SCHEMA.COLUMNS는 데이터베이스 내 모든 테이블의 열 메타데이터를 담고 있는 시스템 뷰입니다. 여기서 COLUMN_NAME 값을 LOWER() 함수로 감싸면 원래 정의된 대소문자와 관계없이 모든 열 이름을 소문자로 일관되게 출력할 수 있습니다. 참고로 특정 데이터베이스의 테이블만 조회하려면 WHERE table_schema = '데이터베이스명' 조건을 추가하는 것이 좋습니다.