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

MySQL UPDATE 쿼리로 모든 레코드의 첫 글자만 대문자로, 나머지는 소문자로 변환하는 방법

MySQL에서 첫 글자만 대문자로 변환하기

데이터베이스를 운영하다 보면 대소문자가 뒤섞인 문자열 데이터의 형식을 통일해야 하는 경우가 자주 발생합니다. 예를 들어, 모든 글자가 대문자로 저장된 이름 데이터를 '첫 글자만 대문자, 나머지는 소문자' 형태로 바꾸고 싶다면 MySQL의 UPDATE 문과 문자열 함수들을 조합하면 됩니다. 이번 글에서는 전체 레코드를 한 번에 업데이트하는 방법을 단계별로 살펴보겠습니다.

1. 테이블 생성

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

mysql> create table DemoTable2017
    -> (
    -> Name text
    -> );
Query OK, 0 rows affected (0.55 sec)

2. 레코드 삽입

INSERT 명령을 사용해 테이블에 샘플 데이터를 입력합니다.

mysql> insert into DemoTable2017 values('JOHN SMITH,MYSQL');
Query OK, 1 row affected (0.13 sec)

mysql> insert into DemoTable2017 values('DAVID MILLER,MONGODB');
Query OK, 1 row affected (0.12 sec)

mysql> insert into DemoTable2017 values('CHRIS BROWN,JAVA');
Query OK, 1 row affected (0.11 sec)

3. 현재 데이터 확인

SELECT 문으로 테이블의 모든 레코드를 조회해 보겠습니다.

mysql> select *from DemoTable2017;

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

+----------------------+
| Name                 |
+----------------------+
| JOHN SMITH,MYSQL     |
| DAVID MILLER,MONGODB |
| CHRIS BROWN,JAVA     |
+----------------------+
3 rows in set (0.00 sec)

현재 모든 값이 대문자로 저장되어 있는 것을 확인할 수 있습니다.

4. 첫 글자만 대문자로 변환하는 UPDATE 쿼리

이제 첫 글자만 대문자로, 나머지는 모두 소문자로 변경하는 쿼리를 실행합니다.

mysql> update DemoTable2017
   -> set Name=REPLACE(CONCAT(UPPER(LEFT(Name, 1)),
LOWER(SUBSTRING(Name, 2))),' , ', ', ');
Query OK, 3 rows affected (0.16 sec)
Rows matched: 3 Changed: 3 Warnings: 0

쿼리 동작 원리

  • LEFT(Name, 1): 문자열의 첫 번째 문자를 추출합니다.
  • UPPER(): 추출한 첫 글자를 대문자로 변환합니다.
  • SUBSTRING(Name, 2): 두 번째 문자부터 끝까지의 문자열을 가져옵니다.
  • LOWER(): 나머지 부분을 모두 소문자로 변환합니다.
  • CONCAT(): 대문자로 변환된 첫 글자와 소문자로 변환된 나머지 부분을 하나로 연결합니다.
  • REPLACE(): 콤마 주변의 불필요한 공백을 정리하여 깔끔한 형식을 유지합니다.

5. 업데이트 결과 확인

변경된 테이블을 다시 조회해 보겠습니다.

mysql> select *from DemoTable2017;

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

+----------------------+
| Name                 |
+----------------------+
| John smith,mysql     |
| David miller,mongodb |
| Chris brown,java     |
+----------------------+
3 rows in set (0.00 sec)

모든 레코드의 첫 글자만 대문자로 표시되고, 나머지 문자는 소문자로 정상적으로 변환된 것을 확인할 수 있습니다. 이처럼 LEFT, UPPER, LOWER, SUBSTRING 함수를 조합하면 별도의 애플리케이션 로직 없이 SQL만으로 대량의 문자열 데이터 형식을 손쉽게 통일할 수 있습니다.