DB/실습

7. [ DB ] MySQL 문자열 함수 : 정의와 활용 예시 (1)

천재단미 2024. 11. 29. 14:02
728x90
반응형

 
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;


 

 

 

 

 

 

 

 

 

728x90
반응형
home top bottom
}