MySQL의 concat() 함수는 여러 문자열을 하나로 연결하는 데 사용되며, lower() 함수는 문자열의 대문자를 모두 소문자로 변환하는 역할을 합니다. 이 두 함수를 함께 사용하면 여러 컬럼의 값을 하나로 합치면서 동시에 소문자로 정규화할 수 있어 데이터 처리에 매우 유용합니다.
예제용 테이블 생성하기
먼저 실습을 위해 테이블을 생성하겠습니다. 테이블 생성 쿼리는 다음과 같습니다.
mysql> create table concatAndLowerDemo -> ( -> FirstValue varchar(10), -> SecondValue varchar(10), -> ThirdValue varchar(10), -> FourthValue varchar(10) -> ); Query OK, 0 rows affected (0.55 sec)
레코드 삽입하기
이제 insert 명령어를 사용하여 테이블에 몇 개의 레코드를 삽입해 보겠습니다.
mysql> insert into concatAndLowerDemo values('John','12345','Java','MySQL');
Query OK, 1 row affected (0.21 sec)
mysql> insert into concatAndLowerDemo values('Hi','12345','98764','MongoDB');
Query OK, 1 row affected (0.24 sec)
mysql> insert into concatAndLowerDemo values('9485','746464','903940','cpp');
Query OK, 1 row affected (0.15 sec)저장된 레코드 확인하기
select 문을 사용하여 테이블의 모든 레코드를 조회해 보겠습니다.
mysql> select *from concatAndLowerDemo;
실행 결과는 다음과 같습니다.
+------------+-------------+------------+-------------+ | FirstValue | SecondValue | ThirdValue | FourthValue | +------------+-------------+------------+-------------+ | John | 12345 | Java | MySQL | | Hi | 12345 | 98764 | MongoDB | | 9485 | 746464 | 903940 | cpp | +------------+-------------+------------+-------------+ 3 rows in set (0.00 sec)
concat()과 lower()를 함께 사용하기
다음은 하나의 쿼리 안에서 concat()과 lower()를 동시에 사용하는 방법입니다. concat()으로 네 개의 컬럼 값을 먼저 연결한 후, 그 결과를 lower()로 감싸서 전체를 소문자로 변환합니다.
mysql> select lower(concat(FirstValue,SecondValue,ThirdValue,FourthValue)) AS lowerDemo from concatAndLowerDemo;
실행 결과는 다음과 같습니다.
+---------------------+ | lowerDemo | +---------------------+ | john12345javamysql | | hi1234598764mongodb | | 9485746464903940cpp | +---------------------+ 3 rows in set (0.00 sec)
출력 결과를 보면 각 행의 네 컬럼 값이 하나의 문자열로 연결되고, 기존의 대문자(John, Java, MySQL, Hi, MongoDB 등)가 모두 소문자로 변환된 것을 확인할 수 있습니다. 이처럼 concat()과 lower()를 조합하면 이메일 주소 정규화, 검색 키 생성 등 다양한 상황에서 손쉽게 문자열을 가공할 수 있습니다.