본문 바로가기
Database/Oracle

[오라클(Oracle) 기초] 문자 함수(대소문자 변환 / 길이 반환 / SUBSTR / INSTR 함수)

by Ali1020 2022. 4. 13.

[오라클(Oracle) 기초] 문자 함수(대소문자 변환 / 길이 반환 / SUBSTR / INSTR 함수)

 

1. 대소문자 변환 함수(INITCAP, LOWER, UPPER)
2. 길이 반환 함수(LENGTH, LENGTHB)
3. 문자조작 함수(CONCAT, SUBSTR, INSTR)

 

 

 

 

 

1. 대소문자 변환 함수(INITCAP, LOWER, UPPER)

 

(1) INITCAP 함수

첫 번째 영문자를 대문자로 출력하는 함수이다. 공백 뒤의 문자열 또한 첫 번째 영문자를 대문자로 변환한다.

1
2
3
4
select initcap('apple'),                    ---- Apple
       initcap('welcome to my world'),      ---- Welcome To My World
       initcap('welcometomyworld'),         ---- Welcometomyworld
from dual;
 
 

 

 

 

(2) LOWER, UPPER 함수

LOWER : 문자열 전체를 소문자로 반환하는 함수이다.

UPPER : 문자열 전체를 대문자로 반환하는 함수이다.

 
1
2
3
4
5
select lower('APPLE'),       ---- apple
       lower('Apple'),       ---- apple
       upper('apple'),       ---- APPLE
       upper('Apple')        ---- APPLE
from dual;
 

 

 

 

 

2. 길이 반환 함수(LENGTH, LENGTHB)

(1) LENGTH 함수

문자열 길이를 반환하는 함수이다. 한글, 영문, 공백, 특수문자 전부 다 1로 인식한다. ('abc'도 3, '가나다'도 3)

1
2
3
select length('oracle'),     ---- 6
       length('오라클')      ---- 3  
from dual;
 

 

(2) LENGTHB 함수

문자열의 바이트를 반환하는 함수이다. 

1
2
3
select lengthb('oracle'),      ---- 6
       lengthb('오라클')       ---- 9 
from dual;
 

 

 

 

 

 

 

3. 문자조작 함수(CONCAT, SUBSTR, INSTR)

 

(1) CONCAT 함수

앞뒤 두 문자열을 결합하는 함수이다. 

1
2
select concat('my''home')       ---- myhome 
from dual;
 
 

입력한 문자열이 공백 없이 바로 이어지기 때문에 공백을 넣고 싶다면 필요에 맞춰서 공백을 넣어줘야 한다.

1
2
3
4
5
select concat('my''home')       ---- myhome 
from dual;
 
select concat('my ''home')       ---- my home 
from dual;
 

위와 같이 my 다음 밑줄 부분에 공백을 넣어준 결과 출력도 공백이 포함된 것을 볼 수 있다. 

 

 

 

||를 사용하면 더 간단하게 활용할 수 있다.

1
2
select name || '교수의 직책은 ' || position || '입니다.'
from professor;
 
cs
 
김지연교수의 직책은 교수입니다.
한수혁교수의 직책은 부교수입니다.
조민환교수의 직책은 조교수입니다.
이철수교수의 직책은 교수입니다.
이재우교수의 직책은 전임강사입니다.
김일현교수의 직책은 조교수입니다.
박수지교수의 직책은 부교수입니다.
cs

 

 

 

 

(2) SUBSTR 함수

문자열의 m번째 위치부터 n개의 문자를 추출하는 함수이다. m이 음수일 경우 마지막 문자열부터 시작된다. 예를 들어 m이 -3, n이  2일 경우 문자열의 뒤에서 3번째부터 2개의 문자를 추출한다. 또한 n이 생략될 경우에는 m부터 마지막까지 문자를 모두 추출한다.

1
2
select substr(칼럼명 or 문자열, m, n)
from dual;
 

 

1
2
3
4
5
6
7
select substr('apple'22),                           ---- pp 
       substr('welcome to my world'162),            ---- or
       substr('welcome to my world'43),             ---- com
       substr('welcome to my world'-4, 3),            ---- orl
       substr('welcome to my world'4)                 ---- come to my world
       substr('강아지', 2)                              ---- 아지
from dual;
 
 

 

1
2
3
select substr('웰컴투동막골', 6, 1),      ---- 골
       substr('웰컴투동막골', -1, 1)      ---- 골 
from dual;
 
 

 

 

 

(3) INSTR 함수

문자열에서 특정 문자의 위치를 반환하는 함수이다. 

1
2
select instr(칼럼명 or 문자열, 찾을 문자, m, n)
from dual;
 

문자열의 m번째 위치부터 n번째 나타나는 특정 문자 위치를 반환한다. m이 음수일 경우 문자열의 마지막부터 찾기 시작하며 방향도 반대이다.(뒤에서 앞으로)

1
2
3
4
select instr('welcome to my world''w'),       ---- 1
       instr('welcome to my world''w', 2),     ---- 15
       instr('welcome to my world''o', -3, 2)    ---- 10  
from dual;
 
 

 

1
2
3
select instr('www.google.com''.'1, 1),       ---- 4
       instr('www.naver.com''.',12),         ---- 10     
from dual;
 
 

 

 

 

 

 

[오라클(Oracle) 기초] 문자 함수(대소문자 변환 / 길이 반환 / SUBSTR / INSTR 함수)

-요약-

 

1. 대소문자 변환 함수(INITCAP, LOWER, UPPER)

- INICAP : 첫 번째 문자열을 대문자로 반환(공백 다음 문자열의 첫 문자열도 반환) 

- LOWER : 문자열 전체를 소문자로 반환

- UPPER : 문자열 전체를 대문자로 반환


2. 길이 반환 함수(LENGTH, LENGTHB)

- LENGTH : 문자열의 길이 반환

- LENGTHB : 문자열의 바이트 반환


3. 문자조작 함수(CONCAT, SUBSTR, INSTR)

- CONCAT : 앞뒤 문자열을 결합 (= ||)

- SUBSTR : 문자열의 m번째 위치부터 n개의 문자를 추출 : SUBSTR(칼럼명 or 문자열, m, n)

- INSTR : 문자열의 m번째 위치부터 n번째 나타나는 특정 문자의 위치를 반환 : INSTR(칼럼명 or 문자열, 찾을 문자, m, n)

 

댓글