자주 쓰는 MYSQL 문자열 함수
안녕하세요, 킹래빗입니다.
오늘은 SQL에서 자주 사용하고 또 종종 헷갈리는 문자열 함수를 정리해봤어요!
저는 주로 MYSQL을 사용하고 있어서 MYSQL 함수로 정리했으니 참고해주세요.
» 문자열을 이어보자
CONCAT(문자열, 문자열)
복수의 문자열을 잇는 함수입니다. 이어서 쓰고 싶은 문자열 두개를 넣어줍니다.
SELECT CONCAT('ABC', 'DEF'); -- 'ABCEDF'를 반환
» 몇번째 글자까지만 가져오기
LEFT(문자열, 길이) 또는 RIGHT(문자열, 길이)
왼쪽 또는 오른쪽에서 길이만큼 문자를 끊어줍니다. 첫 변수에는 끊어줄 문자열을, 다음 변수에는 몇 자리까지 문자열을 가져올지 숫자를 넣어주면 됩니다.
SELECT LEFT('가나다라마바사', 4); -- '가나다라'를 반환
» 문자열 특정 부분 가져오기
SUBSTRING(문자열, 시작위치, 길이)
약간 헷갈릴 수 있는 함수인데요, 특정 부분을 가져오는 용도로 사용합니다.
어떤 부분을 가져올지는 시작위치와 길이 변수를 넣어서 정합니다.
예를 들어 긴 문자열에서 5번째부터 8번째까지 문자열만 가져오고 싶다면 시작위치로 5, 길이로 3을 넣어주시면 됩니다.
SELECT SUBSTRING('가나다라마바사', 3, 2); -- '다라'를 반환
» 특정 문자로 문자열 끊어서 가져오기
SUBSTRING_INDEX(문자열, 구분자, 횟수)
역시 약간 헷갈리지만 문자열을 특정 문자로 끊어서 가져올 때 자주 사용하는 함수입니다.
예를 들어서 url을 마침표 또는 ‘/’로 구분해서 특정 부분만 가져오고 싶다면, 구분자 변수에 마침표 또는 ‘/’를 넣어주시면 됩니다.
‘횟수’는 구분자로 문자열을 끊었을 때 몇번째까지 문자열을 가져오겠다~는 걸 의미합니다. 만약 횟수 변수에 음수를 집어넣으면 거꾸로 오른쪽부터 세서 문자열을 반환합니다.
SELECT SUBSTRING_INDEX('[www.google.com](http://www.google.com)', '.', 2);
-- 'www.google'을 반환
» 몇번째 소수점 자리까지만 표시하기
FORMAT(숫자, 소수점 자릿수)
두번째 변수에 자릿수를 넣으면 그 소수점 자릿수까지만 숫자를 표시해주는 함수입니다. 또 천단위마다 콤마를 표시해주는 기능도 있어요.
SELECT FORMAT(12345.6789, 2) -- 12,345.67 을 반환
» 소문자 <-> 대문자 변환하기
UPPER(문자열), LOWER(문자열)
함수 뜻 그대로 UPPER는 알파벳 소문자를 대문자로 바꿔주고, LOWER는 대문자를 소문자로 변환해줍니다.
SELECT UPPER('abcdefg'); -- 'ABCEDFG'를 반환
» 문자 몇개인지 길이 확인하기
CHAR_LENGTH(문자열)
역시 말 그대로 문자열이 글자 몇 개인지를 반환해주는 함수입니다.
SELECT CHAR_LENGTH('ABCDEF'); -- 6을 반환
» 문자의 아스키코드값 확인하기
ASCII(아스키 코드)
각 문자에는 아스키코드가 할당되어 있는데요, 문자의 아스키 코드가 무엇인지 반환해주는 함수입니다.
SELECT ASCII('A'); -- 65를 반환
» 숫자를 문자로 바꿔보자(아스키 코드)
CHAR(숫자)
이 함수는 ASCII 함수의 반대라고 보시면 될 것 같아요. 숫자를 넣으면 아스키 코드 숫자에 해당하는 문자를 반환해줍니다.
SELECT CHAR(65); -- 'A'를 반환