본문 바로가기

전체 글

(53)
12. 그룹함수(집계함수) 1. count ** 사용법 : count(대상) - 대상에는 * 또는, 숫자, 문자, 날짜값을 갖는 컬럼명 - null은 무시 - null 집합의 count 결과는 0 - null 집합의 sum 결과는 null리턴.       예제) 직원 수 select * from emp; desc emp;  --> not null을 찾아서 카운트 하는것이 가장 빠르고 효과적이다.  select count(*), count(ename), count(empno), count(comm)   from emp; select *   from emp; --> count로 테이블 행의 수를 셀 경우 * 보다는 not null 선언된 컬럼 하나를 세는게 가장 효과적! 예) null 집합의 count 결과 *** select cou..
11.변환함수(2) 1. to_number : 문자 -> 숫자  문자 -> 숫자  문자를 숫자와 연산 또는 비교하기 위해 숫자 타입으로 변경할 때 주로 사용  묵시적 형변환에 의해 자주 발생 ex) where to_char(hiredate, 'mm') = 1 => where to_number(to_char(hiredate, 'mm')) = 1    ** 문자와 숫자 비교시 문자를 숫자로 변환하여 비교  2. to_date // 해석을 하기 위한 용도 // 인식시키는게 목적 1) 문자 -> 날짜 : 날짜처럼 생긴 문자를 날짜타입으로 인식시키기 위해 사용(날짜파싱) 2) 숫자 -> 날짜 : 날짜처럼 생긴 숫자를 날짜타입으로 인식시키기 위해 사용(날짜파싱) ** 사용법 to_date(문자 또는 숫자, 포맷) - 포맷은 날짜를 해..
10. 변환함수(1) - 데이터 타입(날짜,숫자,문자)을 변환하기 위해 사용  to_char ** 사용법 : to_char(대상[, 포맷]) - 대상 : 날짜, 숫자 1. 숫자 -> 문자 case1) 단순 문자 타입 변경    select nvl(to_char(comm),'보너스없음')   from emp;case2) 숫자 형태 변경 - 숫자 자리수 전달 시 9 또는 0 사용 - 9는 부족한 자리수를 공백으로, 0 사용 시 0으로 채움 ex) 1,000 $1000 1000.00 select sal,         to_char(sal,'99999'),  -- '  800'        to_char(sal,'00000'),  -- 00800        to_char(sal,'09999'),  -- 00800        t..
9. 날짜함수 1. sysdate : 오늘의 날짜와 시간 출력(인수 없음) ** 날짜 연산 - oracle에서는 날짜 + 숫자, 날짜 - 숫자 가능 - 날짜 - 날짜 : 두 날짜 사이 일(day) 수 리턴 select sysdate + 100 as "100일 이후",        sysdate - 100 as "100일 이전"   from dual;select ename, sysdate, hiredate,        trunc(sysdate - hiredate) as 근무일수,        trunc((sysdate - hiredate)/365) as 근속연수   from emp;  다음과 같은 식으로 trunc를 이용해서 시간을 다 날려버릴 수 있다.    2. add_months : 월 연산 ** 사용법 : ad..
8. 일반함수(2), 숫자함수 1. 조건문/함수- if문, case문과 같이 조건별 명령을 다르게 하는 구문 - SQL은 if문 사용 불가(PL/SQL문에서는 가능) - ORACLE에서는 case문과 decode를 사용한 조건처리 예) if문 형식(oracle 문법 아님) if comm is null    then 0    else comm*1.1 1) decode - 조건문 축약 함수 - 일치조건에 대한 처리만 가능(대소비교 불가) ** 사용법 : decode(대상,조건상수1,리턴1[,조건상수2,리턴2,.....,기타리턴]) - 기타리턴(else값) 생략 시 null 리턴 select deptno,         decode(deptno,10,'A'),         decode(deptno,10,'A','B'),        de..
7. 일반함수(1) 1. nvl, nvl2 : null 치환 함수 1) nvl, nvl2 ** 사용법 (1) nvl(대상, 치환값) - 대상과 치환값의 데이터 타입이 일치해야 함(단, 첫번째 인수의 데이터 타입이 최종 데이터 타입이 됨) select ename, sal, comm,         sal+comm as 총급여1,        sal + nvl(comm,0) as 총급여2   from EMP;다음 결과를 볼 수 있는데 아래 결과를 살펴보자. select sal, comm, nvl(comm, '보너스없음')   from emp;  이유는 comm의 데이터 타입이 숫자인데 null값에 '보너스없음'이라는 문자를 채워넣을 수 없음. select ename, sal, comm,        sal+comm as 총급여..
6. 문자열 함수(2) 1. replace와 translate1) replace : 단어 치환 삭제 ** 사용법 : replace(대상,찾을단어[,바꿀단어]) 2) translate : 글자 치환 삭제 ** 사용법 : translate(대상,찾을문자열,바꿀문자열) - 찾을문자열과 바꿀문자열 글자별로 매핑하여 치환 - 찾을문자열 길이 - 찾을문자열 길이 > 바꿀문자열 길이 : 바꿀문자열에 빈문자열 전달 시 모든 글자 삭제됨 - 바꿀문자열 생략 불가 예제1) select replace('abcba','ab','AB'),   --ABcba        translate('abcba','ab','AB')      --ABcBA   from dual;     select translate('abcba','ab','ABC'), --ABc..
5. 문자열 함수(1) 1.  함수의 정의- input value(인수) 와 output value 와의 관계를 표현하는 객체 - 대체적으로 하나 이상의 input value(인수) 필요 - (인수가 없는 함수도 존재)  ex) sysdate - 반드시 output value return - 사용자가 직접 정의하여 사용 가능(PL/SQL) - from 절을 사용한 모든 select 문의 절에서 사용 가능\  2. 함수의 종류1) 인수의 결과값의 매칭수에 따라 - 단일행 함수 : 한쌍의 인수에 대칭되는 하나의 결과값이 리턴되는 형태의 함수   ex) upper('abcd')  -> 'ABCD' - 다중행 함수(그룹함수) : 여러 행의 데이터가 하나의 결과로 리턴되는 형태의 함수   ex) sum(sal), max(sal), mi..