Giyoun's Projects

https://parkgiyoun.github.io/Project_tree_no_js/

SQL

[SQLD] SQL 기초 2 - 함수1 (문자 함수)

P-Gyoun 2023. 7. 10. 23:15

이전 글에서, 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;

REPLACE 함수 사용 후

이 때, 함수를 사용하면 컬럼명이 함수명으로 바뀌므로, 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 : 문자열의 제일 오른쪽 부터 비교하여 같으면 삭제.

LTRIM, RTRIM 함수 수행 결과

 

TRIM : 문자 1자만 비교할 수 있다.

- LEADING: LTRIM과 동일

- TRAILING: RTRIM과 동일

- BOTH: 문자열의 양쪽 모두를 비교하여 같으면 삭제한다.

예시는 왼쪽 오른쪽이 동일한 문자열이 없으나 양쪽 모두 확인한다.

TRIM함수 예제 수행 결과

 

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

LENGTH 함수

------

참고자료 : 유튜브 선생님께 배우는 SQL 개발자 SQLD과외노트

실습사이트 : SQL Test

 

SQL Test

Free Online SQL Test Tool

sqltest.net