IT기술/Oracle 119

12 계층형 쿼리 (Hierachical Query)

계층형쿼리란 데이터를 조회할 때 상하관계를 표시하는 쿼리이다. 주요 문법SELECT LPAD(dname, LEVEL*6, '*') 부서명FROM dept2CONNECT BY PRIOR dcode = pdeptSTART WITH dcode = 0001 ; LEVEL 해당 데이터가 몇 번째 단계이냐를 의미하는 것이다.CONNET BY PRIOR 절은 각 행들이 서로 어떻게 연결되어야 하는 지를 지정하는 부분이다. SELECT LPAD(dname, LEVEL*6, '*') 부서명FROM dept2CONNECT BY dcode = PRIOR pdeptSTART WITH dcode = 0001 ; PRIOR 는 해당 키워드가 설정되어 있는 컬럼에서 바로 이전의 데이터값을 찾는데 사용된다. * 특정 부서의 상위 부..

IT기술/Oracle 2013.11.14

11 SEQUANCE 와 SYNONYM (동의어)

1. SEQUENCE (시퀀스) 마치 은행의 번호표처럼 연속적인 일련번호를 만들어주는 기능 CREATE SEQUENCE sequence_nameINCREMENT BY n 시퀀스 번호의 증가 값으로 기본값은 1START WITH n 시퀀스 시작 번호로 기본값은 1MAXVALUE n | NOMAXVALUE 생성가능한 시퀀스 최대값MINVALUE n | NOMINVALUE CYCLE일 경우 새로 시작되는 값CYCLE | NOCYCLE 시퀀스 번호를 순환 사용할 것인지 지정 기본값은 NOCYCLE CACHE n | NOCACHE 시퀀스 생성속도를 개선하기 위해 캐싱 여부 지정 사용 예1. 아래의 조건으로 제품 주문번호를 생성하기 위해 사용할 SEQUENCE 를 만드세요.SEQUENCE 명 : seq_jumun_..

IT기술/Oracle 2013.11.13

10 VIEW

View 란 가상의 테이블이다.CTAS 로 복사해서 만들면 원본 데이터를 수정해도 반영이 되지 않는다. 1. 단순 VIEW (Simple View)단순 View는 View를 생성할 서브 쿼리에 조인 조건없이 1개의 테이블로 만들어지는 간단한 View를 의미한다.View를 생성하기 위해서는 CREATE VIEW 권한이 필요하며 실습을 위해서 SYS 계정으로 권한을 할당해야 한다.CONN / AS SYSDBA ;GRANT CREATE VIEW TO SCOTT ;CONN SCOTT/TIGER ; 생성 문법CREATE [OR REPLACE] [ FORCE | NOFORCE] VIEW view [ (alias, alias,……)] AS sub-query [ WITH CHECK OPTION [CONSTRAINT 제..

IT기술/Oracle 2013.11.12

9 INDEX

1. 인덱스란?데이터들의 ROWID 정보를 별도의 세그먼트(대표적 세그먼트가 테이블)에 넣어서 저장하고 관리하는데 이 세그먼트를 인덱스라 한다. 2. 인덱스 생성 원리전체테이블 스캔 → 정렬 → Block 기록 3. 인덱스 구조와 작동 원리 (B-TREE 인덱스 기준)인덱스는 컬럼이 두개다. Key, ROWIDKey 컬럼은 인덱스를 생성하라고 지정한 컬럼 값 SELECT *FROM 사원WHERE 이름='홍길동' ; 위 SQL을 수행하면1. 서버 프로세스가 파싱이란 과정을 마친 후 메모리(데이터베이스 버퍼 캐시)에 이름이 홍길동인 사람의 정보가 있는지 살펴본다. 2. 정보가 없으면 하드 디스크의 파일에서 홍길동 정보를 가진 블록을 복사해서 메모리로 가져온 후 홍길동 정보만 복사해서 사용자에게 보여준다.(하..

IT기술/Oracle 2013.11.12

8 제약조건

제약조건(Constraint)이란 테이블에 올바른 데이터만 입력 받고 잘못된 데이터는 들어오지 못하도록 컬럼마다 정하는 규칙을 의미한다.데이터의 정확성은 더 높아진다. 1. 제약조건의 종류조건 이름 의미NOT NULL NULL 입력불가UNIQUE 중복 값 입력 불가 (자동 INDEX 생성)PRIMARY KEY NOT NULL + UNIQUE , 데이터들끼리의 유일성을 보장하는 컬럼에 설정할 수 있으며, 테이블당 1개만 설정 가능FOREIGN KEY 다른 테이블의 컬럼을 참조해서 무결성 검사 (2개의 테이블에 생성 Reference Key)CHECK 설정된 값만 입력 허용 2. 각 제약조건의 설정 방법 (1) 테이블 생성시에 동시에 설정하기CREATE TABLE emp3(no NUMBER(4) CONSTR..

IT기술/Oracle 2013.11.11

7 DDL 문장과 딕셔너리

오라클 데이터베이스 내부에 데이터를 관리하기 위해 다양한 저장 객체를 생성하는데 이것을 오브젝트라고 한다.오브젝트 중 특별히 데이터를 저장하기 위한 별도의 저장공간을 가지는 것을 세그먼트 라고 한다. 이런 오브젝트를 생성하고, 변경하고, 관리하는 명령어를 DDL(Data Definition Language)이라고 부른다. 1. CREATE 명령새로운 오브젝트나 스키마를 생성할 때 사용하는 명령 1) 테이블 이름은 반드시 문자로 시작해야 한다.2) 테이블 이름이나 컬럼 이름은 최대 30 Bytes 까지 가능하다.3) 테이블 이름은 한 명의 사용자가 다른 오브젝트들의 이름과 중복으로 사용할 수 없다.4) 테이블 이름이나 오브젝트 이름은 오라클이 사용하는 키워드를 사용하지 않기를 권장한다. (3) Tempor..

IT기술/Oracle 2013.11.08

6 DML

DML (Data Manipulation Language) INSERT, UPDATE, DELETE, MERGEDDL (Data Definition Language) CREATE, ALTER, TRUNCATE, DROPDCL (Data Control Language) GRANT, REVOKETCL (Transaction Control Language) COMMIT, ROLLBACKSELECT 어떤 분류에서는 DQL(Data Query Language) 이라고도 한다. 1. INSERT테이블에 데이터를 입력. 숫자 값 이외에는 '(홑따옴표)로 감싸야 한다. (1) INSERT 를 사용하여 단일 행 입력하기INSERT INTO dept2 (dcode, dname, pdept, area)VALUES (9000..

IT기술/Oracle 2013.11.08

5 Sub Query (서브 쿼리)

1. Sub Query 란?쿼리 안에 또 다른 쿼리가 담겨 있는 것.Sub Query 부분은 WHERE 절 연산자 오른쪽에 위치해야 하며 반드시 괄호로 묶어야 한다.특별한 경우(Top-n 분석 등)를 제외하고는 Sub Query 절에 Order By 절이 올 수 없다.단일 행 Sub Query와 다중 행 Sub Query에 따라 연산자를 잘 선택해야 한다. 2. Sub Query의 종류(1) 단일 행 Sub Query단일 행 서브 쿼리란 서브 쿼리의 결과가 1개의 행만 나오는 것을 말한다. 단일 행 서브 쿼리일 경우 WHERE 절에서 사용되는 연산자연산자 의미= 같다 같지 않다> 크다>= 크거나 같다 (SELECT AVG(weight)FROM studentWHERE deptno1 = 101) ; prof..

IT기술/Oracle 2013.11.07

4 JOIN

JOIN 기법은 여러 테이블에 흩어져 있는 정보 중에서 사용자가 필요한 정보만 가져와서 가상의 테이블 처럼 만들어 결과를 보여준다.JOIN은 ORACLE 용 JOIN이 있고, 모든 제품들에서 공통적으로 사용가능한 표준(ANSI) JOIN 방법이 있다. 1. Cartesian Product ( 카티션 곱 )카티션 곱이란 Join 쿼리 중에 WHERE 절에 기술하는 Join 조건이 잘못 기술되었거나 아예 없을 경우 발생하는 한다. 이런 경우 Join 작업에 참조 되는 테이블 행수를 모두 곱한 값의 결과가 만들어진다.ANSI SQL에서는 CROSS JON 이라고도 부른다. ORACLESELECT e.ename, d.dnameFROM emp e, dept d ; ANSISELECT e.ename, d.dname..

IT기술/Oracle 2013.11.07

3 SQL 복수 행 함수 (그룹 함수)

SQL 복수 행 함수는 앞에서 살펴본 단일 행 함수와 달리 한꺼번에 여러 데이터가 함수로 입력된다.( 속도가 느려질 수 있다. ) 1. GROUP 함수의 종류COUNT 입력되는 데이터들의 건수를 출력SUM 입력되는 데이터들의 합계 값을 출력AVG 입력되는 데이터들의 평균 값을 출력 ( AVG는 자동으로 NULL값은 제외하기 때문에 AVG(NVL(BONUS,0)) 이런식으로 써주어야 한다. ) MAX 입력되는 데이터들 중 최고 값을 출력MIN 입력되는 데이터들 중 최소 값을 출력 ( MAX, MIN은 시간이 오래 걸리는 함수 중 한가지다. 인덱스를 활용하는 것을 추천한다. ) STDDEV 입력되는 데이터 값들의 표준 편차 값 출력VARIANCE 입력되는 데이터 값들의 분산 값 출력 ROLLUP 입력되는 데..

IT기술/Oracle 2013.11.06