SQL함수
- 어떠한 일을 수행하는 기능으로써 주어진 인수를 재료로 처리를 하여 그 결과를반환하는 일을 수행한다
- 입력(INPUT)과 출력(OUTPUT)으로 구성되는데,
입력으로 데이터를 설정하면, 함수가 내부적으로 데이터를 가공하여 출력을 통해 반환한다.
단일행 함수
- 모든 row에 대해 각각 적용되어 행의 개수와 동일한 개수를 반환하는 함수
- SELECT, WHERE, ORDER BY 절에 사용가능
문자함수
- 문자와 관련된 특별한 조작을 위한 함수
- 테이블 행단위로 처리됨
함수 | 설명 |
CHR(아스키 코드) | SELECT CHR(65) FROM DUAL ; |
CONCAT(칼럼명, '붙일문자') | 두개의 문자열을 연결하여 반환하는 연결함수 SELECT CONCAT(ename, ' 님' ) name FROM emp ; |
INITCAP( '문자열' ) | 각 단어의 시작 문자를 대문자로 변환하여 반환한다. SELECT INITCAP( 'hello world') FROM DUAL; |
LOWER( '문자열' ) | 모든 글자를 소문자로 변환하여 반환한다. SELECT LOWER( 'HELLO!' ) FROM DUAL; |
UPPER( '문자열' ) | 모든 글자를 대문자로 변환하여 반환한다. SELECT UPPER( 'hello!' ) FROM DUAL; |
LPAD( '문자열' , 전체 자리수 , '남는자리를 체울 문자') |
오른쪽 정렬 후 왼쪽에 생긴 빈 공백에 특정 문자를 채운다. |
RPAD( '문자열' , 전체 자리수 , '남는자리를 체울 문자') | 왼쪽 정렬 후 오른쪽에 생긴 빈 공백에 특정 문자를 채운다. SELECT RPAD( 'HELLO', 15 , '^' ) FROM DUAL; |
LTRIM( '문자열' , '제거할문자' ) | 왼쪽에서 특정 문자를 삭제한다. SELECT LTRIM( 'ACACBCD' , 'AC' ) FROM DUAL; |
RTRIM( '문자열' , '제거할문자') | 오른쪽에서 특정 문자를 삭제한다. SELECT RTRIM( 'ACDDBAC', 'AC') FROM DUAL; |
REPLACE( '문자열1' , '문자열2' , '문자열3') | 문자열 1에 있는 문자열중 문자열2를 찾아서 문자열3 으로 바꿔준다. SELECT REPLACE( 'Hello mimi' , 'mimi', 'mama' ) FROM DUAL; |
SUBSTR( '문자열' , N1, N2 ) | 문자열의 N1 번째 위치에서 N2 개만큼 문자열 빼오기 SELECT SUBSTR( 'ABCDEFGHIJ' , 3 , 5) FROM DUAL; |
ASCII('문자') | 문자에 해당하는 ASCII 코드값을 반환한다. SELECT ASCII( 'A' ) FROM DUAL; |
LENGTH( '문자열' ) | 문자열의 길이를 반환한다. SELECT LENGTH( 'ABCDE' ) FROM DUAL; |
LEAST( '문자열1', '문자열2' , '문자열3' ) |
문자열 중에서 가장 앞의 값을 리턴한다. SELECT LEAST( 'AB','ABC','D') FROM DUAL; |
NVL(칼럼명 , 값 ) | NULL값을 어떤 특정한 값으로 변환하여 반환한다.(문자,날짜 ,수치 데이터) SELECT ename,NVL(comm, 0) FROM emp ; |
TO_CHAR | 시간 |
숫자함수
- 숫자와 관련된 특별한 조작을 위한 함수
- 테이블 행단위로 처리됨
함수 | 설명 |
ABS(숫자) | 숫자의 절대값을 반환한다. SELECT ABS(-10) FROM DUAL; |
CEIL(소수점이 있는 수) | 파라미터 값보다 같거나 가장 큰 정수를 반환(올림) SELECT CEIL(3.1234) FROM DUAL; |
FLOOR(소수점이 있는 수) | 파라미터 값보다 같거나 가장 작은 정수반환(내림) SELECT FLOOR(2.888829) FROM DUAL; |
ROUND(숫자,자리수) | 숫자를 자리수+1 번째 위치에서 반올림한다. SELECT ROUND(3.22645, 2) FROM DUAL; |
MOD(숫자1 , 숫자2) | 숫자1을 숫자2로 나눈 나머지를 리턴한다. SELECT MOD(10,3) FROM DUAL; |
TRUNC(숫자1, 자리수) | 숫자1의 값을 소주점이하 자리수까지만 나타낸다. 나머지는 잘라낸다. SELECT TRUNC(12.23532576 , 2) FROM DUAL; |
날짜 함수
- 날짜 데이터 타입에 사용하기 위한 함수. 단일 함수
함수 | 설명 |
SYSDATE | 현재 시간을 리턴한다. SELECT SYSDATE FROM DUAL; |
ADD_MONTHS( 날짜, 더해질월) | SELECT ADD_MONTHS(SYSDATE, 10) FROM DUAL; |
LAST_DAY(날짜) | 해당날짜에 해당하는 달의 마지막 날짜을 반환한다. SELECT LAST_DAY(SYSDATE) FROM DUAL; |
MONTHS_BETWEEN(날짜1, 날짜2) | 두 날짜 사이의 월의 수 SELECT empno,MONTHS_BETWEEN(SYSDATE, HIREDATE) 근무개월 FROM emp ; |
NEXT_DAY(날짜) | 명시된 날짜로 부터 다음 요일에 대한 날짜를 반환 |
ROUND | 날짜를 가장 가까운 연도 또는 월로 반올림하여 반환 |
TRUNC | 날짜를 가장 가까운 연도 또는 월로 절삭하여 반환 |
변환함수
- 문자 데이터는 숫자(TO_NUMBER), 날짜(TO_CHAR) 데이터로 변환 가능
(자동으로 변환 가능) - 숫자,날짜 데이터는 문자(TO_CHAR)데이터로 변환 가능
- 숫자-날짜 데이터로는 서로 변환 불가능
함수 | 설명 |
TO_NUMBER('string') | 문자데이터를 숫자데이터로 바꿔줌 |
TO_DATE('string', 'format') | 문자데이터를 날짜 데이터로 바꿔줌 |
TO_CHAR(number|date, 'format') | 숫자,날짜 데이터를 문자데이터로 변환 |
조건함수
함수 | 설명 |
DECODE | 안배움 |
CASE | 안배움 |
'ORACLE' 카테고리의 다른 글
View(뷰) / Sequence(시퀀스) / SYNONYM(동의어) (0) | 2019.11.15 |
---|---|
SQL 함수-그룹함수 / GROUP BY 절 / HAVING절 (0) | 2019.11.15 |
DML / TCL (0) | 2019.11.15 |
DDL 명령어 / TABLE 객체 / ROWID / ROWNUM (0) | 2019.11.15 |
Data Base (0) | 2019.11.14 |