SQLP

1장 6절 함수(FUNCTION)

Any DB 2013. 8. 17. 01:38

1. 내장함수 (BUILT-IN FUNCTION)

  - 데이터베이스를 설치하면 기본적으로 제공되는 함수

  - 단일행함수(Single-Row Function)

    : 함수는 입력되는 값이 아무리 많아도 출력은 하나만 된다는 M:1 관계

     단일행 내에 있는 하나의 값 또는 여러 값이 입력 인수로 표현될 수 있다.

 

   가)  단일행 함수의 종류  

 종류

내용 

함수의 예 

 문자형

함수

 문자를 입력하면 문자나 숫자 값을 반환한다.

 LOWER, UPPER, SUBSTR/SUBSTRING, LENGTH/LEN, LTRIM, RTRIM,TRIM,ASCII

 숫자형

함수

 숫자를 입력하면 숫자 값을 반환한다.

 ABS, MOD, ROUND, TRUNC, SIGN, CHR/CHAR, CEIL/CEILING, FLOOR, EXP, LOG, LN, POWER, SIN, COS, TAN

 날짜형

함수

 DATE 타입의 값을 연산한다.

 SYSDATE/GETDATE, EXTRACT/DATEPART, TO_NUMBER(TO)CHAR(d,'YYYY'|'MM'|'DD')) / YEAR|MONTH|DAY

 변환형

함수

 문자, 숫자, 날짜형 값의 데이터타입을 반환한다.

 TO_NUMBER, TO_CHAR, TO_DATE / CAST, CONVERT

 NULL

관련 함수

 NULL을 처리하기 위한 함수

NVL/ISNULL, NULLIF, COALESCE 

  나) 단일행 함수의 중요한 특징

   - SELECT, WHERE, ORDER BY 절에서 사용 가능하다.

   - 각 행(Row)들에 대해 개별적으로 작용하여 데이터 값들을 조작하고, 각각의 행에 대한 조작 결과를 리턴한다.

   - 여러 인자(Argument)를 입력해도 단 하나의 결과만 리턴한다.

   - 함수의 인자(Argument)로 상수, 변수, 표현식이 사용 가능하고, 하나의 인수를 가지는 경우도 있지만 여러 개의 인수를 가질 수도 있다.

    - 특별한 경우가 아니면 함수의 인자로 함수를 사용하는 함수의 중첩이 가능하다.

 

 - 다중행함수(Multi-Row Function)

     - 집계형함수 (Aggregate Function)

     - 그룹함수(Group Function)

     - 윈도우함수(Windows Function)

 

2. 문자형함수

   - 문자데이터를 매개 변수로 받아들여서 문자나 숫자 값의 결과를 돌려주는 함수이다.

   - 몇몇 문자형 함수의 경우는 결과를 숫자로 리턴하는 함수도 있다.

   가. 단일행 문자형 함수의 종류

 문자형 함수

 함수 설명 

 LOWER(문자열)

  문자열의 알파벳 문자를 소문자로 바꾸어 준다.

 UPPER(문자열)

  문자열의 알파벳 분자를 대문자로 바꾸어 준다. 

 ASCII(문자)

  문자나 숫자를 ASCII코드 번호로 바꾸어 준다. 

 CHR/CHAR(ASCII번호)

   ASCII 코드 번호를 문자나 숫자로 바꾸어 준다.

 CONCAT

(문자열1, 문자열2)

 Oracle, My SQL에서 유효한 함수이며 문자열1과 문자열2를 연결한다  합성 연산자 '||'(Oracle)나'+'(SQL Server)와 동일하다.

 SUBSTR/SUBSTRING

(문자열,m[, n])

  문자열 중 m위치에서 n개의 문자 길이에 해당하는 문자를 돌려준다. n이 생략되면 마지막 문자까지이다.

 LENGTH/LEN(문자열)

  문자열의 개수를 숫자값으로 돌려준다. 

 LTRIM

(문자열 [, 지정문자])

  문자열의 첫 문자부터 확인해서 지정 문자가 나타나면 해당 문자를 제거한다.

(지정 문자가 생략되면 공백 값이 디폴트)

  SQL Server에서는 LTRIM 함수에 지정문자를 사용할 수 없다. 즉, 공백만 제거할 수 있다. 

 RTRIM

(문자열 [, 지정문자]}

  문자열의 마지막 문자부터 확인해서 지정 문자가 나타나는 동안 해당 문자를 제거한다. (지정 문자가 생략되면 공백 값이 디폴트)

SQL Server에서는 LTRIM 함수에 지정문자를 사용할 수 없다. 즉, 공백만 제거할 수 있다. 

 TRIM

([leading | trailing|both| 지정문자 FROM 문자열)

문자역에서 머리말, 꼬리말, 또는 양쪽에 있는 지정 문자를 제거한다. (leading | trailing | both 가 생략되면 both가 디폴트)

SQL Server에서는 TRIM 함수에 지정문자를 사용할 수 없다. 즉, 공백만 제거할 수 있다. 

 

  나. 단일행 문자형 함수 사례

 

문자형 함수 사용 

결과 값 및 설명 

LOWER('SQL Expert') 

'sql expert' 

UPPER('SQL Expert') 

'SQL EXPERT' 

ASCII('A') 

65 

CHR(65) / CHAR(65) 

'A' 

CONCAT('RDBMS', 'SQL')

'RDBMS' || 'SQL' /

'RDBMS' + 'SQL' 

'RDBMS SQL' 

SUBSTR('SQL Expert',5,3) 

'Exp' 

 

 

 

 

 

 

 

3. 숫자형 함수

 

4. 날짜형 함수

 

5. 변환형 함수

 

6. CASE 표현

 

7. NULL 관련 함수