[MariaDB] Build In Functions(1) - 문자열

chaeyeong·2025년 2월 3일

SQL

목록 보기
1/6

✨ MySql의 내장함수 (Build In Functions)


🔠 문자열 함수

(1) ASCII, CHAR

ASCII('문자')

  • 해당 문자의 아스키 코드 값을 반환하는 함수이다.

CHAR(아스키코드값)

  • 해당 아스키코드 값에 해당하는 문자를 반환하는 함수이다.
SELECT ASCII('A'), CHAR(65);


(2) BIT , CHAR , LENGTH

BIT('문자열')

  • 문자열의 bit 수를 반환하는 함수이다.

CHAR('문자열')

  • 문자열의 문자 수를 반환하는 함수이다.

LENGTH('문자열')

  • 문자열의 byte를 반환하는 함수이다.
SELECT BIT_LENGTH('pie'), CHAR_LENGTH('pie'), LENGTH('pie');


  • 한글 값은 3byte 이다.
SELECT BIT_LENGTH('파이'), CHAR_LENGTH('파이'), LENGTH('파이')
	FROM tbl_menu;


(3) CONCAT

CONCAT(문자열1, 문자열2, ...)

  • 나열된 문자열들을 연결하는 함수이다.

CONCAT_WS(구분자, 문자열1, 문자열2, ...)

  • CONCAT_WS를 사용하면 문자열 사이에 구분자를 넣어 반환한다.
SELECT CONCAT('호랑이', '기린', '토끼');
SELECT CONCAT_WS(',', '호랑이', '기린', '토끼');


(4) 문자 탐색 함수

SELECT
	ELT(2, '사과', '딸기', '바나나') 
	-- 첫번째 인자인 숫자 위치에 있는 문자 변환
  , FIELD('딸기', '사과', '딸기', '바나나')
    -- 첫번째 인자인 문자가 있는 위치의 숫자 반환
  , FIND_IN_SET('바나나', '사과,딸기,바나나')
    -- 첫번째 인자인 문자가 셋 안에서 있는 위치 숫자 반환
  , INSTR('사과딸기바나나', '딸기')
	-- 두번째 인자인 문자가 첫번째 인자 문자열 내부에서의 시작 위치 반환
  , LOCATE('딸기', '사과딸기바나나');
	-- INSTR과 인자 순서만 반대 


(5) FORMAT

FORMAT(숫자, 소수점 자리수)

  • 숫자의 소수점을 소수점 이하부터 입력된 자리수 만큼 반환하는 함수이다.
  • 출력 시에 천 단위로 ',' 구분자가 자동으로 삽입된다.
SELECT FORMAT(123123123123.456456, 3);


(6) BIN, OCT, HEX

BIN(10진수)

  • BIN은 10진수를 2진수로 변환한 값을 반환하는 함수이다.

OCT(10진수)

  • BIN은 OCT는 8진수로 변환한 값을 반환하는 함수이다.

HEX(10진수)

  • BIN은 HEX는 16진수로 변환한 값을 반환하는 함수이다.
SELECT BIN(65), OCT(65), HEX(65);


(7) INSERT

INSERT(문자열, 시작위치, 길이, 새로운 문자열)

  • 문자열의 시작위치에 있는 문자부터 입력된 길이 만큼 새로운 문자열을 삽입한다.
SELECT INSERT('내 이름은 아무개 입니다.', 7, 3, '홍길동');


(8) LEFT, RIGHT

LEFT(문자열, 길이)

  • 문자열의 맨 왼쪽 문자에서 시작하여 입력된 길이 만큼 반환하는 함수이다.

RIGHT(문자열, 길이)

  • 문자열의 맨 오른쪽 문자에서 시작하여 입력된 길이 만큼 반환하는 함수이다.
SELECT LEFT('Hello World!', 3), RIGHT('Hello World!', 3);


(9) UPPER, LOWER

UPPER('문자열')

  • 문자열을 전부 대문자로 변환하여 반환하는 함수이다.

RIGHT('문자열')

  • 문자열을 전부 소문자로 변환하여 반환하는 함수이다.
SELECT UPPER('Hello World!'), LOWER('Hello World!');


(10) LPAD, RPAD

LPAD(문자열, 전체 길이, 대체 문자열)

  • 문자열을 왼쪽정렬 하고 전체 길이에서 남는 부분을 대체 문자열로 채운다.

RPAD(문자열, 전체 길이, 대체 문자열)

  • 문자열을 오른쪽정렬 하고 전체 길이에서 남는 부분을 대체 문자열로 채운다.
SELECT LPAD('왼쪽', 6, '@'), RPAD('오른쪽', 6, '@');


(11) LTRIM, RTRIM

LTRIM(문자열)

  • 문자열의 왼쪽 공백을 제거하여 반환하는 함수이다.

RTRIM(문자열)

  • 문자열의 오른쪽 공백을 제거하여 반환하는 함수이다.
SELECT LTRIM('		왼쪽		'), RTRIM('		오른쪽	');


(12) TRIM (BOTH, LEADING, TRAILING)

TRIM('문자열')
TRIM([BOTH|LEADING|TRAILING] '지정문자' FROM 문자열)

  • LEADING은 왼쪽, TRAILING은 오른쪽, BOTH는 양쪽의 공백이나 지정 문자의 반복을 제거한다.
SELECT TRIM('		mariadb		'), TRIM(BOTH '@' FROM '@@mariadb@@@');


(13) REPEAT

REPEAT('문자열', 반복횟수)

  • 문자열을 입력된 수 만큼 반복하여 반환하는 함수이다.
SELECT repeat('재밌어', 3);


(14) REPLACE

REPLACE('문자열', '대체 대상', '대체 문자열')

  • 문자열의 특정 부분을 대체 문자열로 바꿔서 반환하는 함수이다.
SELECT REPLACE('마리아db', '마리아', 'maria');


(15) REVERSE

REVERSE('문자열')

  • 문자를 거꾸로 바꾼 뒤에 반환하는 함수이다.
SELECT REVERSE('hello');


(16) SPACE

SPACE(공백 개수)

  • 지정된 개수 만큼 공백을 추가하는 함수이다.
  • CONCAT과 함께 사용하면 문자열 사이에 공백을 추가할 수 있다.
SELECT CONCAT('제 이름은', SPACE(5), '이고 나이는', SPACE(3), '세 입니다.');


(17) SUBSTRING

SUBSTRING('문자열', 시작위치, 길이)

  • 문자열을 지정 위치부터 입력된 길이 만큼만 부분적으로 반환하는 함수이다.

SUBSTRING('문자열', 시작위치)

  • 문자열을 지정 위치부터 끝까지 반환하는 함수이다.
SELECT
	SUBSTRING('안녕하세요 반갑습니다.', 7, 2)
  , SUBSTRING('안녕하세요 반갑습니다.',  7);


(18) SUBSTRING_INDEX

SUBSTRING_INDEX('문자열', '구분자', 문자열 개수)

  • 문자열을 구분자를 기준으로 분리하고 지정된 개수 만큼의 문자열을 반환한다.
  • 개수를 음수로 입력하면 뒤에서부터 N개를 반환한다.
SELECT
	SUBSTRING_INDEX('hong.test@gmail.com', '.', 2)
  , SUBSTRING_INDEX('hong.test@gmail.com', '.', -2);
profile
그래도 해야지 어떡해

0개의 댓글