Oracle/PL/SQL

15일차 PL/SQL Fundamentals

Bohemian life 2012. 4. 24. 20:54

# Program?

  - 해야 할 일을 (논리적 흐름/순서에 따라) 미리 기술해 놓은 것





<강사님 판서>

PL/SQL
 ㅣ  
 └>1.변수
    
      2.블록(subrowtine)

      3.흐름 제어(flow control)
              └>반복,판단
==============================================================================

               ┌통역
- SQL: Interpreter(interactive) <-개발시 유리
       BASIC,TURTLE,PROLOG,LISP
       ↑
      ㅣ
      ㅣ
      ㅣ
      ↓       ┍>개발 어려움
- C,java :compiler -> 실행파일
  C++         └번역


==============================================================================

Programing Language

 
    - 고급언어
          인간 친화적

            ↑                          C++, java
           ㅣ     
        ㅡ┼ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡC 
          ㅣ              
          ↓                      ┌에셈블리어
                          ㅣ
          기계 친화적 -> 기계어
    - 저급언어

==============================================================================

- OOPL(계층적 언어) : --->object(data를 중심으로..)
                          └attribute
                  └action


- PL(절차적 언어) : action -> function
                                          procedure


============================================================================

- Anonymous Block

- Named Bolck ┬  function 
  (DB에 저장)    
                     └  procedure
   
                     └  trigger
   
                     └  package  ┬ specification
                        └ body

=============================================================================


Scope,visibility

=============================================================================


- Scalar
                        ┌(관련있는 데이터들의 집합)
- Composite ┬ record
                                                    ┌linked list
                  └ collection  ┬ Associative Array(index by table)
 
                     └ Nested Table
  
                                     └ V Array

=============================================================================

Bind Variables
      
    ※Example
select * from emp        ┐
where empno = 7788;
                                              다른 쿼리라고 판단, 하드 파싱을 함.
select * from emp
      where empno = 7568;   ┘  

         
         ↓↓↓↓↓↓↓
 
        select * from emp
where empno =:e_no;        소프트 파싱을 함. (빠르고,효율적)

=============================================================================

Cursor  - open
           - fetch
           - close



=============================================================================

Loop .....End Loop  ----> (do while) 
        └반드시 한번은 수행

while Loop .....End Loop
        └조건 처음부터 조건을 따져서 수행 시킬 때

for Loop .....End Loop
        └반복횟수