1. 함수종류
1) 문자형 함수: 문자를 입력받고 문자와 숫자 모두를 반환할 수 있다.
2) 숫자형 함수: 숫자를 입력받고 숫자를 반환
3) 날짜형 함수: 날짜형에 대해 수행하고 숫자를 반환하는 month_between을 제외하고
모두 날짜형(date)의 값을 반환한다.
4) 변환형 함수: 어떤 데이터형의 값을 다른 데이터 형으로 변환한다.
5) 기타. 일반적인 함수: NVL, DECODE
-------------------------------------------------------문자형 함수
(1) 변환함수: lower, upper, initcap
(2) 문자조작함수: concat,substr,length,lpad,rpad,ltrim,rtrim, replace
-- lower : 대문자-->소문자로
-- upper : 소문자-->대문자로
-- initcap: 첫글자를 대문자로. 나머지는 소문자
SELECT * FROM DUAL;
SELECT 2*8 FROM DUAL;
select lower('HAPPY BIRTHDAY') FROM DUAL;
select upper('happy birthday') from dual;
select deptno, dname, initcap(dname) from dept;
-- concat : 두개 이상의 컬럼을 서로 연결시켜준다.
select concat('abcd','가나다라') from dual;
select 'abcd'||'efg' from dual;
--문제1] emp테이블에서 '사원명 : 직업' 이 함께 출력되도록
select concat(concat(ename,' : '),job) from emp;
select ename||' : '||job from emp;
--문제2] products테이블에서 출고가(output_price)와 '원'이 결합되어 출력
select output_price, output_price||'원' "가격" from products;
-- substr(변수, x,len)
-- 문자 x로 시작한 len개 문자길이 만큼 변수를 반환
-- 만약 x가 음수라면 문자는 끝에서 부터 시작하고 오른쪽부터 세어서 반환한다
-- len이 없다면 디폴트로 전체를 의미
select substr('880211-1023111',1,6) FROM dual;--880211
--자바 String 의 substring("880211-1023111",1,6)--80211
select substr('880211-1023111',-7) FROM dual;--1023111
[문제3] emp테이블에서 첫글자가 'K'보다 크고 'Y'보다 작은
사원의 이름, 업무, 급여를 출력하세요. 단 이름순으로 정렬하세요.
--wgho순
select ename,job,sal,substr(ename,1,1) from emp
where substr(ename,1,1) >'K' and substr(ename,1,1)<'Y'
order by ename asc;
- lpad/rpad
- 문자값을 왼쪽/오른쪽 부터 채운다.
- lpad(컬럼, 변수1,변수2)
select ename, lpad(ename,15,'*'), sal, lpad(sal,10,'-')
from emp;
select lpad((output_price||'원'),15,' ') "가격" from products;
select rpad(dname,15,'*') from dept;
- ltrim/rtrim
- 왼쪽/오른쪽 공백을 제거할 때 사용
- ltrim(변수1,변수2)
select ltrim('tttHello test','t') from dual;--Hello test
select rtrim('tttHello test','t') from dual;--tttHello tes
select deptno,ename,job from emp;
[문제] 사원(emp) 테이블에서 20번 부서의 사원에 대해 담당업무 중
좌측에 'A'를 삭제하고, 급여중 우측의 0을 삭제하여 출력하세요.
select deptno,job,ltrim(job,'A'),sal, rtrim(sal,0) from emp
where deptno=20;
- replace
- 정해진 컬럼이나 이름에서 지정한 문자를 특정 문자로 변경하는 함수
- replace(인수1,인수2,인수3)
select replace('oracle test','test','hello') from dual;
--oracle hello
[문제] emp테이블에서 job 에 'A'를 '@'로 바꾸어 출력
select job, replace(job,'A','@') from emp;
[문제] member테이블에서 직업(job)이 학생인 정보를 모두 대학생으로 변경해 출력
select job, replace(job,'학생','대학생') from member;
[문제] 고객(member) 테이블에서 주소가 '서울시'로 되어 있는 회원들의
주소를 모두 '서울특별시'로 변경하세요.
select addr from member;
'..열심히 공부하세.. > 오라클' 카테고리의 다른 글
| [01] 데이터베이스 개론 (0) | 2012.05.08 |
|---|---|
| 오라클 기본 (0) | 2011.06.21 |
| 쿼리문 (0) | 2011.03.29 |
| 테이블 (0) | 2011.03.29 |
| PL/SQL (0) | 2011.03.29 |