본문으로 바로가기

[DataBase] SQL 함수

category Programming/ DataBase 2018. 4. 18. 21:02

SQL함수를 알기전에 DUAL테이블에 대해서 알아본다.


DUAL테이블은 일반적인 테이블과는 약간 다르다


DUAL은 함수나 계산식을 테이블 생성없이 수행해 보기 위한 용도로 사용하는 일종의 DUMMY테이블이다. 어떤 값이 들어있는 것이 아니라 임시의 공간이라고 생각하면 된다. DUAL테이블이 존재하는 이유는 SQL문처럼 함수에 대한 쓰임을 알고 싶을 때 특정 테이블을 생성할 필요 없이 DUAL테이블을 이용하여 함수의 값을 리턴(RETURN)받을 수 있기 때문이다.


이렇게 사용되는 DUAL테이블은 자신이 속해있는 SYS스키마에서만 사용하는게 아닌 만큼 Public 시노님(SYNONYM)으로 생성하여 오라클에 있는 모든 계정에서 사용이 가능하다.


추가로 DUAL테이블의 몇 가지 틍징을 정리하면 다음과 같다.


  • DUAL 테이블은 오라클에 의해서 자동으로 생성되는 테이블이다.
  • DUAL 테이블은 SYS스키마에 있지만 모든 사용자가 엑세스할 수 있다.
  • DUAL 테이블은 VHARCHAR2(1)로 정의된 DUMMY라고 하는 하나의 컬럼(열)으로 되어 있다.
  • DUAL 테이블은 사용자가 함수(계산)를 실행할 때 임시로 사용하는데 적합하다.



-------------------------------------------------------------------------------------------------------------------------------------------------


1. 문자 함수




UPPER : 대문자로 변환

LOWER :  소문자로 변환

INITCAP : 이니셜만 대문자로 변환

LENGTH :  문자길이를 구하는 함수

LENGTHB :  바이트 수를 알려주는 함수 ( 한글1자는 2바이트를 차지한다)

SUBSTR : 문자열 일부만 추출하는 함수

형식) SUBSTR(대상, 시작위치, 추출할 개수) --> 시작위치가 양수면 문자열의 왼쪽부터 / 음수면 오른쪽부터


SUBSTRB : 바이트 수를 기준으로 문자열 일부만 추출하는 함수

INSTR : 특정 문자의 위치를 구하는 함수

형식) INSTR(대상, 찾을글자, 시작위치, 몇번째 발견인지)

LPAD / RPAD : 특정 기호로 채우는 함수

LPAD(LEFT PADDING) / RPAD(RIGHT PADDING) 함수는 칼럼이나 대상 문자열을 명시된 자릿수에서 오른쪽에 나타내고, 남은 왼쪽 자리를 특정 기호로 채운다.


LTRIN / RTRIM : 왼쪽 / 오른쪽에서 공백 문자를 삭제하는 함수


TRIM : 특정 문자를 잘라내는 함수

ex) SELECT TRIM('a' FROM 'aaaaORACLEaaaaaa') FROM DUAL;

--->  앞뒤로 'a'가 모두 잘려나가고 ORACLE만 출력됨.




2. 숫자 함수





3. 날짜 함수





4. 형 변환 함수









5.  -NULL을 0또는 다른 값으로 변환하는 NVL 함수

-선택을 위한 DECODE 함수

--> SWITCH CASE 문과 같은 기능을 갖습니다.


-조건에 따라 서로 다른 처리가 가능한 CASE 함수



'Programming > DataBase' 카테고리의 다른 글

[DataBase] DDL / DML / 서브쿼리  (1) 2018.04.19
[DataBase] GROUP 함수  (0) 2018.04.18
[DataBase] SQL*PLUS 파일 명령어  (0) 2018.04.18
[DataBase] 기본 SQL문 정리2  (0) 2018.04.18
[DataBase] PL / SQL 개념  (0) 2018.04.18