이전 글에서, SELECT문을 통해 데이터를 불러오는 방법을 알아보았다.
[SQLD] SQL 기초 1 - SELECT문 (tistory.com)
마지막 부분에서 함수의 사용에 대해 간단하게 언급했었는데, 이번 글에서는 자주 쓰이는 함수들을 정리해볼 것이다.
[SQLD] SQL 기초 1 - SELECT문
SELECT문은 SQL에서 가장 많이 사용하는 구문이다. 테이블에 저장된 데이터를 추출/조회하고자 할 때 사용한다. 기본적으로 SQL문법은 영문법과 비슷하게 흘러간다고 생각하면 쉽다. 1. 테이블을 모
gy-project.tistory.com
함수의 종류는 다음과 같이 분류해 볼 수 있다.
- 문자 함수
- 숫자 함수
- 날짜 함수
- 변환 함수
- NULL관련 함수
이번 포스트에서는, 문자 함수에 대해 설명하고자 한다.
문자 함수
문자와 관련하여 변경할 수 있는 부분을 정리하면 다음과 같다.
대/소문자 변경, ASCII코드 - 문자 변환, 문자열 내용 변경, 문자열 자르기, 원하는 부분만 반환, 문자열 길이 반환
SELECT name FROM table1;
위의 테이블을 활용하여, 문자함수를 설명하고자 한다.
1. 대/소문자 변경 함수
SELECT UPPER(name) FROM table1;
SELECT LOWER(name) FROM table1;
LOWER(문자열) : 문자열 모두를 소문자로 변경
UPPER(문자열) : 문자열 모두를 대문자로 변경
2. ASCII 코드 변환
CHR(ASCII코드)
예를들어 table1의 "ASCII"컬럼의 아스키코드를 문자로 변경하고자 한다면, 코드는 다음과 같다.
SELECT CHR(ASCII) FROM table1;
3. 문자열 내용 변경
REPLACE(문자열, 변경 전 문자열 [, 변경 후 문자열])
마지막 속성은 넣어주지 않아도 문제 없다. 만약 넣지 않으면, 변경하고자 하는 문자열을 삭제한다.
만약, 위와 같은 예시 데이터가 있다고 가정하자.
DIA라는 계급을 MASTER로 변경하고자 한다면, 우리는 다음과 같이 SQL을 작성할 수 있을 것이다.
SELECT ID, NAME, REPLACE(RANK, 'DIA', 'MASTER') AS RANK FROM table1;
이 때, 함수를 사용하면 컬럼명이 함수명으로 바뀌므로, AS를 이용하여 다시 RANK라는 이름으로 바꾸어 준 것이다.
AS에 대해서는 기초 3에서 다룰 예정이다.
4. 문자열 공백/문자 제거
LTRIM(문자열 [, 특정문자])
RTRIM(문자열[, 특정문자])
TRIM([위치][특정 문자] [FROM] 문자열)
입력한 특정문자를 찾아서 지우는 함수들이다.
만약에 지울문자를 입력하지 않으면, 공백을 제거한다.
SELECT LTRIM(RANK, 'M') FROM table1;
SELECT RTRIM(RANK, 'R') FROM table1;
SELECT TRIM(LEADING 'M' FROM RANK) FROM table1;
SELECT TRIM(TRAILING 'R' FROM RANK) FROM table1;
SELECT TRIM(BOTH 'S' FROM RANK) FROM table1;
위와 같이 작성할 수 있다.
LTRIM : 문자열의 제일 왼쪽 부터 비교하여 같으면 삭제.
RTRIM : 문자열의 제일 오른쪽 부터 비교하여 같으면 삭제.
TRIM : 문자 1자만 비교할 수 있다.
- LEADING: LTRIM과 동일
- TRAILING: RTRIM과 동일
- BOTH: 문자열의 양쪽 모두를 비교하여 같으면 삭제한다.
예시는 왼쪽 오른쪽이 동일한 문자열이 없으나 양쪽 모두 확인한다.
TRIM함수들의 특징
문자 제거 함수들은, 왼쪽부터 반복되는 문자들도 다 제거한다.
Ex) "MAMASTER"라는 데이터에서, LTRIM함수를 활용해 MA를 제거하려고 하면 MA가 두개 다 사라진다는 이야기.
5. 원하는 부분을 잘라서 반환하는 함수
SUBSTR(문자열, 시작점 [,길이])
예를들어 "SUPERSTARPARK"라는 문자가 있을 때
SUBSTR("SUPERSTARPARK", 6, 4)라면,
"STAR"가 반환 될 것이다.
만약 4라는 숫자를 입력하지 않는다면, 6번째 글자부터 끝까지 반환될 것이다.
"STARPARK"
또 다른 예시는 다음과 같다.
SELECT SUBSTR(RANK, 3, 2) FROM table1;
MASTER에서 ST만, GOLD에서 LD만, SILVER에서 LV만 반환된 것을 볼 수 있다.
6. 문자열 길이 반환 함수
LENGTH(문자열)
말 그대로 문자열의 갯수를 반환하는 함수로 예시는 다음과 같다.
SELECT LENGTH(RANK) FROM table1
------
참고자료 : 유튜브 선생님께 배우는 SQL 개발자 SQLD과외노트
실습사이트 : SQL Test
SQL Test
Free Online SQL Test Tool
sqltest.net
'SQL' 카테고리의 다른 글
[SQLD] SQL 기초3 - 별칭 (ALIAS ; AS) (0) | 2023.07.20 |
---|---|
[SQLD] SQL 기초2 - 함수4 (변환함수, NULL관련 함수) (0) | 2023.07.14 |
[SQLD] SQL 기초2 - 함수3 (날짜함수) (0) | 2023.07.12 |
[SQLD] SQL 기초 2 - 함수2 (숫자함수) (0) | 2023.07.12 |
[SQLD] SQL 기초 1 - SELECT문 (0) | 2023.07.10 |