함수하면 머리 아픈 수학이 떠오르죠?
하지만 프로그램안에서 함수는 그렇게 골치아프진 않은거 같아요
할 만하다는 얘기죠...
(수포자가 하는 이야기니 믿을만 할 듯......)
어떤 재료를 넣어 새로운 값을 만드는 틀이라고 생각하면
이해하기 쉬워요.
데이터바이스에서 말하는 함수들을 하기 위해서
재료들이 필요하겠죠? 단순한' 단일 행 함수'부터 정리해봤어요.
살펴보실까요??
질의문(쿼리문)의 출력결과의 개별 행마다 실행 결과를 내놓는 형태의 함수.
SELECT 구문은 데이터를 조회하는 구문으로 함수 포함되어 있더라도
저장된 데이터가 변경되지 않고, 출력 시에만 함수가 적용된 결과를 출력해준다.
substr는 추출하라는 뜻
[규칙]
substr(자를 위치(기준),자를 칸 수)
자를 위치는
마이너스가능,하지만 자를 칸수 자리는 마이너스 불가능!!!
[글자의 자릿수 세는 것]
방향------------->
h e l l o w o r l d
1 2 3 4 5 6 7 8 910
d l r o w o l l e h
| –1-2-3-4-5-6-7-8-9-10
방향------------------->
예제>hire_date(-2,2) ==>끝에서 두 자리 글자에서 두 자리만 추출하라는 뜻이다
**
left에 여백 채우다
right에 여백을 채우다
pad=‘여백을 채우다’라는 뜻이다
예>lpad(salary,10,*)결과> *****24000
예>rpad(salary,10,*) 결과> 24000*****
**
보통 이렇게 많이 쓴다
예>select concat (‘hello’,‘world’)
from dual;
**
유추해볼수 있다
양쪽에 조건에 걸리는 것은 다 잘라준다
<예시>
select trim(‘h’ from ‘hhhhhhellworldhhhh’)
from dual;
결과> elloword
밖에 있는 h는 다 사라진다
실제 많은 쓰는 <예>
select trim(‘ ’ from ‘ hello,world ’)
from dual;
이렇게 하면 결과가 공백을 없애고==>hello world
*참고로 dual은 최고관리자 계정이 가진 테이블, 결과를 볼 때 쓰라고 만든 (가상)테이블
4 5. 9 2 6
-2-1 |+1, 2, 3
예>round(49.923,2) 결과>49.92
소수점자리 2번째까지 남기는데
뒤에 숫자가 5이상이면 반올림
예>round(49.923,0) 결과>50
예>round(49.923,-1) 결과>50
예>trunc(49.923,2) 결과>49.92
예>round(49.923) 결과>50
예>trunc(49.923) 결과>49
==> 뒤에 자릿수자리에 아무 숫자도 안온다면 소수점을 기준으로 판단한다
-나눈 나머지를 출력해주는 함수
예시> select trunc(1600/300), mod(1600,300)
from dual;
결과> 5 100
<예시 1>
select ‘The job is for’ || upper(last_name)||’is’||lower(job_id) as “EMPLOYEE DETAILS”
FROM employees;
<예시 2> select employee_id, concat(first_name,last_name) NAME,
length(last_name), instr(last_name, ‘a’)
from employees
where substr(last_name,-1,1)=’n’;
<예시 3>
select employee_id, concat(first_name,last_name) NAME, job_id, length(last_name),instr(last_name,‘a’) “Contains ‘a’?”
from employees
where substr(job_id,4)=’REP’;
select sysdate
from dual;
' sysdate'는 오늘 날짜를 말함
1) 날짜+ 숫자= 날짜에 일수(숫자)를 더한 날짜가 나옴
2)날짜-숫자= 날짜에 일수(숫자)를 뺀 날짜가 나옴
3) 날짜-날짜= 한 날짜에서 다른 날짜를 뺀다
4)날짜+숫자/24 =날짜에 시간 수를 더한다
예> 1일=24시간
1시간=1/24
<예시>
select last_name,(sysdate-hire_date)/7 AS weeks
from employees
입력한 두 날짜간의 몇 개월 차이나는 지를 숫자로 출력해주는 함수
앞의 날짜에서 뒤의 날짜를 빼는 식으로 연산
날짜에 월을 추가
월의 마지막 날짜
날짜의 반올림
날짜 자릿수대로 짜름
<예시>sysdate=’25-jul-03’;이라고 한다면
문법
to_char(date,‘ ’)
- 시간 요소는 날짜에서 시간 부분의 형식을 지정한다
- 문자열은 큰 따옴표로 묶어 추가한다
- 숫자 접미어는 숫자를 영어 철자로 표기한다
<날짜 형식 요소>
ㅣ읽느라 수고 많으셨어요~ㅣ
부족한 글을 읽어주셔서 감사드립니다
아직 부족한게 많으니
틀린 곳이 있다면
조언의 말씀 꼭 부탁드립니다!!!!
[데이터베이스] 오라클_ 함수 종류 (일반함수: NVL/NVL2/NULLIF/COALESCE) (0) | 2020.07.19 |
---|---|
[데이터베이스]db_형 변환 함수(function) 뽀개기 (0) | 2020.07.05 |
데이터베이스 서버(데이터베이스관리시스템 DBMS) 설치하는 방법 (0) | 2020.06.25 |
[데이터베이스기본] SELECT 구문 파헤치기 (0) | 2020.06.11 |
데이터베이스 첫걸음! 가상 머신 설치하기Virtualbox 설치 (0) | 2020.06.10 |