[DB/SQLD] 내장형함수, DUAL 테이블

1 분 소요

내장형 함수

모든 데이터베이스는 SQL에서 사용할 수 있는 내장형 함수를 가지고 있다. 내장형 함수는 데이터베이스 관리 시스템 벤더별로 약간의 차이가 있지만, 거의 비슷한 방법으로 사용이 가능하다.



DUAL 테이블

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



내장형 함수 종류

문자열함수

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


날짜형함수

날짜형함수 설명
SYSDATE 오늘의 날짜를 날짜 타입으로 반환
EXTRACT(‘YEAR’ | ‘MONTH’ | ‘DAY’ from dual) 날짜에서 년,월,일을 조회


숫자형함수

숫자형함수 설명
ABS(숫자) 숫자의 절댓값 반환
SIGN(숫자) 양수, 음수, 0을 구별
MOD(숫자1, 숫자2) 숫자1을 숫자2로 나누어 나머지를 계산. % 연산으로 대체가능.
CEIL/CEILING(숫자) 숫자보다 크거나 같은 최소의 정수를 반환
FLOOR(숫자) 숫자보다 작거나 같은 최대의 정수를 반환
ROUND(숫자,m) 소수점 m 자리에서 반올림. m의 기본값은 0
TRUNC(숫자,m) 소수점 m 자리에서 절삭. m의 기본값은 0



사용예시

SELECT ASCII('a'), SUBSTR('ABC',1,2), LENGTH('A BC'), LTRIM(' ABC'),
        LENGTH(LTRIM(' ABC))
FROM DUAL;
97 AB 4 ABC 3


SELECT SYSDATE, EXTRACT(YEAR From sysdate),
        TO_CHAR(SYSDATE, 'YYYYMMDD')
FROM DUAL;
18/06/16 2018 20180616


SELECT ABS(-1), SIGN(10), MOD(4,2), CEIL(10.9), FLOOR(10.1), ROUND(10.222,1)
FROM DUAL;
1 1 0 11 10 10.2