| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | 7 |
| 8 | 9 | 10 | 11 | 12 | 13 | 14 |
| 15 | 16 | 17 | 18 | 19 | 20 | 21 |
| 22 | 23 | 24 | 25 | 26 | 27 | 28 |
- 파이썬
- ridge 회귀
- 직무전환
- 2026목표
- ml 실전 프로젝트
- 데이터엔지니어
- 데이터엔지니어링배우기
- 데이터직무
- 파이썬기초
- Growth_Hacking
- 데이터리안
- 2026목표세우기
- 데이터 엔지니어
- 판다스
- 일하면서성장하고있습니다
- 데이터분석기법
- 데이터분석
- 비전공자데이터분석가
- 서비스분석기법
- 데이터리안웨비나
- 데이터분석가
- 데이터리안월간웨비나
- 데이터엔지니어링시작하기
- 데이터사이언티스트
- kaggle 프로젝트
- CareerPivot
- 데이터엔지니어링
- 파이썬오류
- Python
- 데이터 분석가
- Today
- Total
데이터 분석가 Damla's blog
[MYSQL] 데이터를 대문자와 소문자로 바꾸기 본문
영어로 DB를 입력할 경우 대문자와 소문자로 입력된 데이터 수정이 필요한 경우가 있다.
이 경우 세 개의 함수가 필요하다.
1) CONCAT(str1, str2, ...)
CONCAT 함수는 두 개이상의 텍스트를 결합한다.
예를 들어 각 열에 문자가 나뉘어져서 저장되는데 CONCAT함수를 사용하면 한번에 각 열에 있는 문자들이 한 줄로 합하여 표시된다.
SELECT CONCAT(firstname,'',lastname) AS fullname FROM users
Users table에 성과 이름이 따로 저장되어 있을 경우 CONCAT함수를 사용하여 하나의 셀에 표시할 수 있다.
2) UPPER & 3) LOWER
UPPER(column1) => 컬럼의 데이터를 대문자로 바꾸기
LOWER(column1) => 컬럼의 데이터를 소문자로 바꾸기
4) SUBSTRING
아주 유용한 함수이다.
내가 원하는 자리까지 자를 수 있다.
SUBSTRING(column1, 1, 5)
SUBSTRING(컬럼명, 표시할 내용의 시작 자리, 표시할 내용의 끝 자리)
Tip!
비슷하고 유용한 함수
SUBSTRING_INDEX(column1, '@', -1)
=> 이메일 도메인정보만 출력하고 싶은 경우
이메일 데이터를 아이디와 분리하고 싶을 때 동일한 기준으로 구성된 데이터가 있다면
SUBSTRING_INDEX를 활용하여 데이터를 특정기준(@, -, ,(콤마)등)으로 잘라서 원하는 데이터 출력이 가능하다.
만약 이런 이런 데이터가 있다면 (거의 이렇게 만들지 않겠지만)
테이블 명: table1
| ID | name |
| 1 | tOM |
| 2 | jASON |
1. substring 을 활용하여 대문자와 소문자로 바꾸고자하는 자리수를 지정한다.
SUBSTRING(name,1,1) / SUBSTRING(name,2)
2. 각 SUBSTRING 절을 UPPER 과 LOWER로 감싼다.
3. CONCAT 함수를 활용하여 두개로 나뉜 데이터를 합하고 이것에 별칭을 부여한다.
▶ 이 단계를 거쳐 도출된 SQL쿼리문
SELECT CONCAT(UPPER(SUBSTRING(name,1,1)), LOWER(SUBSTRING(name,2))) AS name
FROM table1
연습문제
Leetcode 1667번 Fix Names In a Table 문제를 위 함수들을 활용하여 풀 수 있다.
답안
SELECT user_id
, CONCAT(UPPER(SUBSTRING(name,1,1)),LOWER(SUBSTRING(name,2))) AS name
FROM users