oracle 56

사용편의, 수행속도향상, 융통성 있는 View

- 사용편의를 위한 View CREATE VIEW v_emp_complex AS SELECT empno, ename, deptno, hiredate FROM emp WHERE (sal*comm) + 12 > 20000 AND deptno = 30 AND job = 'SALESMAN' AND sysdate - 365 + 10 > hiredate; SELECT * FROM v_emp_complex; - 한글 View CREATE VIEW 사원(사번, 성명, 부서번호, 입사일) AS SELECT empno, ename, deptno, hiredate FROM emp WHERE deptno = 30 - 수행속도 향상을 위한 View - 제일 큰 값을 구하여라! - HINT를 사용하였음 : 옵티미아저에게 힌트를 ..

database/oracle 2012.03.21

보안관리를 위한 View

- 함수로 가공된 view는 인서트 업데이트가 안된다. CREATE VIEW v_emp (empno, ename, job, mgr, hiredate, deptno) AS SELECT NVL(empno, null), ename, job, mgr, NVL(hiredate, null), deptno FROM emp WHERE job = 'MANAGER'; - 연산결과만 제공하고 알고리즘을 숨긴다. CREATE VIEW v_emp (empno, ename, annual_sal) AS SELECT empno, ename, (sal + NVL(comm,0))+12 annual_sal FROM emp; - VIew 자체를 read only로 만든다. CREATE VIEW v_emp (empno, ename, annu..

database/oracle 2012.03.21

100만건 이상(대량)의 데이터에서 중복키를 확인하도록 하는 방법

------------------------------------------------------------- 100만건 이상(대량)의 데이터에서 중복키를 확인하도록 하는 방법 ------------------------------------------------------------- - exceptions 테이블을 이용한다. - C:\Oracle\Ora81\RDBMS\ADMIN\UTLEXCPT.SQL 에 스크립트가 있다. - 실행 : SQL> @C:\Oracle\Ora81\RDBMS\ADMIN\UTLEXCPT.SQL CREATE TABLE exceptions ( row_id ROWID, owner VARCHAR2(30), table_name VARCHAR(30), constraint VARCHAR(3..

database/oracle 2012.03.21

제약조건

------------------------------------- 제약조건 ------------------------------------- 제약조건-종류 * NOT NULL - NULL을 허용하지 않는다. * CHECK - 조건에 맞는 값만을 허용한다. * UNIQUE - 중복된 값을 허용하지 않는다. * PRIMARY KEY - 각 행을 유일하게 식별하는 단일 혹은 결합 필드를 명시한다. * FOREIGN KEY - 값이 참조하고 있는 테이블의 Primary Key 내에 존재하는 것을 보장한다. * 학생 CREATE TABLE student ( stu_id CHAR(5) CONSTRAINT student_stu_id_pk PRIMARY KEY CONSTRAINT student_stu_id_ck C..

database/oracle 2012.03.21

TABLESPACE 정보 조회

- 모든 TABLESPACE 정보 조회 SELECT tablespace_name, initial_extent, next_extent, min_extents, max_extents, pct_increase, status, contents FROM dba_tablespaces - TABLESPACE를 구성하고 있는 Data File 정보 조회 SELECT tablespace_name, file_name, file_id, bytes, blocks, status, autoextensible FROM dba_data_files - TABLESPACE 총 크기, 사용량, 남은 공간 조회 SELECT a.tablespace_name, ROUND(SUM(a.total)/1024/1024, 2) "Total(M)", R..

database/oracle 2012.03.21

TABLESAPCE 이해2

- Temporary TABLESPACE CREATE TABLESPACE tablespace DEFAULT STORAGE storage_clause PREMANENT -> 영구적인 Object를 보유하도록 지정 (Default) TEMPORARY -> 임시 Object를 보유하도록 지정 - Read Only TABLESPACE - TABLESPACE를 읽기 전용으로 만들기 ALTER TABLESPACE tablespace READ ONLY; - 읽기 전용 TABLESPACE를 읽기-쓰기 TABLESPACE로 만들기 ALTER TABLESPACE tablespace READ WRITE; - Data File의 자동 Size 조정 ALTER TABLESPACE test_data ADD DATAFILE 'f:..

database/oracle 2012.03.21

TABLESPACE 이해

---------------------------------- 테이블스페이스 이해 ---------------------------------- * 테이블스페이스는 논리적인 Storage 개념이다. * 테이블스페이스는 물리적으로 하나 이상의 데이터 파일로 구성된다. * 테이블스페이스는 크게 SYSTEM 테이블스페이스와 NON-SYSTEM 테이블스페이스로 구분된다. * Segment는 Data, Index, Rollback, Temporary Segment등으로 구분된다. * Segment는 하나 이상의 Extent 들로 구성된다. * Extent란 연속적으로 할당 된 Free Block의 모음이다. * Extent는 기본 Storage 할당 단위이다. * DB Block은 기본 I/O 단위이다. - 테이..

database/oracle 2012.03.21

Sub Query

------------------------------------- Sub Query ------------------------------------- - HAVING 절에서의 SUB Query 사용 SELECT job, MAX(sal) FROM emp GROUP BY job HAVING MAX(sal) > (SELECT MAX(sal) FROM emp WHERE job='SALESMAN'); - 다중열 sub Query - PAIRWISE Column 비교 : 두개의 컬럼을 묶어서 같은 경우만 참으로 보고 조회한다. SELECT empno, ename, deptno, sal, comm FROM emp WHERE (sal, NVL(comm,-1)) IN (SELECT sal, NVL(comm,-1) F..

database/oracle 2012.03.21

JOIN

- EQUIJOIN - NON EQUIJOIN 사원 조회시에 급여등급이 나오도록 조인한다. SELECT e.empno, e.ename, e.sal, s.grade FROM emp e, salgrade s WHERE e.sal BETWEEN s.losal AND s.hisal; - OUTER JOIN dept에 새로운 부서가 생겼는데 EQUIJOIN 했을 경우는 조회가 안된다. emp에 사원이 배치 안 되었더라도 부서는 나오도록 할 경우에 사용한다. 정보가 부족한 쪽에 (+)를 붙여서 사용한다. IN 연산자, OR 연산자 사용 못한다. SELECT e.empno, e.ename, d.deptno, d.dname FROM emp e, dept d WHERE e.deptno(+) = d.deptno - SEL..

database/oracle 2012.03.21