ALTIBASE HDB 5.3.3 기초강좌
함수 0 0 40,347

by Altibase 함수 단일행함수 다중행함수 [2012.01.25]


  SQL 에서 사용하는 함수는 일반 프로그래밍 언어에서 사용하는 함수와 비슷합니다. 자주 사용되는 기능을 DBMS에 미리 생성해 두어 사용자들이 필요할 때, 호출해서 사용할 수 있습니다. 이런 함수를 built-in 함수라고 하며, ALTIBASE HDB는 약 100여 개 이상의 built-in 함수를 제공합니다.

함수의 개념

  함수는 입력 값에 대해서 작업을 수행하여 결과값을 반환합니다.

  이러한 함수는 SELECT 문장의 SELECT, WHERE, ORDDER BY, START WITH 절에서 사용할 수 있으며, 함수 안에 또 다른 함수를 호출하는 구조로 중첩해서 사용할 수 있습니다.

함수의 기능

  • - 데이터의 계산 수행
  • - 출력 결과를 조작
  • - 날짜 및 숫자 형식을 지정
  • - 칼럼의 데이터 유형 변경

함수의 유형

  함수는 입력 값의 개수에 따라 단일행 함수와 다중행 함수로 나눌 수 있습니다.

단일행 함수
  • 단일행 함수는 하나의 입력 값에 하나의 결과 값을 반환하는 함수를 의미합니다.

단일행 함수의 유형
  • - 문자: 문자를 입력하면 문자 또는 숫자를 반환하는 함수
  • - 숫자: 숫자를 입력하면 숫자를 반환하는 함수
  • - 날짜: Date 데이터의 값을 연산, Date 값 혹은 숫자를 반환하는 함수
  • - 변환: 값의 데이터 타입을 변환하는 함수
  • - 기타 :ALTIBASE HDB 에서 제공하는 함수의 종류에 대한 자세한 내용은 http://atc.altibase.com 에서 매뉴얼을 다운로드 받아서 확인할 수 있습니다

단일행 함수 구문
 
function_name (column|expression[,arg1, arg2,…])
    
  • - 함수의 이름을 작성 후 함수가 필요로 하는 인자들을 작성을 한다.
  • - 함수에 따라 인자를 필요로 하기도 하고 인자가 필요 없는 함수도 있다.

단일행 함수 예제

  employee 테이블의 사원이름을 소문자로 변경하시오.

 
iSQL> SELECT ename, LOWER(ename) FROM employee;

ENAME          LOWER(ENAME)          
-----------------------------------
EJJUNG         ejjung                
HJNO           hjno                  
HSCHOI         hschoi 

    

  employee 테이블에서 사원이름이 kskim 인 사람의 정보를 함수를 이용해서 조회하시오.

 
iSQL> SELECT ename, INITCAP(ename), SUBSTR(ename,2,3), REVERSE_STR(ename), INSTR(ename,'K') 
      FROM employee
      WHERE LOWER(ename) = 'kskim';
     
ENAME  INITCAP(ENAME)  SUBSTR(ENAME,2,3) REVERSE_STR(ENAME) INSTR(ENAME,'K') 
-----------------------------------------------------------------------------
KSKIM      Kskim            SKI                      MIKSK                1

    

  123.673 숫자에 대해 여러 가지 숫자함수를 사용하시오

 
iSQL> SELECT ROUND(123.673,2), TRUNC(123.673,-1), CEIL(123.673), FLOOR(123.673), SQRT(123.673)
      FROM dual;

ROUND(123.673,2) TRUNC(123.673,-1) CEIL(123.673) FLOOR(123.673) SQRT(123.673)          
------------------------------------------------------------------------------
123.67           120               124           123            11.1208362994876

    

  ‘2011-05-01’ 은 입사일 후 며칠이 지났는지 검색해보시오

 
iSQL> SELECT ename, join_date, TO_DATE('2011-05-01','YYYY-MM-DD') - join_date         
      FROM employee;
     
ENAME         JOIN_DATE       TO_DATE('2011-05-01','YYYY-MM-DD') - JOIN_DATE 
------------------------------------------------------------------------------
HJNO         18-NOV-1999                                4182                 
HSCHOI       11-JAN-2000                               4128 

    

다중행 함수

  여러 개의 입력 값에 하나의 결과 값을 반환하는 함수를 다중행 함수라고 하며, 그룹함수라고도 합니다.

다중행 종류
함수 설명
MIN 최소값
MAX 최대값
SUM 합계
AVG 평균
STDDEV 표준편차
VARIANCE 분산
COUNT 행의 수

다중행 함수 예제

  employee 테이블에서 사원들의 최소 급여, 최대 급여, 평균 급여, 급여의 합, 사원 수를 검색하시오

 
iSQL> SELECT MIN(salary), MAX(salary), AVG(salary), SUM(salary), COUNT(*)
      FROM employee;
     
MIN(SALARY)   MAX(SALARY)    AVG(SALARY)     SUM(SALARY)   COUNT                
---------------------------------------------------------------------------
500000          4000000         1836647.06      31223000       20
    

- 강좌 URL : http://www.gurubee.net/lecture/2177

- 구루비 강좌는 개인의 학습용으로만 사용 할 수 있으며, 다른 웹 페이지에 게재할 경우에는 출처를 꼭 밝혀 주시면 고맙겠습니다.~^^

- 구루비 강좌는 서비스 제공을 위한 목적이나, 학원 홍보, 수익을 얻기 위한 용도로 사용 할 수 없습니다.

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입