본문 바로가기
Database

내장 함수(BUILT-IN-FUNCTION) - 문자형

by oncerun 2021. 4. 27.
반응형

함수는 다양한 기준으로 분류할 수 있는데, 벤더사에서 제공하는 함수인 내장 함수와 사용자가 정의하는(User Defined Functuin)으로 나눌 수 있다.

 

 

벤더사에서 공통적으로 제공하는 내장 함수를 먼저 알아보자

 

내장함수는 두 가지로 분류될 수 있다. 

단일행 함수(Single-Row-Function) : 함수의 입력값이 단일행 값이 입력된다.

다중행 함수(Multi-Row-Function) : 함수의 입력값이 여러 행의 값이 입력된다.

 

다중행 함수는 3가지로 분류될 수 있는데, 집계함수(Aggregate Function) , 그룹 합수(Group Function), 윈도 함수(Window Function)로 나눠진다.

 

 

1. 단일행 함수

 - 함수는 입력되는 값이 아무리 많아도 출력은 하나만 된다는 M:1 관계를 지키는 특징이 있다.

단일행 함수는 처리하는 데이터의 형식에 따라서 문자형, 숫자형, 날짜형, 변환형, NULL 관련 함수로 나눌 수 있다.

 

단일행함수는SELECT , WHERE, ORDER BY절에 사용이 가능하다.

 

단일행 함수의 중요한 특징

- 각 행들에 대해 개별적으로 적용하여 데이터 값들을 조작하고, 각각의 행에 대한 조작 결과를 리턴한다.

- 여러 인자(Argument)를 입력해도 단 하나의 결과만 리턴한다.

- 함수의 인자로 상수, 변수, 표현식이 사용 가능하다.

- 함수를 인자로 사용하여 함수 내부의 함수 표현이 가능하다.

 

단일행 함수 문자형 함수

 

- 단일행 함수의 문자형 함수는 문자 데이터를 매개변수로 받아들여서 문자나 숫자 값의 결과를 돌려주는 함수이다.

다만 몇몇 문자열 함수의 경우는 결과를 숫자로 리턴해주기도 한다.

 

* Dual-Table : Oracle의 기본 쿼리는 SELECT절과 FROM절이 기본으로 설정되어 있기 때문에 함수만 사용할 수는 없다. 이 테이블은 가상 테이블로 사용자 SYS가 소유하고 있으며 모든 사용자가 액세스 가능한 테이블이다.

 

LOWER('문자') : 인수로 받은 문자를 소문자로 변환한다.

SELECT LOWER('ABCDEFG') FROM DUAL;

 

 

UPPER('문자') : 인수로 받은 문자를 대문자로 변환한다.

SELECT UPPER('abcdefg') FROM DUAL;

 

CONCAT('문자 1', '문자 2') : 인수로 받은 문자를 붙여서 리턴한다.

SELECT CONCAT('문자1','문자2') FROM DUAL;
SELECT '문자1'||'문자2' FROM DUAL;

 

두 개의 SQL문은 같은 값을 리턴한다.

 

ASCII('문자') : 전달받은 문자의 아스키코드값을 리턴한다.

SELECT ASCII('A') FROM DUAL;

SUBSTR('문자',3,1) : 전달받은 문자열로부터  2번째 인자에서부터 3번째 인자까지 문자열을 자른다.

여기서는 1부터 시작한다.

SELECT SUBSTR('가나다라마',3,1) FROM DUAL;

LENGTH('문자') : 인수로 전달받은 문자열의 길이를 리턴한다.  이 결과 값은 숫자형이다.

SELECT LENGTH('문자열의 길이') FROM DUAL;

 

LTRIM('문자')  : 왼쪽 공백을 삭제한다.

오라클에서는 2번째 인자를 통해 왼쪽 값부터 표현식에 맞는 문자열을 발견하면 해당 문자까지 삭제한다.

SELECT LTRIM(' 왼쪽공백을 삭제') FROM DUAL;
SELECT LTRIM(' 왼쪽공백을 삭제', ' 왼') FROM DUAL;

 

RTRIM('문자')  : 오른쪽 공백 및 전달받은 인자를 오른쪽부터 찾아 삭제

 

TRIM('문자') : 양쪽 공백을 삭제한다.

SELECT LENGTH(TRIM(' 왼쪽공백을 삭제  ')),LENGTH(' 왼쪽공백을 삭제  ') FROM DUAL;

반응형

'Database' 카테고리의 다른 글

내장 함수(BUILT-IN-FUNCTION) - 날짜형/변환형  (0) 2021.04.27
내장 함수(BUILT-IN-FUNCTION) - 숫자형  (0) 2021.04.27
연산자  (0) 2021.04.27
제약조건 (Constraint)  (0) 2021.04.26
짧) 인덱스 특성을 통한 DB 성능 향상  (0) 2021.04.24

댓글