728x90

함수는 SQL의 아주 강력한 특징이며 다음을 위해서 사용할 수 있습니다.

    • 데이터 계산 수행
    • 개별적인 데이터 항목 수정
    • 행의 그룹에 대해 결과 조작
    • 출력을 위한 날짜와 숫자 형식 설정
    • 열의 데이터 타입 변환


단일 행 함수 종류에는 문자함수, 숫자 함수, 날짜 함수, 변환 함수 등이 있습니다.

 

문자 조작 함수

데이터의 대/소문자 구분이 명확하지 않을 경우 WHERE 조건절에 LOWER 또는 UPPER 함수가 유용하게 사용될 수 있습니다.

LEMGTH 문자열의 길이를 반환합니다. INSTR 은 주어진 문자의 위치를 반환합니다. 다음 SQL 코드는 FIRST_NAME의 길이와 FIRST_NAME에서 문자 'a' 의 위치를 반환합니다.

 

SUBSTR 은 주어진 문자열에서 주어진 시작 위치에서부터 지정한 개수만큼 부분 문자열을 반환합니다. CONCAT 함수는 두 문자열을 연결합니다.

 

LPAD는 왼쪽에, PRAD 오른쪽에 남은 부분을 주어진 문자로 채웁니다. LAPD 함수는 정의된 문장의 왼쪽 나머지 공간을 지정한 문자로 채웁니다. 오른쪽 공간에 채우는 함수에는 RPAD가 있습니다.

LTRIM 함수는 정의된 문자열의 왼쪽부터 지정된 단어가 발견되면 제거합니다. 반대로 오른쪽 단어를 제거하기 위해서는 RTRIM 함수를 사용합니다. 제거하는 문자를 지정하지 않으면 공백을 제거합니다.

REPLACE 함수는 정의된 문자열에서 지정한 문자열을 새로운 문자열로 대체합니다. 이를 이용하면 정의된 문자열에 포함되어 있는 공백을 제거할 수 있습니다. TRANSLATE 함수는 정의된 문자열을 1대1로 대응시킵니다.

 

날짜함수

구분 설명
ROUND 특정 자릿수에서 반올림한다.
TRUNC 특정 자릿수에서 잘라낸다(버림)
MOD 입력 받은 수를 나눈 나머지 값을 반환한다.

 

ROUND 함수는 열, 표현식 또는 값을 소수점 N자리로 반올림합니다.

두번째 인자가 0이거나 생략되면, 값을 소수점 위치가 0으로 반올림됩니다. 2번째 인자가 2이면, 값은 소수점 아래 두번째 위치로 반올림됩니다. 반대로, 두번째 인자가 -2 이면 값은 소수점 좌측의 두번째 위치로 반올림됩니다.

 

TRUNC 함수는 열, 표현식 또는 값을 소수점 N 자리로 절삭합니다. TRUNC 함수는 ROUND 함수와 유사한 인수로 수행합니다. 두 번째 인자가 0이거나 생략되면 값은 소수점 위치를 0으로 절삭합니다. 두 번째 인수가 2이면, 값은 두 개의 소수점 아래 위치로 절삭합니다. 반대로 두번째 인자가 -2이면, 값은 소수점 좌측부터 두 자리까지 절삭합니다.

다음 구문은 TRUNC함수를 사용하고 있습니다.

 

날짜 함수

 

오라클은 년,월,일,시 분, 초 형태의 숫자 형식으로 날짜를 저장합니다. 

디폴트 날짜 형식은 'DD-MON-YY' 입니다. 시스템에 따라 'YY/MM/DD'가 될수 있습니다.

SYSDATE는 현재의 날짜를 반환하는 함수입니다.

SYSTIMESTAMP 는 현재의 날짜와 시간을 반환하는 함수입니다.

DUAL 은 SYSDATE를 보기 위해 사용되는 dummy 테이블이빈다.

 

SYSDATE - 현재의 날짜를 반환하는 함수입니다. 다른 열 이름을 사용하듯이 SYSDATE를 사용할 수있습니다. 

예를 들면, 테이블로부터 SYSDATE를 선택하여 현재 날짜를 출력할 수 있습니다. DUAL이라는 더미 테이블로부터 SYSDATE를 선택하는 것이 관례입니다. 

데이터베이스는 날짜를 숫자로 저장하므로, 더하기와 빼기 같은 산술 연산자를 사용하여 계산을 수행할 수 있습니다.

날짜뿐만 아니라 숫자 상수를 더하거나 뺄 수도 있습니다.

ROUND(data, format) 형식으 띄고있습니다.

 

TRUNC(data, format) - 함수 역시 숫자를 잘라내는 것뿐만 아니라 날짜를 잘라낼 수 있습니다. 

ROUND함수와 마찬가지로 포맷 형식을 주어 다양한 기준으로 날짜랄 잘라낼 수 있습니다.

728x90

'DB' 카테고리의 다른 글

뷰(View)  (0) 2022.01.05
DML-1  (0) 2022.01.04
DML(DATA MANIPULATION LANGUAGE)  (0) 2022.01.04
서브쿼리  (0) 2022.01.01
SQL-JOIN이란?  (0) 2021.12.31
복사했습니다!