SQL 문자열(STRING) 함수 Oracle과 MySQL 사용방법 및 예제


오라클 과 MySQL 사용 시 문자열을 컨트롤 할 수 있는 함수에 대해 정리 내역을 공유해 보겠습니다.

💬 요약
1. 문자열 대/소 문자로 강제 변환 함수
2. 문자열 자르는 함수(SUBSTR)
3. 문자열 길이(LENGTH)
4. 특정 문자 채우기(RPAD/LPAD)
5. 특정 문자 위치 반환(INSTR)
6. 특정 문자 치환(REPLACE)


1️⃣ 문자열 대/소 문자로 강제 변환

💦 UPPER, LOWER, INITCAP


UPPER(대문자 변환), LOWER(소문자 변환) 함수는 ORACLE, MySQL모두 함께 사용할 수 있는 함수입니다.

INITCAP(첫 글자만 대문자 변환) 함수는 ORACLE에서 만 사용



SELECT UPPER('abcdefghijk')	                AS "대문자로변환"
     , LOWER('ABCDEFGHIJK')	                AS "소문자로변환"
     , INITCAP('abcd_efg_hij_klmn')	        AS "첫문자만대문자변환"
  FROM DUAL



✅ 대/소문자 함수 사용 실행 결과 화면

SQL 대/소문자 변환 함수


2️⃣ 문자열 자르기

💦 SUBSTR('문자열', '시작위치', '출력길이')


SUBSTR 함수는 문자열의 시작 위치와 출력 길이를 입력하여 문자열의 원하는 부분만 잘라서 사용할 수 있는 함수로 Oracle/MySQL 모두 사용이 가능하다.



SELECT SUBSTR('20210706 09:36:15', 1, 4)    AS "문자열자르기(년)"
     , SUBSTR('20210706 09:36:15', 5, 2)    AS "문자열자르기(월)"
     , SUBSTR('20210706 09:36:15', 7, 2)    AS "문자열자르기(일)"
     , SUBSTR('20210706 09:36:15',10, 9)    AS "문자열자르기(시간)"
     , SUBSTR('123456789', -5, 5)           AS "뒤에서자르기"
  FROM DUAL




✅ 문자열 자르기 함수 사용 쿼리 실행 및 결과 화면

SQL 문자열자르기 함수 SUBSTR







3️⃣ 문자열 길이

💦 LENGTH('문자')


LENGTH는 문자열의 총 길이를 반환하는 함수로 ORACLE과 MySQL 모두 사용할 수 있다.




SELECT LENGTH(LEN)                      	AS "문자열길이출력"
     , SUBSTR(LEN, LENGTH(LEN)-3, LENGTH(LEN)) 	AS "문자열길이응용"
  FROM(SELECT '123456789'	AS LEN
         FROM DUAL
      ) A




✅ 문자열 전체 길이를 반환하는 함수 실행 및 결과 화면

SQL 문자열 길이 반환 함수 LENGTH
 









4️⃣ 특정 문자 채우기

💦 LPAD(컬럼, 적용문자갯수, 특정문자)

💦 RAD(컬럼, 적용문자갯수, 특정문자)


LPAD는 칼럼 값의 왼쪽을 특정 문자가 적용 문자 개 수 만큼 채우며 RPAD는 오른쪽을 채운다.




SELECT LPAD(VAL, 10, '0')	AS "왼쪽채우기"
     , RPAD(VAL, 10, '0')	AS "오른쪽채우기"
  FROM(SELECT '1'	        AS VAL
         FROM DUAL
      ) A




✅특정 문자 채우기 함수 실행 및 결과 화면

SQL 특정문자 채우기 함수 LPAD & RPAD
SQL 특정 문자 채우기 함수 LPAD & RPAD














5️⃣ 특정 문자 위치 반환

💦 INSTR(컬럼, 특정문자)


INSTR 은 특정 문자 위치를 반환하는 함수로써 ORACLE & MySQL 모두 사용할 수 있다.



SELECT INSTR(VAL, '.')            		   AS "반환위치"
     , SUBSTR(VAL, 1, INSTR(VAL, '.')-1)           AS "INSTR응용(파일명)"
     , SUBSTR(VAL, INSTR(VAL, '.')+1, LENGTH(VAL)) AS "INSTR응용2(확장자명)"
  FROM(SELECT '문자열함수관련함수.xlsx'	AS VAL
         FROM DUAL
      ) A




✅ 특정 문자 위치를 반환 함수 실행 및 결과 화면

SQL 특정문자 위치 반환 함수 INSTR
SQL 특정 문자 위치 반환 함수 INSTR
 

6️⃣ 특정 문자를 다른 문자로 치환

💦 REPLACE(컬럼, 치환대상문자, 치환문자)


REPLACE는 특정 문자를 다른 문자로 치환하는 함수로 Oracle & MySQL 모두 사용이 가능한 함수이다.




SELECT REPLACE(VAL, '<br>', '\n')                       	AS "특정문자변환"
     , REPLACE(REPLACE(VAL, '<br>', '\n'), 'Oracle', '오라클')	AS "특정문자변환_응용"
  FROM(SELECT 'Oracle과 <br> MySQL에서 모두 쓰이는 함수'	        AS VAL
         FROM DUAL
      ) A




✅ 함수 실행 및 결과 화면

SQL 특정문자를 다른문자로 치환하는 함수 REPLACE
SQL 특정 문자를 다른 문자로 치환하는 함수 REPLACE

이상 포스팅을 마치겠습니다.
오늘도 좋은 하루 되세요.