예전에 select절을 이용하여 데이터를 불뤄 오는 방법을 다뤘습니다. 데이터를 그대로 가지고 오는 것이 아니고 가공해서 가져오는 것도 필요하다는 것을 알았습니다. where절을 이용하여 데이터의 일부를 가져오는 방법 등을 더 범위 있는 사용을 위해 이번에는 해당 함수들을 설명하려고 합니다
※ 함수 설명을 중심으로 내용을 진행합니다.
※ 제가 자주 사용한 함수는 ★로 표시하였습니다.
문자열 함수정리
LIKE (★★★)
-- sam문자가 포함된 값을 모두 조회한다.
SELECT *
FROM mytable
WHERE comp LIKE '%sam%';
-- sam문자로 시작하는 값을 모두 조회한다.
SELECT *
FROM mytable
WHERE comp LIKE 'sam%';
-- 삼으로 시작하는 3글자를 조회한다
SELECT *
FROM mytable
WHERE comp LIKE '삼__';
LIKE 함수는 보통 쿼리문에 WHERE절과 같이 조건을 적는 부분에 사용되며 부분적으로 일치하는 칼럼을 찾을 때 사용합니다. 위에서 몇 가지 쿼리 예시로 작성하였는데 특별하게 사용하는 문자 기호는 아래와 같습니다.
- _ : 글자 수를 정해짐
- % : 글자 수를 정해주지 않음
CONCAT(★)
SELECT CONCAT('2023', '03', '15') --20230315
FROM DUAL;
SELECT CONCAT_WS('/','2023', '03', '15') -- 2023/03/15
FROM DUAL;
CONCAT함수는 concatenate의 약자로 연결이라는 뜻을 가지고 있습니다. 문자열을 잇는 데 사용합니다. concat함수는 순차적으로 문자를 잇습니다. 또한 concat_ws 함수는 문자를 이을때 구분자로 잇습니다.
LENGTH(★)
SELECT CHAR_LENGTH('Hello'), LENGTH('Hello') --5, 5
FROM DUAL;
SELECT CHAR_LENGTH('안녕'), LENGTH('안녕') --2, 4
FROM DUAL;
LENGTH함수는 텍스트의 길이를 출력합니다. 길이를 볼 때는 영어와 한글을 확인하여야 합니다. 영어일 때는 1byte씩 적으며 한글을 사용하는 경우 UTF-16 기준으로 2byte씩 인식합니다. CHAR_LENGTH함수는 각 글자 수당 1로 체크합니다.
SUBSTR(★)
SELECT SUBSTRING('abcdef', 3) -- cdef
FROM DUAL;
SELECT SUBSTRING('abcdef', 3, 2) -- cd
FROM DUAL;
SUBSTR함수는 substring의 약자로 문자열을 잘라 출력합니다. 인자를 선택할 수 있는데 첫번째 예제는 3번째 글자부터 출력하라는 의미이며 두번째 예제는 3번쨰 글자부터 2글자를 출력하라는 의미입니다.
LEFT, RIGHT
SELECT LEFT('HELLO', 3), -- HEL
, RIGHT('HELLO', 2) -- LO
FROM DUAL;
LEFT, RIGHT 함수는 각각 문자열에 왼쪽부터 혹은 오른쪽부터 길이만큼 문자를 반환합니다. 위의 예제는 HELLO를 왼쪽부터 3글자 오른쪽부터 2글자를 출력합니다.
LOWER, UPPER
SELECT LOWER('aBcDe') -- abcde
, UPPER('aBcDe') -- ABCDE
FROM DUAL;
LOWER, UPPER 함수는 텍스트를 각각 대문자를 소문자로 소문자를 대문자로 바꿔줍니다. 위의 예제는 aBcDe라는 텍스트를 대문자 소문자로 변경하였습니다.
REVERCE
SELECT REVERSE('abcdef') --fedcba
FROM DUAL;
REVERCE함수는 문자열을 거꾸로 만듭니다. 해당 함수를 이용하여 abcdef라는 텍스트를 fedcba로 바꾸었습니다.
REPEAT
SELECT REPEAT("HELLO",3) --HELLOHELLOHELLO
FROM DUAL;
REPEAT 함수는 특정 키워드를 반복합니다. 위의 예제와 같이 HELLO를 3번 출력하였습니다.
REPLACE
SELECT REPLACE ('HELLO WORLD', 'WORLD', 'EARTH') -- HELLO EARTH
FROM DUAL;
REPLACE 함수는 특정 키워드를 대체합니다. 해당 함수를 활용하여 띄어쓰기 없이 텍스트를 받는다든지 다양한 문자열을 조작 할수 있습니다. 위의 예제 HELLO WORLD라는 문자열을 HELLO EARTH로 변경하였습니다.
마지막으로 (REFERENCE)
해당 게시글은 제 기준으로 자주 사용하는 함수를 적었으며 아래 블로그에 내장함수를 잘 정리하였으니 추천합니다.
'컴퓨터 > MySQL' 카테고리의 다른 글
MySQL (11) - 내장함수를 이용하여 숫자를 다뤄보자 (0) | 2023.04.02 |
---|---|
MySQL (10) - Transaction(트랜잭션)에 대하여 알아보자 (0) | 2023.03.23 |
MySQL (8) - 기본키를 여러 개 두어야 할 때 (복합키) (0) | 2023.03.11 |
MySQL (7) - JOIN에 대하여 알아보자 (0) | 2023.03.02 |
MySQL (6) - 무결성 제약조건 (0) | 2022.06.18 |