오라클 함수
오라클은 특정한 결과 값을 얻기 위해 데이터를 입력할 수 있는 특수 명령어가 존재하는데 이를 오라클 함수라 한다. 오라클 함수는 오라클 함수에서 기본으로 제공하는 내장함수와 사용자 필요에 의해 직접 정의한 사용자 정의 함수로 나뉜다. 내장함수 안에는 데이터가 한 행씩 입력되고 입력된 한 행당 결과가 하나씩 나오는 단일행 함수와 여러 행이 입력되어 하나의 행으로 결과가 반환되는 다중행 함수가 있다.
문자함수
UPPER, LOWER, INITCAP 함수
문자 함수에는 대·소문자로 바꿔주는 함수가 있다.
함수 | 설명 |
UPPER(문자열) | 괄호 안 문자 데이터를 모두 대문자로 변환하여 변환 |
LOWER(문자열) | 괄호 안 문자 데이터를 모두 소문자로 변환하여 변환 |
INTCAP(문자열) | 괄호 안 문자 데이터 중 첫 글자는 대문자로, 나머지 문자를 소문자로 변환 후 반환 |
UPPER, LOWER, INITCAP 함수를 사용한 SQL문과 출력물을 확인해 보겠다.
Query
출력값
출력물을 확인하면, UPPER, LOWER, INITCAP 함수 각각의 기능을 구현한 걸 확인 할 수 있다.
문자열 길이를 구하는 LENGTH 함수
오라클에서 특정 문자열의 길이를 구할 때 LENGTH함수를 사용한다.
Query
출력값
두 번째 열 'ENAME'에 LENGTH를 사용하여 사원 이름의 길이를 구한다. LENGTH함수를 조건절 WHERE를 사용하여 문자의 길이를 선별하여 출력할 수 있다.
Query
출력값
문자열 일부를 추출하는 SUBSTR 함수
오라클에서는 문자열 중 일부를 추출하는 SUBSTR 함수를 제공한다. 기본적인 SUBSTR 함수의 사용법은 아래와 같다.
함수 | 설명 |
SUBSTR(문자열 데이터, 시작위치, 추출길이) | 문자열 데이터의 시작 위치부터 추출 길이만큼 추출한다. 시작 위치가 음수일 경우에는 마지막 위치부터 거슬러 올라간 위치에서 시작한다. |
SUBSTR(문자열 데이터, 시작 위치) | 문자열 데이터의 시작 위치부터 문자열 데이터 끝까지 추출한다. 시작 위치가 음수일 경우에는 마지막 위치부터 거슬러 올라간 위치에서 끝까지 추출한다. |
Query
출력값
특정 문자 위치를 찾는 INSTR 함수
문자열 안의 특정 문자를 찾을 때는 INSTR 함수를 사용한다. INSTR 함수 사용방법은 아래와 같다.
▶INSTR([대상 문자열 데이터(필수)],
[위치를 찾으려는 부분 문자(필수)],
[위치 찾기를 시작할 대상 문자열 데이터 위치(선택, 기본값은 1)],
[시작 위치에서 찾으려는 문자가 몇 번째인지 지정(선택, 기본값은 1)])
3가지의 경우를 INSTR함수를 이용해 출력해보자.
- 'L'이 처음 나오는 경우의 위치
- 'L'이 5번 째 글자(O)부터 나오는 위치
- 'L'이 2번 째 글자 이후에 두 번째 순서로 위치
※문자열의 순서는 0이아닌 1부터 시작한다.
Query
출력값
특정 문자를 다른 문자로 대체하는 REPLACE 함수
오라클에서는 특정 문자를 다른 문자로 대체할 수 있는 함수 REPLACE 함수가 있다.
▶REPLACE([문자열 데이터 또는 열 이름(필수)], [찾는 문자(필수)], [대체할 문자(선택)])
REPLACE 함수를 사용하여 다음 조건에 만족하는 쿼리문을 작성해보자.
- '010-1234-5678'이라는 숫자의 '-'을 ''(공백)으로 대체
- '010-1234-5678'이라는 숫자의 '-'를 삭제
Query
출력값
데이터의 빈 공간을 특정 문자로 채우는 LPAD, RPAD 함수
오라클은 데이터의 빈 공간을 특정 공간으로 채우는 LPAD(Left Padding)와 RPAD(Right Padding)을 제공한다.
▶LPAD([문자열 데이터 또는 열이름(필수)], [데이터의 자릿수(필수)], [빈 공간에 채울 문자(선택)]
▶RPAD([문자열 데이터 또는 열이름(필수)], [데이터의 자릿수(필수)], [빈 공간에 채울 문자(선택)]
'Oracle'이라는 문자를 기준으로 아래의 조건을 만족하는 쿼리문을 LPAD와 RPAD를 사용하여 작성해보자.
- Oracle이 포함 된 전체 숫자열 10개 중 왼쪽 공백에 '#'를 채워 넣는다.
- Oracle이 포함 된 전체 숫자열 10개 중 오른쪽 공백이 '*'로 채워 넣는다.
- Oracle이 포함 된 전체 숫자열 10개 중 왼쪽 공백을 모두 공백으로 표시한다.
- Oracle이 포함 된 전체 숫자열 10개 중 오른쪽 공백을 모두 공백으로 표시한다.
Query
출력값
특정 문자를 지우는 TRIM, LTRIM, RTRIM 함수
TRIM, LTRIM, RTRIM 함수는 문자열 데어터 내에서 특정 문자를 지우기 위해 사용하는 함수다.
TRIM
▶TRIM([삭제 옵션(선택)] [삭제할 문자(선택)] FROM [원본 문자열 데이터(필수)])
삭제 옵션은 왼쪽에 있는 글자를 지울 경우 LEADING을, 오른쪽에 있는 글자를 지울 떄는 TRAILING을, 양복 모두를 지우기 위해서는 BOTH를 사용한다. TRIM함수를 쿼리문을 통해 작성해보고 결과값을 출력해보자.
Query
출력값
LTRIM, RTRIM
LTRIM, RTRIM 함수는 왼쪽, 오른쪽 지정 문자를 삭제하는 데 사용한다. 삭제할 문자를 지정하지 않을 경우 공백 문자가 삭제된다. TRIM문자와 다르게 삭제할 문자를 하나만 지정하는 것이 아니라 여러 문자 지정이 가능하다는 점이다.
▶LTRIM([원본 문자열 데이터(필수)], [삭제할 문자 집합(선택)])
▶RTRIM([원본 문자열 데이터(필수)], [삭제할 문자 집합(선택)])
Query
출력값
출처:Do it! 오라클로 배우는 데이터베이스 입문(저자:이지훈 출판사:이지스퍼블리싱)
'DB > Oracle' 카테고리의 다른 글
[오라클 함수] NULL 처리 함수 (0) | 2022.02.10 |
---|---|
[오라클 함수] 형 변환 함수 (0) | 2022.02.09 |
[오라클 함수] 날짜 함수 (0) | 2022.02.09 |
WHERE절과 연산자 (0) | 2022.01.27 |
SELECT문의 기본 형식 (0) | 2022.01.25 |