IT기술 289

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

2 SQL 단일 행 함수

단일 행 함수는 여러 건의 데이터를 한꺼번에 처리하는 것이 아니라 한번에 하나씩 처리하는 함수복수 행 함수는 여러 건의 데이터를 동시에 입력받아서 결과값 1건을 만들어주는 함수 1. 문자함수INITCAP 입력값의 첫 글자만 대문자로 변환INITCAP('abcd') → Abcd LOWER 입력값을 전부 소문자로 변환LOWER('ABCD') → abcd UPPER 입력값을 전부 대문자로 변환UPPER('abcd') → ABCD LENGTH 입력된 문자열의 길이 값을 출력LENGTH('한글') → 2 LENGTHB 입력된 문자열의 길이의 바이트 값을 출력LENGTHB('한글') → 4 CONCAT 두 문자열을 결합해서 출력, ||연산자와 동일CONCAT('A','B') → AB SUBSTR 주어진 문자에서 특..

IT기술/Oracle 2013.11.06

1 SELECT 문장을 이용하여 원하는 데이터 가져오기

1. DESC 명령어특정 테이블에 어떤 컬럼이 있는 지 조회하기DESC emp; 2. SELECT - 데이터 조회하기(1) 모든 컬럼 조회하기SELECT * FROM emp; * 컬럼길이 조정하기데이터가 숫자일 경우COL empno FOR 9999 컬럼명 숫자 네자리 데이터가 문자일 경우COL ename FOR a8 컬럼명 문자 8바이트 SET LINE 200; 한 화면에 50줄까지 나오게 설정SET PAGESIZE 50; (2) 원하는 컬럼만 조회하기SELECT empno, enameFROM emp (3) 표현식(Expression)을 사용하여 출력하기리터럴(literal) 상수(문자)SELECT name, '아무거나'FROM professor ; (4) 컬럼 별칭 사용하여 출력하기SELECT stud..

IT기술/Oracle 2013.11.06