[SQL 기본]내장형 함수(BUILT-IN FUNCTION)

yellong·2020년 5월 29일
0

SQLD

목록 보기
11/27

내장형 함수란?

  • 모든 데이터베이스는 SQL에서 사용할 수 있는 내장형 함수를 가지고 있다.
  • 내장형 함수로는 형변환 함수, 문자열 및 숫자형 함수, 날짜형 함수가 있다.

DUAL 테이블

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

내장형 함수의 종류

문자열 함수

문자열 함수설명
ASCII(문자)문자 혹은 숫자를 ASCII 코드값으로 변환한다.
CHAR(ASCII 코드값)ASCII 코드값을 문자로 변환한다.
SUBSTR(문자열, m, n)문자열에서 m번째 위치부터 n개를 자른다.
CONCAT(문자열1, 문자열2)- 문자열1번과 문자열2번을 결합한다.
- Oracle은 '||', MS-SQL은 '+'를 사용할 수 있다.
LOWER(문자열)영문자를 소문자로 변환한다.
UPPER(문자열)영문자를 대문자로 변환한다.
LENGTH 혹은 LEN(문자열)공백을 포함해서 문자열의 길이를 알려준다.
LTRIM(문자열, 지정문자)- 왼쪽에서 지정된 문자를 삭제한다.
- 지정된 문자를 생략하면 공백을 삭제한다.
RTIM(문자열, 지정문자)- 오른쪽에서 지정된 문자를 삭제한다.
- 지정된 문자를 생략하면 공백을 삭제한다.
TRIM(문자열, 지정된 문자)- 왼쪽 및 오른쪽에서 지정된 문지를 삭제한다.
- 지정된 문자를 생략하면 공백을 삭제한다.

문자형 함수 예시

SELECT ASCII('a'), SUBSTR('ABC', 1, 2), 
LENGTH('A BC'), LTRIM('  ABC'), 
LENGTH(LTRIM('  ABC'))
FROM DUAL;
  • ASCII('a')는 소문자 'a'의 ASCII 코드 값을 알려준다.
  • SUBSTR('ABC', 1, 2)는 문자열의 1번째 위치부터 2개를 자른다. 결과는 'AB'가 된다.
  • LENGTH('A BC')는 문자열 'A BC'의 길이를 알려준다. 길이는 4이다.

날짜형 함수

날짜형 함수설명
SYSDATE오늘의 날짜를 날짜 타입으로 알려준다.
EXTRACT('YEAR'|'MONTH'|'DAY'| from dual)날짜에서 년, 월, 일을 조회한다.

날짜형 함수 예시

SELECT SYSDATE,
EXTRACT (YEAR from sysdate),
TO_CHAR(SYSDATE, 'YYYYMMDD')
FROM DUAL;
  • 날짜형 함수 중에서 오늘 날짜를 구하기 위해서는 SYSDATE를 사용하면 된다.
  • 만약 해당 연도만 구하고 싶다면 EXTRACT를 사용하면 된다.
  • TO_CHAR함수는 형변환 함수 중에서 가장 많이 사용하는 것으로 숫자나 날짜를 원하는 포맷의 문자열으로 변환한다.

숫자형 함수

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

숫자형 함수 예시

SELECT ABS(-1), SIGN(10), MOD(4, 2), CEIL(10.9), 
FLOOR(10.1), ROUND(10.2222, 1)
FROM DUAL;
  • ABS(-1) 는 -1의 절댓값인 1을 반환한다.
  • SIGN(10)은 해당 숫자가 양수이면 1, 0이면 0, 음수이면 -1을 반환하는 함수로, 1을 반환한다.
  • MOD(4, 2)는 4와 2를 나누었을 때의 나머지인 0을 반환한다.
  • CEIL(10.9)는 10.9를 올림하여 11을 반환한다.
  • FLOOR(10.1)은 10.1을 내림하여 10을 반환한다.
  • ROUND(10.2222, 1)은 해당 숫자를 소수점 1번째 자리까지 반올림하여 10.2를 반환한다.

0개의 댓글