posted by changhozz 2016. 8. 16. 12:59

오라클 함수

<단일행 함수>
1.문자함수
a)대문자 변환 : UPPER(문장열)
b)소문자 변환 : LOWER(문자열)
c)이니셜 변환 : INITCAP(문자열) => 오라클에서만 존재
d)문자 분해 : SUBSTR(문자열, 시작점, 글자갯수(1~))
e)빈 글자 수, 특정 문자로 채우기 : RPAD(문자열,글자수,'문자')
       LPAD(문자열,글자수,'문자')
=>글자 수 만큼 문자열이 채우지 못한 부분을 '문자'가 대신해서 채워준다.
f)문자 길이 : LENGTH(문자) => 문자 갯수
         LENGTHB(문자) => 문자 바이트
g)특정 문자 제거 : LTRIM(문자,'문자')  => 문자 중 '문자'를 제거
     RTRIM(문자,'문자')  => 문자 중 '문자'를 제거
        TRIM('문자'FROM 문자) => 좌우, 문자 중 '문자'를 제거
h)특정 문자의 위치 : INSTR(문자 or 칼럼,'문자',문자의 위치)
  시작지점 1: 앞에서 부터
          -1: 뒤에서 부터
  비교형식 0: 기본값
    1: 대소문자 구분
    2: 데이터베이스에 포함된 구조
i) 문자열 결합 :  △||연산자(결합 연산자)를 이용하여 문자열 결합
 ex) lastName||' '||firstName  === ' '(공백)포함 결합

2.숫자 함수
a)올림 함수 : CEIL(10.3) => 결과 : 11
b)반올림 함수 : ROUND(15.579,2)  => 소수점 이하 2+1번째를 반올림 나타낸다. 결과 : 15.58
c)버림 함수 : TRUNC(숫자,대상(n+1))
d)나머지 함수 : MOD(10,2) => 결과 10%2 => 0

3.날짜 함수
a)시스템 시간 : SYSDATE
b)둘 사이의 총 개월 수 : MONTHS_BETWEEN(SYSDATE,'2016/01/01') ==> 오라클에만 있음
c)해당 달의 마지막 날 : LAST_DAY(날짜)
ex) SELECT LAST_DATE('16/03/01') FROM dual;
d)해당 날짜 다음에 나오는 '요일'의 일자: NEXT_DAY(날짜,'요일') => 해당 날짜의 다음날부터 계산
e)더한 날짜를 계산 : ADD_MONTHS(date, integer)  ==> 더할 정수 값
f)원하는 것 빼오기 : EXTRACT(날짜)
 ex) SELECT EXTRACT(YEAR FROM hiredate) from emp 하게 되면
hiredate의 1988-08-18 형태에서 YEAR만 뽑아온다.
그래서 결과는 1988이 조회된다.

4.기타 함수
a) NVL() => null 값을 다른 값으로 채워준다 
 ex) NVL(comm,0)
b) DECODE(해당 칼럼, 조건값, 충족시 실행값)
 ex) DECODE(deptno,'10','영업부', '20','기획부','30','개발부')
c)CASE
 SELECT ename,job CASE MOD(EXTRACT(YEAR FROM hiredate),2)
 WHEN 0 THEN '짝수년도'
 ELSE '홀수년도'
 END AS YEAR
 FROM emp;

5.변환 함수
a)날짜, 시간, 돈을 문자로 변환 : T0_CHAR(datetime)
          : To_CHAR(number)
b)문자를 숫자로 변환 : TO_NUMBER
c)날짜 형식으로 변환 : TO_DATE

ex) 돈
 SELECT ename,sal,TO_CHAR(sal,'$99,999') FROM emp;
 SELECT ename,sal,TO_CHAR(sal,'L99,999') FROM emp;  => L(Local)은 지역 화폐단위를 뜻함

ex) 날짜 패턴 변경
 SELECT ename,hiredate,TO_CHAR(hiredate,'YYYY-MM-DD HH24:MI:SS') FROM emp;
 SELECT ename,sal,comm,sal+NVL(comm,0) FROM emp;

※ 날짜 표현 방식
YYYY:년
MM:월(01~12)
DD:일(1~31)
HH24:시간(0~23)
HH12:시간(0~12)
MI:분(0~59)
SS:초(0~59)

 

 

 

 

출처 : blog.naver.com/lakeni/220641712753

 

 

 

 

 

 

 

 

'데이터베이스' 카테고리의 다른 글

cascade 예제  (0) 2016.08.15
posted by changhozz 2016. 8. 15. 16:51


CREATE TABLE DEPARTMENT(
 DEPTNO NUMBER NOT NULL,
 DEPTNAME CHAR(10),
 FLOOR NUMBER,
 PRIMARY KEY(DEPTNO)

);

INSERT INTO DEPARTMENT VALUES(1,'영업', 8);
INSERT INTO DEPARTMENT VALUES(2,'기획', 10);
INSERT INTO DEPARTMENT VALUES(3,'개발', 9);
INSERT INTO DEPARTMENT VALUES(4,'총무', 7);

 

CREATE TABLE EMPLOYEE(
 EMPNO NUMBER NOT NULL,
 EMPNAME CHAR(10) UNIQUE,
 TITLE CHAR(10) DEFAULT '사원',
 MANAGER NUMBER,
 SALARY NUMBER CHECK(SALARY < 6000000),
 DNO NUMBER DEFAULT 1 CHECK (DNO IN(1,2,3,4)),
 PRIMARY KEY(EMPNO),
 FOREIGN KEY(MANAGER) REFERENCES EMPLOYEE(EMPNO),
 FOREIGN KEY(DNO) REFERENCES DEPARTMENT(DEPTNO) ON DELETE CASCADE
);

INSERT INTO EMPOLYEE VALUES(4377, '이성래','사장',NULL,5000000,2);
INSERT INTO EMPOLYEE VALUES(3426, '박영권','과장',4377,3000000,1);
INSERT INTO EMPOLYEE VALUES(3011, '이수민','부장',4377,4000000,3);
INSERT INTO EMPOLYEE VALUES(3427, '최종철','사원',3011,1500000,3);
INSERT INTO EMPOLYEE VALUES(1003, '조민희','과장',4377,3000000,2);
INSERT INTO EMPOLYEE VALUES(2106, '김창섭','대리',1003,2500000,2);
INSERT INTO EMPOLYEE VALUES(1365, '김상원','사원',3426,1500000,1);
);

 


*풀이*

TITLE CHAR(10) DEFAULT '사원'
-속성은 CHAR 10자리이며, 아무런 값이 입력되지 않았을 경우 기본 값으로 '사원'입력


SALARY NUMBER CHECK (SALARY < 6000000)
-SALARY라는 이름의 애트리뷰트 속성은 NUMBER이며
입력 값을 체크하여 6000000 이상의 값을 걸러낸다.

DNO NUMBER DEFAULT 1 CHECK (DNO IN(1,2,3,4))
-DNOㄹ는 이름의 애트리뷰트는 속성은 NUMER이며,
값이 입력되지 않으면 기본값 1을 입력하고,
입력되는 값은 1,2,3,4가 들어갔는지 확인하고
1,2,3,4 외의 값은 입력할 수 없음.

 

FOREIGN KEY(DNO) REFERENCES DEPARTMENT(DEPTNO) ON DELETE CASCADE
-이 릴레이션의 DNO 에트리뷰트는 DEPARTMENT 릴레이션의 DEPTNO를
외래키로 사용하며, 삭제 시에 사용하여 삭제한다.

**삭제 옵션**
데이터베이스의 무결성제약조건 때문에 있는 옵션으로 4가지가 있는데,
이 옵션은 외래키로 참조하고 있는 경우에 사용된다.


1)제한(RESTRICTED)
참조 된 투플을 삭제하려고 시도할 때, 삭제 자체가 불가능 하게 만드는 옵션

2)연쇄(CASCADE)
참조 된 투플을 삭제 할 때, 삭제되는 투플을 참조하고 있는 다른 릴레이션에 있는
투플들도 함께 삭제된다. 위의 테이블의 경우에는 DEPARMENT 릴레이션의
1,영업,8 튜플을 삭제하게 되면, EMPLOYEE 릴레이션의 박영권, 김상원의
튜플들도 함께 삭제된다.

3)널값(NULLIFY)
참조ㄷ 된 투플을 삭제 할 때, 삭제되는 투플을 참조하고 있는 다른 릴레이션에 있는
투플에 참조 값을 NULL로 만든다.
이 옵션은 참조를 사용하는 애트리뷰트가 기본 키로 지정되어있을 경우에는
사용할 수 없는 옵션인데, 여튼, NULL값으로 대치된다는 것만 알아두자

4)디폴트 값
참조 된 투플을 삭제 할 때, 삭제되는 투플을 참조하고 있는 다른 릴레이션에 있는
투플에 참조 값을 미리 설정 된 디폴트 값으로 대치한다.

 

 

 

 

 


 

'데이터베이스' 카테고리의 다른 글

오라클 함수 정리  (0) 2016.08.16
posted by changhozz 2016. 7. 7. 11:50

1.현재 생성한 Dynamic Web Project에 마우스 오른쪽을 클릭한다.

 

2.Java EE Tools -> Generate Deployment Description Stub 클릭

 

3. web.xml 생성~~