BackEnd/DB, SQL

SQL 4편: 문자 함수(LENGTH, SUBSTR, INSTR, REPLACE, LPAD, RPAD, CONCAT, TRIM, LRTIM, RTRIM)

summer_light 2021. 12. 27. 14:13

대/소문자 변경 함수

UPPER(s)  대문자로 변환
LOWER(s) 소문자로 변환 
INITCAP(s) 첫 글자는 대문자, 나머지는 소문자로 변환

대·소문자 구분 없이 값을 비교할 때 활용할 수 있다. 

SELECT  *
FROM EMP
WHERE UPPER(ENAME) LIKE UPPER('%scott%');

 

데이터 길이 반환 함수 

LENGTH() 문자열 길이 반환
LENGTHB() 바이트 수를 반환 

 

 

SUBSTR(문자열, 시작 위치, 추출 길이) 

문자열의 일부를 추출하고 싶을 때 사용한다. EX. 11자리의 전화번호 중 마지막 4자리 번호만 필요한 경우

첫 번째 자리는 0이 아닌 1이다.

시작위치에 -를 붙일 경우 맨 마지막 자리가 -1이 된다. 

 

 

INSTR(대상 문자열, 찾고 싶은 문자, 찾기 시작할 위치(기본값=1), 몇 번째 문자를 찾는지(기본값=1))

찾고 싶은 문자의 위치를 알고 싶을 때 사용한다.  

찾기 시작할 위치에 음수를 쓰면 원본 문자열 데이터의 오른쪽 끝부터 왼쪽 방향으로 검색한다.

INSTR 함수의 결과 값이 0보다 크다면, LIKE 연산자를 사용해 %S% 문자열을 찾는 것과 같은 효과를 볼 수 있다.  

 

 

REPLACE(자열 데이터or열 이름, 찾는 문자, 대체할 문자(기본값=삭제)

포함된 문자를 다른 문자로 대체할 경우에 사용한다.

010-1111-2222의 -를 없애는 등, 양식 데이터를 삭제하고 싶을 때 유용하다. 

 

 

LPAD(문자열or열 이름, 자릿수, 빈 공간에 채울 문자(기본값=공백 문자)) 

RPAD(문자열or열 이름자릿수빈 공간에 채울 문자(기본값=공백 문자)) 

Left Padding, Right Padding 을 의미한다. 자릿수를 정해두고, 나머지 공간을 채워야 할 때 사용한다.

데이터의 일부만 노출해야 하는 개인정보를 출력할 때 사용한다. EX. 010-1111-****와 같이 *로 채우는 경우 RPAD를 쓸 수 있다. 

 

 

CONCAT(문자열1, 문자열2) 

'문자열1문자열2' 과 같이 두 개의 문자열 데이터를 하나의 데이터로 연결해 준다.  

문자열1 || 문자열2 도 같은 역할을 한다. 

 

 

TRIM(삭제옵션(기본값=BOTH) 삭제할 문자(기본값=공백 문자) FROM 원본 데이터

*삭제옵션

LEADING: 왼쪽 첫 문자

TRAILING: 오른쪽 첫 문자

BOTH: 왼쪽, 오른쪽 첫 문자 

삭제할 문자를 지정하지 않을 경우 LEADING/TRAILING/BOTH를 무시하고 공백 문자를 모두 지운 결과를 반환한다.

 

 

LTRIM(원본 데이터,삭제할 문자 집합 쉼표없이 나열(기본값=공백 문자)

RTRIM(원본 데이터, 삭제할 문자 집합 쉼표없이 나열(기본값=공백 문자))

TRIM은 삭제할 문자를 여러 개 지정할 수 없으므로, 삭제할 문자가 여러 가지인 경우 LTRIM, RTRIM을 사용한다. 

삭제할 문자 집합에 속하지 않는 문자가 나올 때 까지 모두 삭제한다. 

LTRIM은 왼쪽 부터, RTRIM은 오른쪽 부터 삭제한다.