SELECT ASCII('A'), CHAR(65); -- 65, A
문자열의 Bit 크기를 반환
SELECT BIT_LENGTH('abs'); -- 각 1바이트는 8비트로 3개니까 3바이트 -> 8*3 = 24
SELECT BIT_LENGTH('가나다'); -- 한글은 각 3바이트라서 24비트임 24비트가 3개라서 72BIT
문자열의 길이를 반환
SELECT CHAR_LENGTH('AVS'); -- 단순 개수 출력 3
SELECT CHAR_LENGTH('가나다');
문자열의 Byte 반환
SELECT LENGTH('AVS'); -- 바이트 수를 반환한다. 영어는 각 1바이트 3개라서 3
SELECT LENGTH('가나다'); -- 한글은 각 3바이트 3개니까 9
문자열을 이어준다.
SELECT CONCAT('내 생일은','4월','21일','이다') AS '생일';
--'내 생일은4월21일이다'
구분자와 함께 문자열을 이어준다.
SELECT CONCAT_WS('-','010','3230','0000');
-- '010-3230-0000'
SELECT CONCAT('번호:',CONCAT_WS('-','010','3230','0000')) AS '전화번호';
-- '번호:010-3230-0000'
위치 번째에 해당하는 문자열을 반환
SELECT ELT(2,'A','B','C'); -- B 반환
찾을 문자열의 위치 반환, 매치되는 문자열이 없으면 0 반환
SELECT FIELD('LOL','HELLO','THERE','LOL'); -- 3
SELECT FIELD('L','HELLO','THERE','LOL'); -- 0
찾을 문자열 위치를 반환
SELECT find_in_set('CAT','LOL,CAT,MONEY'); -- 2
문자열을 따옴표에 한번에 담는게 인상적임. 콤마로 구분함
기준 문자열에서 부분 문자열을 찾아 시작 위치를 반환
SELECT instr('HELLO','L'); -- 3
SELECT instr('HELLO','EL'); -- 2
SELECT instr('HELLO','ELA'); -- 0
왼쪽부터 가장 처음에 나오는 값을 반환 하나보다.
기준 문자열에서 부분 문자열을 찾아 시작 위치를 반환
SELECT LOCATE('RL','WORLD'); -- 3
SELECT LOCATE('RLA','WORLD'); -- 0
숫자를 소수점 아래 자릿수까지 표현
1000 단위로 , 구분
SELECT format(3000.123,2); -- 3,000.12
2진수, 16진수, 8진수 값 반환
기준 문자열의 위치 번째부터 길이만큼 지우고 삽입 문자를 삽입한다.
SELECT INSERT('helllll',5,4,'o'); -- hell 길이를 초과해서 입력해도 오류는 안났다.
SELECT INSERT('helllll',5,1,'o'); -- helloll
왼쪽 길이만큼 반환, 오른쪽 길이만큼 반환 (파이썬으로 치면 슬라이싱 같다.)
SELECT CONCAT(LEFT('Hi, ㅎㅎ',3), RIGHT('RIGHT There',5));
-- Hi,There
대문자 , 소문자 파이썬이랑 똑같음
SELECT LPAD('나는 누구지',10,'?');
-- '????나는 누구지'
SELECT RPAD('나는 누구지',10,'?');
-- '나는 누구지????'
문자열의 양쪽 / 왼쪽/ 오른쪽 공백 제거
파이썬이랑 똑같음
SELECT TRIM(BOTH '?' FROM '???나는??누구지???'); -- 나는??누구지 가운데는 안지워짐
SELECT TRIM(LEADING '?' FROM '???나는??누구지???'); -- 나는??누구지???
SELECT TRIM(TRAILING '?' FROM '???나는??누구지???'); -- ???나는??누구지
문자를 반복 수 만큼 반복한다.
SELECT repeat('Ha',3); -- HaHaHa
문자열에 있는 어떤 문자를 새 문자로 바꾼다.
SELECT replace('실습이 오래걸리네','오래걸리네','재미나네');
-- 실습이 재미나네
문자열을 뒤집어 출력
길이만큼 공백이 추가된다.
SELECT CONCAT('이거',SPACE(3),'오래걸리네');
-- 이거 오래걸리네
시작 위치부터 길이 만큼 문자를 반환, 길이가 생략되면 문자열의 끝까지 반환
SELECT substring('DRF도 해야하는데',1,3); -- DRF
SELECT substring('DRF도 해야하는데',6); -- 해야하는데
SELECT SUBSTRING_INDEX('www.naver.com','a',2); -- 'www.naver.com'
-- 왼쪽에서 a를 두번 찾아야하는데 없어서 전체 출력
SELECT SUBSTRING_INDEX('www.naver.com','w',2); -- w
-- 왼쪽에서 w을 찾다가 2번째 전에 있는 문자 반환
SELECT SUBSTRING_INDEX('www.naver.com','w',-2); -- 'w.naver.com'
-- 오른쪽에서 w를 찾다가 2번쩨 전에있는 문자 반환 (이제까지 지나온 애들 출력한다)
SELECT SUBSTRING_INDEX('www.naver.com','.',2); -- 'www.naver'
SELECT SUBSTRING_INDEX('www.naver.com','.',-2); -- 'naver.com'