Araina’s Blog

7. ORACLE SQL 고급: SQL 내장 함수 본문

Develop Study/Database (ORACLE)

7. ORACLE SQL 고급: SQL 내장 함수

Araina 2022. 5. 26. 23:10


 

 

1. 내장 함수

SQL에서는 함수의 개념을 사용한다.

수학의 함수처럼 특정 값, 열의 값을 입력받아 그 값을 계산하여 결과를 돌려준다.

SQL의 함수는 DBMS가 제공하는 내장 함수(Built-In Function)와 사용자가 직접 만들어서 사용하는 사용자 정의 함수(User-Definded Function)로 나눠진다.

SQL 내장 함수는 상수, 속성 이름을 입력 값으로 받아서 단일 값을 결과로 반환한다.

모든 내장 함수는 최초에 선언될 때 유효한 입력 값을 받아야 한다.

 

1.1) Dual 테이블

내장 함수를 테스트할 때 'Dual'이라는 테이블을 사용할 것이다.

이 테이블은 이전에 구현되어 있는 테이블이 아니라 결과 값을 보기 위해서 임시로 사용하는 테이블이다.

다른 테이블을 사용할 때와 마찬가지로 FROM 절과 함께 이름을 작성해주기만 하면 된다.

 


 

2. 숫자 함수

 


 

3. 문자 함수

 


 

4. 날짜/시간 함수

 


 

5. NULL 값 처리

Null 값이란, 아직 지정되지 않은 값을 의미한다.

0, 빈 문자, 공백과는 다른 의미를 지니고 있다.

Null 값은 비교 연산자를 적용할 수 없으며, 연산을 수행하면 Null 값이 반환된다.

집계 함수를 사용할 때, 'Null + 숫자' 연산의 결과는 Null이다.

집계 함수 계산 시, Null이 포함된 행은 집계에서 제외된다.

해당되는 행이 1개도 없을 경우에는 SUM, AVG 함수의 결과가 Null이 되고, COUNT 함수의 결과는 0이 된다.

 

Null 값을 확인하기 위해서는 IS NULL 또는 IS NOT NULL을 사용한다.

Null 값을 찾을 때는 ' = ' 연산자를 사용하면 안 된다.

Null 값이 아닌 값을 찾을 때에도 ' < > ' 연산자 대신 IS NOT NULL을 사용해야 한다.

Null 값을 다른 값으로 대치하여 연산하거나 다른 값으로 출력하기 위해서는 NVL 연산을 사용한다.

NVL(attribute, data) /* 속성 값이 NULL이면 '값'으로 대치한다. */

 


 

6. ROWNUM

내장 함수는 아니지만, 자주 사용되는 문법이다.

오라클 내부적으로 생성되는 가상 칼럼으로 SQL 조회 결과의 순번을 나타낸다.

자료 일부분만 확인하여 처리할 때 유용하게 쓸 수 있다.

ROWNUM을 사용할 때 ' = '는 1만 의미가 있다. (ROWNUM = 1)

ROWNUM > 또는 ROWNUM >=은 항상 값이 FALSE이기 때문에 의미가 없다.

ROWNUM < 또는 ROWNUM <=만 의미가 있으므로 사용 시 주의해야 한다.

 


 


수고하셨습니다!


Comments