본문 바로가기

프로그래밍 공부&정리/DataBase

3장. 오라클 주요 함수

3장. 오라클 주요 함수

- select에 함수를 사용 : 골라내야 할 때 (열)

- where에 함수를 사용 : 조건, 비교 등을 할 때 (행)


1. DUAL 테이블

- 오라클에서 제공하는 가상의 테이블

- 연산식이나 현재 날짜 등을 확인할 때 사용

- 연산식이나 현재 날짜 등은 select 절에는 기재할 수 있지만 from의 테이블은 없어서 가상의 테이블인 dual을 사용한다.

- 관계형 데이터베이스는 출력할 때 select 구문을 사용하는데 select 절과 from 절 입력이 필수이므로 select에는 조회하고자 하는 연산식이나 현재 날짜를 출력하는 sysdate 등을 쓰고 from에 가상의 테이블인 dual을 사용.

- 나중에 배울 시퀀스를 확인할 때도 이 방법을 사용한다.

--오늘 날짜 조회

select sysdate

from dual; 


2. Round 함수

- 반올림을 하는 함수

- 형식

round(값이나 컬럼이름 [,자릿수])

- 자릿수를 생략하면 소수 첫째자리에서 반올림 후 정수 부분만 표시한다.

- 자릿수에 양수를 대입하면 소수를 양수까지 표시한다.

- 자릿수에 음수를 대입하면 정수 자리 반올림이 가능하다.

(※ 자바에서 Math 클래스에 있는 round 메소드도 동일한 기능을 한다)

-- emp 테이블에서 empno 와 sal을 조회.

-- sal은 10의 자리에서 반올림해서 100의 자리부터 나오도록 설정


select empno, round(sal,-2)

from emp;


3. upper, lower 함수

- 대문자 또는 소문자료 변경하는 함수.

- 아이디나 검색어의 경우, 대소문자를 구분하지 않는다. 이런 경우 대문자나 소문자로 변경해서 아이디나 검색어를 대조합니다.

select ename,lower(ename)

from emp; 


select upper('ddr')

from daul;


4. length 함수

- 글자수를 세어주는 함수

select length('apple')

from dual;


select length('오늘은오후에비가옵니다')

from dual;

- length 함수는 1바이트로 글자수를 세고

- lengthb 와 vsize 는 2바이트로 글자수를 센다.


5. substr 함수

- 특정 위치에서 글자를 분할해서 가져오는 함수.

- 형식

substr(대상, 시작위치, 추출할개수)

- 첫번째 매개변수 : 문자열

- 두번째 매개변수 : 시작위치 (음수를 대입할 수 있는데 이 경우 뒤에서부터 센다 : ~로 끝나는 조건을 써야할 때 사용한다.)

- 세번째 매개변수 : 글자 수

 select substr('welcome to oracle', 4, 3)

from dual;


 1

 2

 3

 4

 5

 6

 7

 8

 9

 10

 11

 12

 13 14 15 16 17

 w

 

 


select substr('welcome to oracle', -4, 3)

from dual;


 1

 2

 3

 4

 5

 6

 7

 8

 9

 10

 11

 12

 13 14 15 16 17

 w

 

 



실습


6. trim 함수

- 좌우 공백을 제거하는 함수

- 데이터베이스는 문자열을 2가지로 저장하고 있어 따로 봐야하는데

1. 문자길이를 변경할 수 없도록 하는 char : 문자 길이보다 작은 개수를 저장하면 뒤에 공백이 같이 저장됨.

2. 문자길이가 변경되면서 저장되는 varchar(varchar2) : 뒤의 공백을 제거하고 출력하던가 비교해야 함.


char->trim

 1

 2

 3

 4

 5

 6

 7

 8

 9

 10

 11

 12

 13 14 15 16 17

 w

 

 


 1

 2

 3

 4

 5

 6

 7

 8

 9

 10

 11

 12

 13 14 15 16 17

 w

 t

 

 


varchar(varchar2)->trim

 1

 2

 3

 4

 5

 6

 7

 8

 9

 10

 11

 12

 13 14 15 16 17

 w

 

 


 1

 2

 3

 4

 5

 6

 7

 8

 9

 10

 11

 12

 13 14 15

 w

 t


7. to_date 함수

- 문자열을 날짜 형식으로 변경해주는 함수

- 형식

to_date(문자열, 날짜서식)

select to_date('2018/09/03', 'yyyy/mm/dd')

from dual; 


8. NVL 함수

- null을 대체할 수 있는 함수

- 형식

nvl(null을 가질 수 있는 컬럼이나 연산식, 대체할 값)

--emp 테이블에서 1981년 6월 30일 이후에 입사한 사원의 이름(ename)과 입사일(hiredate) 조회 


select ename, hiredate

from emp

where hiredate >= to_date('1981/06/30', 'yyyy/mm/dd');


--emp 테이블에서 ename과 sal*12+comm 의 값을 조회하시오. comm은 null을 포함할 수 있는 컬럼입니다.

select ename, sal*12+nvl(comm,0)

from emp;

--null 이 포함된 컬럼을 연산할 때 곱셈을 해야 한다면 0이 아닌 1로 바꾸어 주면 된다.