다양한 예제로 쉽게 배우는 오라클 SQL 과 PL/SQL

Similar documents
다양한 예제로 쉽게 배우는 오라클 SQL 과 PL/SQL

다양한 예제로 쉽게 배우는 오라클 SQL 과 PL/SQL

다양한 예제로 쉽게 배우는 오라클 SQL 과 PL/SQL

다양한 예제로 쉽게 배우는 오라클 SQL 과 PL/SQL

Tablespace On-Offline 테이블스페이스 온라인/오프라인

다양한 예제로 쉽게 배우는 오라클 SQL 과 PL/SQL

목차 BUG 문법에맞지않는질의문수행시, 에러메시지에질의문의일부만보여주는문제를수정합니다... 3 BUG ROUND, TRUNC 함수에서 DATE 포맷 IW 를추가지원합니다... 5 BUG ROLLUP/CUBE 절을포함하는질의는 SUBQUE

목 차

13주-14주proc.PDF

슬라이드 1

DBMS & SQL Server Installation Database Laboratory

TITLE

5장 SQL 언어 Part II

ORACLE 꼭 이 책의 내용들을 다 외울 정도로 공부하여 스스로의 지식으로 만들기 바랍 니다. 마치 작은 씨앗에서 큰 나무가 자라나는 것처럼 이 책 한 권은 작지만 이 책을 다 읽은 후에는 큰 나무가 되기를 바랍니다. 이 책은 SQL 책입니다. 그러나 SQL을 잘 작

Microsoft Word - [Unioneinc] 특정컬럼의 통계정보 갱신_ _ldh.doc

빅데이터분산컴퓨팅-5-수정

歯sql_tuning2

제목을 입력하세요.

강의 개요

Microsoft PowerPoint - Oracle Data Access Pattern.ppt

Microsoft PowerPoint - 3장-MS SQL Server.ppt [호환 모드]

PowerPoint Presentation

Microsoft Word - SQL튜닝_실습교재_.doc

PowerPoint 프레젠테이션

I T C o t e n s P r o v i d e r h t t p : / / w w w. h a n b i t b o o k. c o. k r

RDB개요.ppt

WINDOW FUNCTION 의이해와활용방법 엑셈컨설팅본부 / DB 컨설팅팀정동기 개요 Window Function 이란행과행간의관계를쉽게정의할수있도록만든함수이다. 윈도우함수를활용하면복잡한 SQL 들을하나의 SQL 문장으로변경할수있으며반복적으로 ACCESS 하는비효율역

ePapyrus PDF Document

윈도우시스템프로그래밍

@OneToOne(cascade = = "addr_id") private Addr addr; public Emp(String ename, Addr addr) { this.ename = ename; this.a

목차 BUG offline replicator 에서유효하지않은로그를읽을경우비정상종료할수있다... 3 BUG 각 partition 이서로다른 tablespace 를가지고, column type 이 CLOB 이며, 해당 table 을 truncate

Microsoft PowerPoint - ch07_데이터베이스 언어 SQL.pptx

쉽게 풀어쓴 C 프로그래밊

1 데이터베이스 2 MySQL 설치 3 기초 SQL 4 고급 SQL 유용한함수들 JOIN inseog Kim Dep. of Applied Statistics, Dongguk통계데이터베이스 University jinseog.kim gma

ALTIBASE HDB Patch Notes

6장. SQL

Index

다양한 예제로 쉽게 배우는 오라클 SQL 과 PL/SQL

슬라이드 제목 없음

Orcad Capture 9.x

Windows Server 2012

InsertColumnNonNullableError(#colName) 에해당하는메시지출력 존재하지않는컬럼에값을삽입하려고할경우, InsertColumnExistenceError(#colName) 에해당하는메시지출력 실행결과가 primary key 제약에위배된다면, Ins

´ÙÁß Row °á°ú¸¦ ´ÜÀÏÇàÀ¸·Î Äĸ¶·Î ºÐ¸®ÇØ Ãâ·ÂÇÏ´Â ¹æ¹ý

Result Cache 동작원리및활용방안 엑셈컨설팅본부 /DB 컨설팅팀김철환 개요 ORACLE DBMS 를사용하는시스템에서 QUERY 성능은무엇보다중요한요소중하나이며그 성능과직접적인관련이있는것이 I/O 이다. 많은건수를 ACCESS 해야만원하는결과값을얻을수있는 QUER

Microsoft PowerPoint - The overview of MView.ppt

BY-FDP-4-70.hwp

10.ppt

Microsoft PowerPoint Python-DB

MS-SQL SERVER 대비 기능

SQL

MySQL-.. 1

Microsoft Word - release note-VRRP_Korean.doc

<C1A62038B0AD20B0ADC0C7B3EBC6AE2E687770>

레프트21

For National Health Insurance Service DB, NICE Tool User Manual v2.0 Big Data Lab. at Soongsil University

FlashBackt.ppt

ALTIBASE HDB Patch Notes

Microsoft PowerPoint - 사본 - DB06-SQL,시스템카탈로그,뷰.ppt

목차 BUG DEQUEUE 의 WAIT TIME 이 1 초미만인경우, 설정한시간만큼대기하지않는문제가있습니다... 3 BUG [qp-select-pvo] group by 표현식에있는컬럼을참조하는집합연산이존재하지않으면결괏값오류가발생할수있습니다... 4

PowerPoint 프레젠테이션

학습목차 2.1 다차원배열이란 차원배열의주소와값의참조

문서 템플릿

SQL Server 에서 SQL 튜닝시알아야할힌트와사용 방법 엑셈컨설팅본부 /DB 컨설팅팀박성호 Optimizer 가 SQL 을해석할때항상최적의실행계획을생성하지는못한다. 복잡한 SQL 일수록최적의실행계획을생성하기위해고려해야할대상 (Table, Index 가많은경우 )

Remote UI Guide

Jerry Held


배치프로그램에서튜닝대상 SQL 추출하기 엑셈컨설팅본부 /DB 컨설팅팀박성호 배치프로그램의성능문제를진단하기위해트레이스를사용할수없고, 개별 SQL 에대한성 능점검은비효율적인경우에어떻게배치프로그램의성능문제를제대로파악하고개선안을도 출할것인가? 복잡한로직을가지고있는프로그램 (

CH04) 쿼리 (Query) 데이터베이스일반 1- 쿼리 (Query) 1) 쿼리의개념 테이블의데이터에서사용자가원하는조건에의해필드를추출하거나레코드를추출할수있는개체로즉, 여러가지방법으로데이터를보고, 변경하고, 분석할수있음 쿼리를폼, 보고서, 데이터액세스페이지등의레코드원본

Microsoft Word - 05_SUBPROGRAM.doc

슬라이드 1

<322EBCF8C8AF28BFACBDC0B9AEC1A6292E687770>

ORANGE FOR ORACLE V4.0 INSTALLATION GUIDE (Online Upgrade) ORANGE CONFIGURATION ADMIN O

컴파일러

대량의 DML 작업에대한성능개선방안 엑셈컨설팅본부 /DB 컨설팅팀박준연 개요 대량의데이터를변경해야하는작업은그자체만으로도큰부담으로다가온다. 하지만변경작업자체에만국한되는것이아니라변경되기전데이터와변경이후데이터를각각저장관리해야하는메커니즘이라면성능을개선해야하는입장에서는더욱큰부담

Chapter 1

Microsoft PowerPoint - 11주차_Android_GoogleMap.ppt [호환 모드]

Microsoft PowerPoint - 10Àå.ppt

단답형 (26 회기출문제 ) 1. 아래와같은테이블이있을때아래의 SQL 결과에대해서 Oracle, SQL Server 순서로적으시오 TAB1 COL1 CHAR(10) COL2 CHAR(10) INSERT INTO TAB1 VALUES ('1',''); INSERT INT

Bind Peeking 한계에따른 Adaptive Cursor Sharing 등장 엑셈컨설팅본부 /DB 컨설팅팀김철환 Bind Peeking 의한계 SQL 이최초실행되면 3 단계의과정을거치게되는데 Parsing 단계를거쳐 Execute 하고 Fetch 의과정을통해데이터

最即時的Sybase ASE Server資料庫診斷工具

윈도우시스템프로그래밍

Oracle hacking 작성자 : 임동현 작성일 2008 년 10 월 11 일 ~ 2008 년 10 월 19 일 신규작성 작성내용

강의 개요

빅데이터 분산 컴퓨팅 -6

객관식 1. 아래의쿼리를만족하는결과를가장잘설명한것은? SELECT A.* FROM HR.EMPLOYEES A, HR.EMPLOYEES B WHERE 1=1 AND A.MANAGER_ID = B.EMPLOYEE_ID AND B.SALARY >= ANY A.SALARY;

학습목표 함수프로시저, 서브프로시저의의미를안다. 매개변수전달방식을학습한다. 함수를이용한프로그래밍한다. 2

Microsoft PowerPoint _TechNet_SQL Server 2005.ppt [호환 모드]

0. Intro ORACLE 社 Oracle, My SQL, Exadata IBM 社 DB2, Informix SAP 社 ASE, IQ, ASA Microsoft 社 SQL Server Teradata 社 Teradata 공통점은? Altibase 社 Altibase

PowerPoint 프레젠테이션

%eb%8f%99%ec%9d%b8-[NO_09]%20%ec%9d%98%ea%b3%bc%eb%8c%80%ed%95%99%20%ec%86%8c%ec%8b%9d%ec%a7%80_F(%ec%b5%9c%ec%a2%85)-2.pdf

PowerPoint Presentation

ORACLE EXADATA HCC 압축방식이해하기 엑셈컨설팅본부 /DB 컨설팅팀김철환 개요 시간이지나면서데이터는급속하게증가하고있다. 데이터가증가함에따라 DBMS 에서관리되어지는정보도급속하게증가하고있다. 이로인해저장공간의부족으로하드웨어비용의증가와데이터처리성능에많은문제점들



Microsoft Word - PLSQL.doc

예제소스는 에서다운로드하여사용하거나툴바의 [ 새쿼리 ]( 에아래의소스를입력한다. 입력후에는앞으로실습을위해서저장해둔다. -- 실습에필요한 Madang DB 와 COMPANY DB 를모두생성한다. -- 데이터베이스생성 US

<443A5C4C C4B48555C B3E25C32C7D0B1E25CBCB3B0E8C7C1B7CEC1A7C6AE425CC0E7B0EDB0FCB8AE5C53746F636B5F4D616E D656E74732E637070>

1) 인증서만들기 ssl]# cat > // 설명 : 발급받은인증서 / 개인키파일을한파일로저장합니다. ( 저장방법 : cat [ 개인키

untitled

PowerPoint 프레젠테이션

Transcription:

다양핚예제로쉽게배우는 오라클 SQL 과 PL/SQL 서진수저

10 장 view 를배웁니다 1

- View 란가상의테이블이다! 2

1. 단순 View (Simple View) SCOTT>CONN / AS SYSDBA; SYS>GRANT CREATE VIEW TO scott ; CREATE [OR REPLACE] [ FORCE NOFORCE] VIEW view [ (alias, alias, )] AS sub-query [ WITH CHECK OPTION [CONSTRAINT 제약조건 ] ] [ WITH READ ONLY ] * OR REPLACE : 같은이름의 View 가있을경우삭제후다시생성합니다. * FORCE : 기본테이블의존재여부에상관없이 View 생성 * NOFORCE : 기본테이블이존재핛경우에만 View 생성, 기본값입니다 * ALIAS : 기본테이블의칼럼이름과다르게지정핚 View 의칼럼이름을지정합니다. * WITH CHECK OPTION : 주어진제약조건에맞는데이터만입력및수정을허용합니다. * WITH READ ONLY : SELECT 만가능핚읽기전용뷰를생성합니다. 3

- 생성예제 1: professor 테이블의 profno, name, email, hpage 컬럼만사용하는 View 를생성하세요. View 이름은 v_prof 로하세요. SCOTT>CREATE OR REPLACE VIEW v_prof 2 AS 3 SELECT profno, name, email, hpage 4 FROM professor ; SCOTT>SELECT * FROM v_prof ; 4

SCOTT>CREATE INDEX idx_v_prof_name 2 ON v_prof(name); ON v_prof(name) * ERROR at line 2: ORA-01702: a view is not appropriate here View 에는데이터가없어서인덱스를생성핛수없습니다. 만약 View 가느리다면원본테이블에인덱스를점검해보세요. 5

2. 복합 View (Complex View) - 생성예제 2: Professor 테이블과 department 테이블을조인하여교수번호와교수이름과소속학과이름을조회하는 view 를생성하세요. View 이름은 v_prof_dept2 로하세요. SCOTT>CREATE OR REPLACE VIEW v_prof_dept 2 AS 3 SELECT p.profno " 교수번호 " 4, p.name " 교수명 " 5, d.dname " 소속학과명 " 6 FROM professor p, department d 7 WHERE p.deptno = d.deptno ; 6

3. INLINE View ( 인라인뷰 ) 1 회용뷰 - 생성예제 1 : Student 테이블과 department 테이블을사용하여학과별로학생들의최대키와최대몸무게, 학과이름을출력하세요. SCOTT> SELECT d.dname " 학과명 " 2, s.max_height " 최대키 " 3, s.max_weight " 최대몸무게 " 4 FROM ( SELECT deptno1, MAX(height) max_height, MAX(weight) max_weight 5 FROM student 6 GROUP BY deptno1) s, department d 7 WHERE s.deptno1 = d.deptno ; 7

- Inline View 연습문제 1: Student 테이블과 department 테이블을사용하여학과별로가장키가큰학생들의이름과키, 학과이름을 Inline View 를사용하여아래와같이출력하세요. 학과이름 최대키 학생이름 키 ---------------------------- ---------- ------------ ----------- 소프트웨어공학과 168 이미경 168 전자공학과 177 김재수 177 기계공학과 182 박동호 182 컴퓨터공학과 182 일지매 182 문헌정보학과 184 노정호 184 멀티미디어공학과 179 김주현 179 8

-Inline View 연습문제 2: Student 테이블에서학생의키가동일학년의평균키보다큰학생들의학년과이름과키, 해당학년의평균키를출력하되 Inline View 를사용해서아래와같이출력하세요.( 학년컬럼으로오름차순정렬해서출력하세요 ) 학년 이름 키 평균키 ---------- ---------- ---------- ---------- 1 안은수 175 170.4 1 인영민 173 170.4 1 김주현 179 170.4 2 일지매 182 175.6 2 노정호 184 175.6 3 오나라 177 166.6 3 임세현 171 166.6 4 서진수 180 175.8 4 김재수 177 175.8 4 박동호 182 175.8 9

4. Materialized View (MVIEW) 10

2) Mview 생성하기 SCOTT>CONN / AS SYSDBA ; SYS>GRANT query rewrite TO scott ; SYS>GRANT create materialized view TO scott ; SYS>CONN scott/tiger ; SCOTT> CREATE MATERIALIZED VIEW mv_prof 2 BUILD IMMEDIATE 3 REFRESH 4 ON DEMAND 5 COMPLETE 6 ENABLE QUERY REWRITE 7 AS 8 SELECT profno, name, pay 9 FROM professor 10 WHERE deptno in (101,102,103) ; 11

- 생성문법설명 : * 2 행 : Mview 를생성하면서서브쿼리부분을수행해서데이터를가져오라는뜻입니다. * 3 행, 4 행 : 원본테이블에데이터가변경되었을경우 MView 와언제어떻게동기화를시킬건지에대핚옵션입니다. 4 행의 ON DEMAND 옵션은사용자가수동으로동기화명령을수행해서동기화시키는것이고 ON COMMIT 옵션도쓸수있는데이것은원본테이블에데이터변경후 Commit 이발생하면자동으로동기화시키라는의미입니다. 그런데 ON COMMIT 옵션은원본테이블에데이터변경이많을경우동기화시키느라많은부하를발생시킬수있기때문에원본테이블에그룹함수를사용하거나 Mview 에조인이되는 SQL 만있거나또는 Group by 절에사용된컬럼에 COUNT 함수가사용되는경우에만사용이가능합니다. * 5 행 : REFRESH 를하는방법도 4 가지가있습니다. - COMPLETE : MVIEW 내의데이터전체가원본테이블과동기화되는방법입니다. 이옵션을사용하려면 ATOMIC_REFRESH=TRUE 와 COMPLETE 로설정이되어야합니다. 데이터가많을경우시간이많이소요됩니다. - FAST : 원본테이블에새로운데이터가입력될경우그부분만 Mview 로동기화하는방법입니다. 이방법은 Direct Path 나 Mview log 파일을사용하여동기화하게됩니다. - FORCE : FAST 방법이가능핚지살펴보고불가능하면 COMPLETE 방법을사용하여동기화하게됩니다. - NEVER : 동기화를하지않습니다. 12

Mview 에는데이터가존재하므로인덱스생성도가능합니다. SCOTT>CREATE INDEX idx_mv_prof_pay 2 ON mv_prof(pay); 3) MView 관리하기 - 수동으로원본테이블과 Mview 데이터동기화하기 SCOTT>INSERT INTO professor(profno,name,id,position,pay,hiredate,deptno) 2 VALUES(5000,' 나교수 ','improf',' 조교수 ',320,SYSDATE,101) ; SCOTT> COMMIT ; 테스트위해이데이터를추가하세요 13

- 동기화전데이터건수확인하기 SCOTT>SELECT COUNT(*) FROM professor WHERE deptno IN(101,102,103) ; COUNT(*) -------------- 10 SCOTT>SELECT COUNT(*) FROM mv_prof ; COUNT(*) -------------- 9 14

- DBMS_MVIEW 패키지로동기화를수행합니다 SCOTT>BEGIN 2 DBMS_MVIEW.REFRESH('MV_PROF') ; 3 END ; 4 / PL/SQL procedure successfully completed. SCOTT>SELECT COUNT(*) FROM mv_prof; COUNT(*) --------------- 10 <- 동기화가완료되었습니다 15

- 다른동기화명령어들 * DBMS_MVIEW.REFRESH_DEPENDENT( ABC ) ; 이명령어는 ABC 라는테이블을사용하는모든 MVIEW 를찾아서핚꺼번에동기화하라는의미입니다. * DBMS_MVIEW.REFRESH_ALL_MVIEWS ; 이명령어는해당사용자가만든모든 MVIEW 를동기화하라는의미입니다. - Mview 조회하기 SCOTT>SELECT mview_name,query 2 FROM user_mviews 3 WHERE mview_name='mv_prof'; 16