오라클의 단일행 함수
1. 오라클의 함수
- 리턴값이 있는 코드의 모임
- 종류로는 단일행 함수와 그룹 함수로 분류
- 단일행 함수는 하나의 데이터를 가지고 연산을 해서 하나의 결과를 리턴하는 함수
- 여러 개의 데이터를 함수에 대입하면 함수는 각각의 데이터에 동작을 해서 결과를 여러 개로 리턴
2. 개발자 입장에서는 데이터베이스에서 데이터를 가공하는 것 보다는 프로그램 안에서 가공하는 것을 선호
3. DUAL 테이블
- 오라클의 가상 테이블
- 연산식이나 오늘 날짜, 시퀀스 등의 값을 알고자 할 때 사용할 수 있는 가상 테이블
ex) select 12*34*33
from dual;
4. ROUND
- 데이터를 반올림해주는 함수
- 숫자 데이터와 날짜 데이터에 사용이 가능
ROUND(데이터, 반올림할 자리)
- 자리를 생략하면 0가 설정되서 소수 첫째 자리에서 반올림
- 음수를 대입하면 정수 부분을 반올림
ROUND(123.87 ,1) = 123.9
ROUND(123,87) = 124
ROUND(123,-2) = 100
ex) emp 테이블에서 ename과 sal을 조회
sal의 값은 10의 자리에서 반올림해서 100의 자리까지 나오도록 출력
5. 문자 관련 함수
- 영문자를 사용할 때는 대소문자 구분 여부를 판단: UPPER, LOWER, INICAP
- 문자열의 길이: LENGTH(글자 개수), LENGTHB(바이트 수)
- 데이터를 생성할 때 입력 가능한 최대 글자 수로 설정을 하기 때문에 뒤에 공백이 있을 수 있다.
(LTRIM,RTRIM,TRIM)
한글은 3byte로 처리
LOWER
6. 형 변환 함수
- 데이터의 자료형 변환
- 문자 데이터와 숫자 및 날짜 데이터 사이의 변환
- 사용자의 입력을 받거나 프로그램이 언어로부터 입력받을 때는 문자열로 입력받고
실제 사용할 때는 변환해서 사용하는 경우가 많음
1) to_char
- 날짜 데이터를 문자열로 변환하고자 하는 경우
to_char(날짜 데이터, '출력 서식')
- 숫자 데이터를 문자열로 변환하고자 하는 경우
to_char(숫자 데이터, '출력 서식')
2) to_number
to_number(문자 데이터, '숫자 서식')
3) to_date
to_date(문자 데이터, '날짜 서식')
select to_date('1983-05-05 13','yyyy-mm-dd-hh24')
from dual;
NVL
- null값을 치환하기 위한 함수
- null은 아직 알려지지 않은 값 - 자로구조에서는 nill이라고도 함.
- null과의 산술 연산은 무조건 null(null과는 연산을 할 수 없기 때문)
- null인 데이터의 값을 치환하기 위해서 사용하는 함수
- nvl(표현식 또는 열이름, 대체할 값)
*대체할 값은 열이름의 자료형과 일치해야함.
ex) emp에서 job의 개수 조회
ex2) emp에서 comm이 null인 데이터의 개수
*count는 null을 제외하고 카운트, count에는 컬럼명 쓰지 말고 * 쓰는게 좋음
4. 그룹 함수는 그룹화하지 않은 열과 같이 출력할 수 없음.
- emp 테이블에서 sal가장 큰 데이터의 ename과 sal의 값을 조회
5. GROUP BY
- where절 다음에 기재해서 데이터를 그룹화하는 절
- 컬럼이름이나 표현식 모두 가능
- GROUP BY를 사용하는 경우 그룹화한 열과 그룹함수만 select구문에서 출력 가능
ex1) emp 테이블에서 job별로 sal의 평균 조회
ex2) emp에서 deptno별 인원수 조회
ex3) 연도별 입사한 사원의 수 조회
substr(데이터, 시작위치, 개수)