나만 아는 이야기/밥줄
오라클 함수
DrkLion
2009. 2. 25. 15:52
네이버 블로그 정리중에...


산술 함수
<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />
- ABS(n) : 절대값 |n|
- sin() cos() tan() sinH() cosH() tanH() : radian값을 이용
- ex> 30' 일 경우 sin(30* (3.14.../180));
- exp(n) : 지수값 e를 밑으로 하는 e의 n승 값;
- LN(n):자연 log값 밑수 e 지수 n
- SQRT(n): 루트n
- power(m,n): m의 n승
- MOD(m.n) : m을 n 으로 나눈 나머지
- floor(n): n보다 작은 정수값들중에서 최대값
- ceil(n): n보다 큰 정수값들중에서 최소값
- ex> floor(3.5) --> 3 , ceil (3.5) --> 4
- floor(-3.2) --> -4 , ceil (-3.5) --> -3
- ex> floor(3.5) --> 3 , ceil (3.5) --> 4
- greatest(m,n): 두 수중에서 큰것
- least(m,n);두 수중에서 작은 것
- TO_NUMBER('숫자형 문자열'):문자를 숫자로 변환
- round(m,n):반올림
- trunc(m,n):절삭한다 즉 반올림을 허용하지 않는다.
- ex> Round(2.4678, 2) --> 2.47 , trunc(2.4687, 2) --> 2.46
- Round(3654.26, -2) --> 3700 , trunc (3654.26, -2 ) --> 3600
- ex> Round(2.4678, 2) --> 2.47 , trunc(2.4687, 2) --> 2.46
- NVL(col명,값): col의 값이 null를 가질때 값을 가진다.
- ex> 100+NULL은 NULL이 되기 때문에 이러한 문제점을 해결할 때 사용한다.
- select ename,sal,comm,sal+nvl(comm,0) from emp;
-->sal값과 comm값을 더하는데 comm값이 null값이면 0값을 취한다...
문자열 함수
- lower():소문자로 변환시켜주는 함수
- upper():대문자로 변환시켜주는 함수
- Initcap():단어의 첫자만 대문자로 나머지는 소문자로
- Initcap('i LOVE you') ----> I Love You
- Initcap('i LOVE you') ----> I Love You
- ength():문자열의 길이
- substr(문자열,위치,갯수): 해당위치에서 갯수만큼의 문자열을 추출한다.
- substr ('KOREA', 3, 2) ----> 'RE'
-- 3번째인 R부터 2글자 출력
- substr ('KOREA', 3, 2) ----> 'RE'
- instr(문자열,찾을 문자열[,위치,찾을위치])
:문자열에서 이 문자를 찾아라. return값은 찾은 위치
- Instr("abcdabkdoerabjdlfjdg","ab") -----> 1
-- 1번째에서 시작해서 처음 ab가 나타나는 1출력 - Instr("abcdabkdoerabjdlfjdg","ab",4,2) ----> 12
-- 4번째부터 시작해서 두번째 나타나는 ab 출력
- user:현재 접속된 사용자를 보여준다.
- decode(col명,비교값,취할값,비교값,취할값,....기본값)
:col값이 비교값이면 취할값으로 대체.
- decode(deptno,10,'총무부',20,'영업부',30,'전산부','관리부'):나머지는 관리부
-- deptno가 10이면 총무부 , 20이면 영업부, 30이면 전산부 나머지 는 관리부 출력
날짜 함수
- TO_CHAR(날짜,'포맷'): 날짜를 문자열로 바꾼다.
- TO_DATE(문자열,'포맷'):문자열을 날짜로 ex> TO_DATE('97-10-14',' -----')
- ADD_MONTHS(날짜,n):현재 날짜에 n개월수를 더한다.
- MONTHS_BETWEEN(날짜1,날짜2):두 날짜의 개월수의 차를 구한다.
- LAST_DAY(날짜):그 달의 마지막 날짜를 구한다.
- NEXT_DAY(날짜,'요일'):날짜로 부터 다음에 나오는 요일은 며칠인가
- next_day(sysdate,'금요일')
- next_day(sysdate,'금요일')
- 날짜 + n : 날짜에다 n 일을 더한다.
- 포맷:
- yy : 년도를 2자리로
- yyyy : 년도를 4자리로
- year : 영어 철자로 표시
- mm :월을 표시(01-12)
- mon :월을 표시(DEC....):약자로 나온다.
- month :월을 표시(1월,2월,....혹은 ,DECEMBER)
- d :일을 표시(주에 대한 일)
- dd :일을 표시 (월에 대한 일)
- ddd :일을 표시 (년에 대한 일)
- Q : 분기를 구한다.
- DAY :요일 (월요일)
- DY :요일(월)
- HH & HH12 :시간을 12시간제로
- HH24 :24시간제로
- MI:분
- SS:초
- AM & PM & A.M & P.M:12시간제 일때 오전 오후를 표시
- 접미사로 사용하는 포맷
- TH:서수로 표시 ex> 4 -> DD ->4
- 4-> DDTH -> 4TH
- SP:철자로 표시 ex> 4 ->DDSP -> FOUR
- SPTH & THSP ex> 4 -> DDSPTH -> FOURTH
- 근무한 년월 수 ex> column "근무년수" Format a 14;
- TH:서수로 표시 ex> 4 -> DD ->4
- yy : 년도를 2자리로
그룹 함수
- group함수 :
- NULL값은 계산되지 않는다.
- 여러개의 데이타에 대한 결과 이므로 그룹함수라 한다
- 단일 필드와 함께 사용할 수 없다.
- 만약 단일 필드와 사용되면 group by절에 반드시 나와야 한다.
- sum() : 합
- avg() : 평균
- count() : 갯수 count(*): 리턴되는 레코드의 수를 계산
- ex> select deptno,sum(sapay) from sawon; 에러
-->단위 필드이므로 따라서 마지막에 group by deptno;라고 지정해주면 사용가능
- ex> select deptno,sum(sapay) from sawon; 에러
- max() : 최대값
- min() : 최소값
- stddev : 표준편차
- variance : 분산