-- case ~ when ~ else ~ end : 다중 분기
select case 10
when 1 then '일'
when 5 then '오'
when 10 then '십'
else '모름'
end as 'case연습';
▶ CASE 뒤의 값이 10이므로 세 번째 WHEN이 수행되어 '십' 반환
▶ 만약, 해당하는 사항이 없다면 ELSE 부분이 반환
◎ 문자열 함수 1
▷ 문자열 조작, 활용도높음
1. ASCII(아스키 코드) : 문자의 아스키 코드 값 반환 2. CHAR(숫자) : 숫자의 아스키 코드 값에 해당하는 문자 반환 3. BIT_LENGTH(문자열), CHAR_LENGTH(문자열), LENGTH(문자열) ▷ 할당된 Bit 크기 또는 문자 크기 반환 ▷ CHAR_LENGTH()는 문자의 개수 반환 ▷ LENGTH()는 할당된 Byte 수 반환
SELECT CONCAT_WS('/', '2025', '01', '01');
-- 출력 :
-- 2025/01/01
5. ELT, FIELD, FIND_IN_SET, INSTR, LOCATE ▷ ELT(위치, 문자열1, 문자열2, ...) : 위치값이 해당하는 문자열을 반환 ▷ FIELD(찾을 문자열, 문자열1, 문자열2, ...) : 찾을 문자열이 있는 문자열의 위치 값을 반환 ▷ FIND_IN_SET(찾을 문자열, 문자열 리스트) : 찾을 문자열이 있는 문자열리스트의 위치 값을 반환 ▶ 문자열 리스트는 콤마(,)로 구분되고 공백이 없어야합니다. ▷ INSTR(기준 문자열, 부분 문자열) : 부분 문자열이 기준 문자열의 몇번째 위치하는지 위치 값을 반환 ▷ LOCATE(부분 문자열, 기준 문자열) : 부분 문자열이 기준 문자열의 몇번째 위치하는지 위치 값을 반환 ▶ INSTR과 LOCATE는 동일하지만 파라미터의 순서가 반대
2. REPLACE(문자열, 원래 문자열, 바꿀 문자열) ▷ 문자열에서 원래 문자열을 찾아서 바꿀 문자열로 바꿈
-- REPLACE(문자열, 원래 문자열, 바꿀 문자열) : 치환 문자열에서 원래 문자열을 찾아 바꿀 문자열로 변환
select replace('이것이 MySQL이다', '이것이', 'This is');
-- 'This is MySQL이다' 반환
3. REVERSE(문자열) ▷ 문자열의 순서를 거꾸로 바꿈
-- REVERSE(문자열) : 문자열을 거꾸로 출력
select reverse('MySQL');
-- 'LQSyM' 반환
4. SPACE(길이) ▷ 길이만큼의 공백을 반환
-- SPACE(길이) : 공백을 원하는 길이만큼 추가
select concat('이것이', space(10), 'MySQL이다');
-- '이것이 MySQL이다' 반환
5. SUBSTRING(문자열, 시작위치, 길이) 또는 SUBSTRING(문자열 FROM 시작위치 FOR 길이) ▷ 시작위치부터 길이만큼 문자를 반환, 길이가 생략되면 문자열의 끝까지 반환
-- SUBSTRING(문자열, 시작위치, 길이) : 문자열에서 원하는 문자를 추출
-- SUBSTRING(문자열 FROM 시작위치 FOR 길이)
-- 주민번호 상의 성별 구분 : 7번째 숫자
-- SUBSTRING(), SUBSTR(), MID() 동일한 문자 추출 함수
select substring('대한민국만세', 3, 2);
-- '민국' 반환