Maria DB : 문자 함수

최혜린·2024년 10월 18일

1. 문자함수

함수설명
ASCII문자의 아스키 코드값을 반환
CHAR아스키 코드값에 해당하는 문자 반환
BIT_LENGTH, CHAR_LENGTH, LENGTH()할당된 Bit 크기,문자의 개수, 할당된 Byte수
CONCAT문자열 결합
CONCAT_WS구분자와 함께 문자열을 결합할 때 사용

BIT_LENGTH, CHAR_LENGTH, LENGTH() 에서 알파벳 , 숫자는 1바이트, 한글은 한들자에 3바이트가 들어간다.
따라서 다음과 같은 결과가 나온다.

1바이트는 8비트로 구성되므로, 문자열의 총 바이트 수에 8을 곱한 값입니다
	# 문자함수
	SELECT ASCII('A');
	SELECT CHAR (65);
	SELECT BIT_LENGTH('abc'), CHAR_LENGTH('abc'),LENGTH('abd');
	
		SELECT BIT_LENGTH('가나다'), CHAR_LENGTH('가나다'),LENGTH('가나다');
		
		# 렝스 => 바이트 기준으로 들어감 , 사용된 바이트 갯수를 표현함
		# 알파벳, 숫자는 1바이트.. 한글은 한글자 표현 3바이트 들어감 
	SELECT CONCAT('2020','01','01'); # 문자 결합은 concat
	SELECT CONCAT_WS('/','2020','01','01');
	
	



함수설명
ELT열거된 문자열 중 n번째 문자를 반환한다.
FIELD문자가 어디에 위치하는지 찾아서 반환한다. 없으면 0을 반환한다.
FIND_IN_SET찾을 문자열을 문자열 리스트레서 찾아서 반환한다. 문자열 리스트는 콤마(,)로 구분되어야 하며 공백이 없어야한다.
INSTR기준 문자열에서 부분 문자열을 찾아서 그 시작 위치를 반환한다.
LOCATEINSTR와 동일하지만 파라미터의 순서가 반대로 되어있다. POSITION()과 동일한 함수이다

	# 문자함수 - 데이터 찾기
	# 열거된 문자열 중에 두번쨰를 추출
	SELECT ELT (2, 'a','b','c'); # b
	 # b가 어디에 위치하는지 알고싶어요 
	SELECT FIELD ('b','a','b','c'); # 2
	 # c 위치 추출 # 콤마(구분자)를 통해 찾는다
	SELECT FIND_IN_SET ('c','a,b,c'); #3
	
	SELECT INSTR ('abcdb','b'), #2
	LOCATE ('d','abcd'); #4 

함수설명
BIN, OCT, HEX2진수, 8진수, 16진수 값을 반환한다.
INSERT기준 문자열의 위치부터 길이만큼을 삽입할 문자열로 변경한다.
LEFT, RIGHT왼쪽, 오른쪽으로부터 지정된 길이만큼 반환한다.(공백 포함)
LCASE, UCASE소문자 변경후 반환, 대문자 변환후 반환한다.
LPAD, RPAD문자열의 왼쪽 또는 오른쪽에 특정 문자(또는 문자열)를 추가하여 길이를 맞추는 데 사용한다.

	# 진수변환
	SELECT BIN (31), #11111
	OCT(31), #37
	HEX (31); #1F
	
	#문자열 대체
	SELECT INSERT ('가 나 다 라 마',2,3,'@@@'); # '가@@@마'
	SELECT INSERT ('가 나 다 라 마',INSTR ('가 나 다 라 마',''),3,'---'); #가 --- 라 마
	
	
	# 문자열 자르기 # 공백도 포함됨
	SELECT LEFT ( '가 나 다 라 마 바 사 ', 3), #가나
	RIGHT ('가 나 다 라 마 바 사', 3); 
	
	# 대소문자 변환
	SELECT LCASE ('aBcDe'),UCASE('aBcDe'); #abcde , ABCDE
	
	# 특정 문자 추가 
	SELECT LPAD('123', 8, '0'), RPAD('123',8, '0'); #00000123 ,12300000
함수설명
LTRIM/RTRIM문자열의 왼쪽/오른쪽 공백을 제거한다.
TRIM문자열 양쪽 공백을 모두 제거한다. 중간의 공백은 제거하지 않는다.
TRIM FROM앞(LEADING)또는 뒤(TRAILING)또는 양쪽(BOTH)에서 원하는 문자열을 자를 수 있다.
REPEAT은 문자열을 횟수만큼 반복한다
REPLACE문자열에서 원래 문자열을 찾아서 바꿀 문자열로 교체해준다.
REVERSE문자열을 거꾸로 만든다.
SPACE길이만큼의 공백을 반환한다.
SUBSTRING시작 위치부터 길이만큼 문자를 반환한다.
SUBSTRING_INDEX문자열에서 시작부터 구분자가 n번나오면 그 이후는 버린다. 수가 음수면 오른쪽부터 시작한다.

	# 공백 제거
	SELECT LTRIM ('  abc'), #abc
	RTRIM('abc  '), #abc
	TRIM('  a  bc  ');#a  bc
	
	#특수문자 제거
	SELECT TRIM(BOTH 'a' FROM 'aa『aabbcsaaa'), #『aabbcs
	REPLACE('aa『aabbc』aa', '『', ''); #aaaabbc』aa
	
	# 문자 반복
	SELECT repeat ('abc',3); #abcabcabc
	
	# 문자 교체 (중요)
	SELECT REPLACE ('나는 2학년 입니다','2학년','2학기'); #나는 2학기 입니다

	# 문자열 뒤집기
	SELECT REVERSE ('가 나 다'); #다 나 가
	
	# 공백 5개 삽입
	SELECT CONCAT ('ab',SPACE(5),'cd');
	
	
	# 문자열 쪼개기
	SELECT SUBSTRING('abcdef',3,2); # c로부터 2개 # cd
	SELECT SUBSTRING_INDEX('aa.ss.dd.ff.qq.zz','.',-3); #오른쪽으로부터  구분자 3개 이후 버림 # ff.qq.zz
	SELECT SUBSTRING_INDEX('aa.ss.dd.ff.qq.zz','.',3); #왼쪽으로부터  구분자 3개 이후 버림 #aa.ss.dd

profile
산으로 가는 코딩.. 등산 중..🌄

0개의 댓글