SQLD - 내장형 함수(BUILT-IN Function)

헨도·2024년 2월 15일
0

SQLD

목록 보기
20/28
post-thumbnail

내장형 함수

  • 모든 데이터베이스는 SQL에서 사용할 수 있는 내장형 함수를 가지고 있다.
  • 내장형 함수는 데이터베이스 관리 시스템 벤더별로 약간의 차이가 있지만, 거의 비슷한 방법으로 사용이 가능하다.
  • 내장형 함수로는 앞서 배운 형변환 함수, 문자열 및 숫자형 함수, 날짜형 함수가 있다.

DUAL 테이블

  • DUAL 테이블은 Oracle 데이터베이스에 의해서 자동으로 생성되는 테이블이다.
  • Oracle 데이터베이스 사용자가 임시로 사용할 수 있는 테이블로 내장형 함수를 실행할 때도 사용할 수 있다.
  • Oracle 데이터베이스의 모든 사용자가 사용할 수 있다.
  • Oracle은 기본적으로 DUAL 테이블이라는 Dummy 테이블이 존재한다.

내장형 함수의 종류

  • DUAL 테이블에 문자형 내장형 함수를 사용하면 다음과 같다.
  • ASCII 함수는 문자에 대한 ASCII 코드 값을 알려준다.
    ASCII 코드는 대문자 A를 기준으로 A(65), B(66), C(67) 등의 값이다.
  • SUBSTR 함수는 지정된 위치의 문자열을 자르는 함수이고 LENGTH 함수, LEN 함수는 문자열의 길이를 계산한다.
  • LTRIM 함수를 사용하면 문자열의 왼쪽 공백을 제거할 수 있다.
  • 또한 함수를 중첩해서 사용해도 된다.
    ex ) LENGTH(LTRIM(' ABC'))
  • Oracle 데이터베이스에서 제공하는 문자열 함수는 다음과 같다.

문자열 함수

문자열 함수설명
ASCII(문자)문자 혹은 숫자를 ASCII 코드 값으로 변환한다.
CHR/CHAR(ASCII 코드 값)- ASCII 코드 값을 문자로 변환한다.
- 오라클은 CHR 사용, MSSQL, MYSQL 은 CHAR 사용
SUBSTR(문자열, m, n)문자열에서 m 번째 위치부터 n개를 자른다.
CONCAT(문자열1, 문자열2)- 문자열 1번과 문자열 2번을 결합한다.
- Oracle은 '
LOWER(문자열)영문자를 소문자로 변환한다.
UPPER(문자열)영문자를 대문자로 변환한다.
LENGTH 혹은 LEN(문자열)공백을 포함해서 문자열의 길이를 알려준다.
LTRIM(문자열, 지정문자)- 왼쪽에서 지정된 문자를 삭제한다.
- 지정된 문자를 생략하면 공백을 삭제한다.
RTRIM(문자열, 지정문자)- 오른쪽에서 지정된 문자를 삭제한다.
- 지정된 문자를 생략하면 공백을 삭제한다.
TRIM(문자열, 지정된 문자)- 왼쪽 및 오른쪽에서 지정된 문자를 삭제한다.
- 지정된 문자를 생략하면 공백을 삭제한다.
  • 날짜형 함수 중에서 오늘날짜를 구하기 위해서는 SYSDATE 를 사용하면 된다.
  • 만약, 해당 연도만 알고 싶다면, EXTRACT 함수를 사용한다.
  • TO_CHAR 함수는 형변환 함수 중에서 가장 많이 사용하는 것으로 숫자나 날짜를 원하는 포맷의 문자열로 변환한다.
SELECT 
	(1) SYSDATE,
	(2) EXTRACT(YEAR From sysdate),
    (3) TO_CHAR(SYSDATE, 'YYYYMMDD')
FROM DUAL;

(1) 오늘 날짜를 Date 타입으로 알려준다.
(2) 오늘 날짜에서 연도를 구하며, 'YYYYMMDD' 는 변환 포맷이다.
(3) 오늘 날짜를 구하면 TO_CHAR 로 문자형으로 변환한다.
  • Oracle 데이터베이스 날짜형 함수는 다음과 같다.

날짜형 함수

날짜형 함수설명
SYSDATE오늘의 날짜를 날짜 타입으로 알려준다.
EXTRACT(YEAR FROM SYSDATE)날짜에서 년, 월, 일을 조회한다.
  • 절대값을 계산하는 ABS 함수와 음수, 0, 양수를 구분하는 SIGN, 나머지를 계산하는 MOD 등의 함수를 사용하면 다음과 같다.
SELECT
	(1) ABS(-1), 
    (2) SIGN(10),
    MOD(4, 2), CEIL(10.9), FLOOR(10.1),
    (3) ROUND(10.222, 1)
FROM DUAL;

(1) 부호를 없앤다.
(2) 음수, 0, 양수를 구분한다.
(3) 소수점 한자리에서 반올림한다.
  • Oracle 데이터베이스가 지원하는 숫자형 함수는 다음과 같다.

숫자형 함수

숫자형 함수설명
ABS(숫자)절댓값을 돌려준다.
SIGN(숫자)양수, 음수, 0을 구별한다.
MOD(숫자1, 숫자2)- 숫자 1을 숫자 2로 나누어 나머지를 계산한다.
- %를 사용해도 된다.
CEIL / CEILING(숫자)숫자보다 크거나 같은 최소의 정수를 돌려준다.
FLOOR(숫자)숫자보다 작거나 같은 최대의 정수를 돌려준다.
ROUND(숫자, m)- 소수점 m 자리에서 반올림한다.
- m 의 기본 값(Default Value)은 0이다.
TRUNC(숫자, m)- 소수점 m 자리에서 절삭한다.
- m 의 기본 값은 0이다.
profile
Junior Backend Developer

0개의 댓글