[Oracle]시퀀스, MERGE_1115
2022. 11. 16. 09:05
Oracle
Sequence 시퀀스란? 시퀀스는 테이블 내의 유일한 숫자를 자동으로 생성하는 자동 번호 발생기이다. 시퀀스를 사용하는 이유 기본키가 유일한 값을 갖도록 사용자가 직접 값을 생성해 내려면 부담이 크기 때문이다. 시퀀스 구성 INCREMENT BY : 시퀀스 실행 시 증가시킬 값 START WITH : 시퀀스의 시작값이다. (MINVALUE과 같거나 커야 한다) MINVALUE : 시퀀스가 시작되는 최솟값이다. MAXVALUE : 시퀀스가 끝나는 최댓값이다. NOCYCLE | CYCLE : NOCYCLE (반복안함), CYCLE(시퀀스의 최댓값에 도달 시 최솟값 1부터 다시시작) NOCACHE | CACHE : NOCACHE(사용안함), CACHE(캐시를 사용하여 미리 값을 할당해 놓아서 속도가 빠르며,..
[Oracle]저장 프로시저 / 저장함수 _ 1107
2022. 11. 12. 22:35
Oracle
저장 프로시저 저장 프로시저란? 오라클은 PL/SQL 문을 데이터베이스에 저장할 수 있도록 저장 프로시저라는 것을 제공한다. 저장 프로시저의 필요성 저장 프로시저를 사용하면 복잡한 DML문을 필요할 때마다 다시 입력할 필요 없이 간단하게 호출만 해서 복잡한 DML 문의 실행 결과를 얻을 수 있다. 저장 프로시저의 MODE IN : 데이터를 전달 받을때 사용한다. OUT : 수행된 결과를 받아갈 때 사용한다. INOUT : 두 가지 목적에 모두 사용된다. 프로시저 호출 시 넘겨준 값을 받아오기 위한 매개 변수는 MODE를 IN으로 지정 해서 선언한다. 프로시저에서 구한 결과 값을 얻어 내기 위해서는 OUT으로 지정한다. OUT으로 지정한 매개 변수는 반드시 매개 변수에 변수를 지정해야 한다. 매개변수가 있..

[Oracle]View와 JDBC 드라이버 _ 1108
2022. 11. 9. 02:03
Oracle
view view의 개념 view는 한 마디로 물리적인 테이블을 근거로 하는 논리적인 가상테이블이라고 정의할 수 있다. view를 가상테이블이라고 하는 이유는? => 가상 : 실질적으로 데이터를 저장하고 있지 않다는 의미이다. => 테이블 : 사용자가 테이블에서 사용하는 것과 동일하게 뷰를 사용할 수 있기 때문이다. view 필요성 그렇다면 view 라는게 왜 필요할까? 예를 들어 아래와 같은 코드가 있다고 생각해 보자 select empno, ename, deptno from emp where deptno=30; 위와 같은 결과를 처리해 주기 위해서는 select문을 매번 입력해야 한다. => view는 번거로운 select 문을 매번 입력하는 대신, 보다 쉽게 원하는 결과를 얻고자 하기 위해 나왔다...

[Oracle]PL/SQL 개요 _ 1107
2022. 11. 7. 18:03
Oracle
PL/SQL 프로그래밍이란 : 해야 할 일을 미리 기술해 놓은 것이다. (프로그래밍이라느건 컴퓨터만 있는게 아니다.) 인간의 언어 -> 프로그래밍 언어 -> 기계어 간단히 말하면 : 인간의 언어를 수학적 기호가 많이 포함된 프로그래밍 언어로 바꾸는 것이라고 생각하면된다. 우리가 만든 자바코드를 기계어로 바꿔주는 건 컴파일러or 인터프리터 가 해주는 것이다. 마찬 가지로 우리가 만든 sql문을 기계어로 바꿔주는게 DBMS이다. (우리가 짠 sql문은 자바코드에서 그냥 스트링으로 읽혀진다. 자바코드에서 그걸 DBMS를 호출해서 읽히게 하는거다.) PL/SQL 정의 PL/SQL은 SQL 문장에서 변수 정의, 조건처리(IF), 반복처리(LOOP,WHILE,FOR) 등을 지원하며, 오라클 자체에 내장 되어 있는 ..

[Oracle]그룹함수_1104
2022. 11. 4. 18:07
Oracle
예시 문제 : 연도별 분기별 입사자수를 집계하세요 select to_char(hiredate, 'YYYY') as year, to_char(hiredate, 'Q') as quarter from emp; select year, quarter, quarter, quarter, quarter from (select to_char(hiredate, 'YYYY') as year, to_char(hiredate, 'Q') as quarter from emp); select year, decode(quarter, 1, quarter) as q1, quarter, quarter, quarter from (select to_char(hiredate, 'YYYY') as year, to_char(hiredate, 'Q'..
[Oracle]Oracle 주요함수_1103
2022. 11. 3. 18:02
Oracle
오라클 주요함수 DUAL 테이블 1. 오라클 자체에서 제공되는 테이블 2. 간단하게 함수를 이용해서 계산 결과값을 확인 할 때 사용하는 테이블 3. SYS사용자가 소유하는 오라클의 표준 테이블 (그림 참조) 4. SYS사용자가 소유하지만 어느 사용자에서 접근 가능함 (그림 참조) 5. 오직 한행, 한컬럼을 담고 있는 dummy 테이블 Dual 테이블의 사용용도 - dual 테이블은 사용자가 함수(계산)를 실행할 때 임시로 사용하는데 적합하다. - 함수에 대한 쓰임을 알고 싶을때 특정 테이블을 생성할 필요없이 dual 테이블을 이용하여 함수의 값을 리턴(return) 받을 수 있다. 숫자 처리 함수 abs : 절대값 리턴 ceil : 올림(소수점 아래에서 올림) trunc : 특정 자릿수에서 잘라냄 rou..

[Oracle]정렬, 데이터 연결_1102
2022. 11. 3. 01:14
Oracle
정렬 오름차순 select empno, ename, sal as salary from emp order by sal asc; select empno, ename, sal as salary from emp order by salary asc; select empno, ename, sal as salary from emp order by 3 asc; 내림차순 select empno, ename, sal as salary from emp order by sal des; select empno, ename, sal as salary from emp order by salary desc; select empno, ename, sal as salary from emp order by 3 desc; 두 개 이상의 컬..
[Oracle]Join 기본(2)_1101
2022. 11. 1. 20:57
Oracle
join self Join select * from emp e1, emp e2 where e2.empno = 1010 and e1.sal > e2.sal; JOIN ON으로만 변환 가능 방법 1) select * from emp e1 JOIN emp e2 ON e1.sal > e2.sal and e2.empno = 1010; 방법 2) select * from emp e1 JOIN emp e2 ON e1.sal > e2.sal where e2.empno = 1010; natural join 양쪽 테이블의 같은 이름을 equie join 한다는것이 natural join이다. Outer Join select * from emp e, dept d where e.deptno (+) = d.deptno; 부족한..