MySQL 문자열 여러 함수중 유용한 함수의 정의와 활용 예시에 대하여 알아보겠습니다.
예시문)


위내용을 바탕으로 Dbeaver에 입력합니다.

1. CONCAT()
1) 정의
CONCAT() 함수는 MySQL에서 두 개 이상의 문자열을 결합하여 하나의 문자열로 만드는 데 사용되는 함수입니다. 이 함수는 문자열, 숫자 또는 표현식을 인수로 받아들여, 모든 인수를 순서대로 결합합니다. 만약 인수 중 하나라도 NULL인 경우, 결과는 NULL이 됩니다.
기본 구문
SELECT, CONCAT(expression1, expression2, expression3, ...); |
2) 예시
(1) 예시
조건 1. fname과 lname이 분리되어 있다.
조건 2. 합쳐서, full_name으로 가져오시오.
SELECT * , CONCAT(author_fname, " ", author_lname) from books; SELECT * , CONCAT(author_fname, " ", author_lname) full_name from books; SELECT * , CONCAT(author_fname, " ", author_lname) as "full name" from books; - 공백을 두고 가능은 하지만 차후 엔지니어사이에 혼돈을 우려 할수 있어서 사용하지 않습니다. |



(2) 예시
조건 1. 책 제목과 full_name만 가져오고 싶다.
조건2. full_name이 없을 경우 concat()을 이용하여 name을 취합해 준다.
SELECT title , CONCAT(author_fname, " ", author_lname) as full_name FROM books; |

(3) 예시
조건 1. 컬럼 하나로, "책 제목: 풀네임" 형식으로 조회하고 싶다.
예) The Namesake : Jhumpa Lahiri
SELECT CONCAT(title, " : ",author_fname, " ", author_lname) as title_name from books; |

2. SUBSTRING()
1) 정의
SUBSTRING() 함수는 MySQL에서 문자열의 일부를 추출하는 데 사용되는 함수입니다. 이 함수는 지정된 시작 위치에서부터 특정 길이만큼의 문자를 반환합니다. MySQL에서는 "SUBSTR()" 및 "MID()" 함수도 "SUBSTRING()"과 동일한 기능을 수행합니다.
기본 구문
SELECT, SUBSTRING(string, start, length) SELECT, SUBSTRING(string FROM start FOR length) - SQL 표준 구문 |
2) 매개변수 설명
(1) string: 필수. 추출할 컬럼입니다.
(2) start: 필수. 추출을 시작할 위치입니다.
양수일 경우 문자열의 시작부터, 음수일 경우 문자열의 끝에서부터 카운트합니다.
(3) length: 선택 사항. 추출할 문자의 수입니다. 생략할 경우 시작 위치부터 끝까지의 모든 문자가 반환됩니다.
선택해 주는 것이 좋습니다.
3) 주요 특징
(1) 양수 및 음수 인덱스: start 매개변수가 양수일 경우 문자열의 첫 번째 문자부터 시작하고, 음수일 경우 문자열의 끝에서부터 시작합니다.
(2) NULL 처리: 입력 문자열이 NULL인 경우 결과도 NULL이 됩니다.
4) 예시
(1) 예시
조건 1. 책 제목이 너무 긴 책들이 있습니다.
조건 2. 책 제목을 10글자만 보여주려 합니다. 제목칼럼을 short_title로 해주세요
조건 3. 문자열 데이터의 일부분만 가져오는 함수 : substring()
SELECT* , SUBSTRING(title, 1, 10 ) FROM books; SELECT SUBSTRING(title, 1, 10 ) as shot_title FROM books; |


(2) 예시
조건 1. 책 제목을, 맨 뒤에서 7번째 글자부터 끝까지 가져오세요.
SELECT SUBSTRING(title, -7 ) FROM books; |

(3) 예시 ( CONCAT와 복합예시)
조건 1. 책 제목을 처음부터 10글자만 가져오고, 뒷부분에는 ...을 붙여서 가져오세요
예) The Namesa...
SELECT CONCAT(SUBSTRING(title, 1, 10), '...') AS shortened_title FROM books; |

3. upper()
1) 정의
UPPER() 함수는 MySQL에서 문자열의 모든 문자를 대문자로 변환하는 데 사용되는 함수입니다. 이 함수를 사용하면 입력된 문자열의 대소문자를 일관되게 유지할 수 있으며, 데이터베이스에서 문자열 비교를 수행할 때 유용합니다.
2) 기본 구문
SELECT UPPER(string) |
(1) 예시
조건 1. 대소문자 처리하는 함수
조건 2. 대문자로 바꾸는 함수 upper()
조건 3. 소문자로 바꾸는 함수 lower()
조건 4. 첫 번째 문자만 대문자로 바꾸는 것은 없지만 함수를 조합하여 변경이 가능하다.
SELECT upper(author_fname) FROM books; |
(2) 예시
조건 1. 각각 컬럼을 변경하고 싶을 경우에
SELECT title as original_title, author_fname as author, pages, upper(title) as title FROM books; SELECT title original_title, author_fname author, pages, upper(title) title FROM books; use test6; SELECT* FROM books; |
4. replace()
1) 정의
SQL에서 문자열 내의 특정 부분을 다른 문자열로 바꾸는 데 사용되는 함수입니다. 찾을 문자열이 원본 문자열에 존재하지 않으면 원본 그대로 반환되며, 대체할 문자열을 빈 문자열로 설정하면 찾을 문자열이 삭제된 것과 같은 효과를 볼 수 있습니다.
2) 기본 구문
REPLACE(string, old_substring, new_substring) |
(1) 예시
조건 1. 책 제목에 The 가 있으면, Hello로 바꿔서 가져오자.
SELECT titl, REPLACE(title, "The", "Hello") FROM books; |
(2) 예시
조건 2. 책 제목에 The가 있으면 제거하고 가져오세요.
SELECT title, REPLACE(title, "The", "" ) FROM books; |

(3) 예시
조건 1. author_lname을 역순으로 가져오세요
SELECT author_fname , REVERSE(author_lname) FROM books; |

3) 활용사례
(1) 데이터 정제( 사용자 입력 데이터나 외부 데이터의 오류를 수정)
(2) 데이터 변환( 정보를 더 읽기 쉬운 형태로 변환)
(3) 로그 분석( 특정 패턴이나 키워드를 대체하여 가독성 향상)
등으로 많이 사용되고 있습니다.
5. char_length()
1) 정의
문자열의 문자 수를 반환하는 MySQL 문자열 함수입니다.
2) 기본 구문
CHAR_LENGTH(문자열) 예: SELECT CHAR_LENGTH('Hello'); -- 결과: 5 SELECT CHAR_LENGTH('안녕'); -- 결과: 2 |
(1) 예시
조건 1. 책제목 글자 개수를 구하세요
조건 2. 칼럼제목을 count로 바꾸시오.
SELECT title, char_length(title) as count -- as 컬럼제목 FROM books; |

'DB > 실습' 카테고리의 다른 글
13. [ DB ] MySQL 확장 : 스키마(Schema) 활용 - 어플 / 카페 (1) | 2024.12.06 |
---|---|
11. [ DB ] MySQL 문법 : JOIN의 활용 예시 (0) | 2024.12.05 |
9. [ DB ] MySQL 숫자열 함수 : 정의와 활용 예시 (0) | 2024.11.30 |
8. [ DB ] MySQL 문자열 함수 : 정의와 활용 예시 (2) (2) | 2024.11.29 |
6. [ DB ] MySQL의 CRUD 작업 : 정의와 활용 예시 (0) | 2024.11.27 |