[MySQL] 문자열 함수 -1-

2024. 8. 22. 23:41MySQL/SQL 기본

ASCII(아스키코드), CHAR(숫자)

문자의 아스키 코드값을 돌려주거나 숫자의 아스키 코드값에 해당하는 문자를 돌려준다. 

SELECT ASCII('A'), CHAR(65);

BLOB 글자를 오른쪽 버튼을 클릭한 뒤에 'Open Value in Viewer'을 선택한다. TEXT 탭에 내용이 있다. 

 

 

BIT_LENGTH(문자열), CHAR_LENGTH(문자열), LENGTH(문자열)

할당된 Bit 크기 또는 문자 크기를 반환한다. CHAR_LENGTH는 문자의 개수를 반환하며 LENGTH는 할당된 Byte 수를 반환한다. 

SELECT BIT_LENGTH('abc'), CHAR_LENGTH('abc'), LENGTH('abc'); //24 3 3
SELECT BIT_LENGTH('가나다'), CHAR_LENGTH('가나다'), LENGTH('가나다'); //72 3 3

영문은 3Byte, 한글은 9Byte를 할당한다. 

 

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

둘 다 문자열을 이어준다. CONCAT_WS는 구분자와 함께 문자열을 이어준다는 차이점이 있다. 

SELECT CONCAT_WS('/', '2025', '01', '01');

 

ELT(위치, 문자열1, 문자열2 ...) : 위치 번째에 해당하는 문자열을 반환한다. 

FIELD(찾을 문자열, 문자열1, 문자열2 ...) :  찾을 문자열의 위치를 반환,

매치되는 문자열이 없으면 0을 반환

 

FIND_IN_SET(찾을 문자열, 문자열 리스트) : 찾을 문자열을 문자열 리스트에서 찾아서 위치를 반환, 문자열 리스트는 콤마로 구분되어 있어야 하고 공백이 없어야 한다. 

INSTR(기준 문자열, 부분 문자열) : 기준 문자열에서 부분 문자열을 찾아서 그 시작 위치를 반환한다.

 

LOCATE(부분문자열, 기준문자열) : INSTR과 동일하지만 파라미터 순서가 반대로 되어 있다. 

SELECT ELT(2, '하나', '둘', '셋'), FIELD('둘', '하나', '둘', '셋'), FIND_IN_SET('둘', '하나,둘,셋'), INSTR('하나둘셋', '둘'), LOCATE('둘', '하나둘셋');

LOCATE와 POSITION은 동일한 함수다. 

'MySQL > SQL 기본' 카테고리의 다른 글

[MySQL] 문자열 함수 -3-  (0) 2024.09.06
[MySQL] 문자열 함수 -2-  (0) 2024.08.26
[MySQL] 제어흐름함수  (0) 2024.08.19
[MySQL] 암시적인 형 변환  (0) 2024.08.18
[MySQL] 데이터 형식 변환 함수  (0) 2024.08.13