BLOG ARTICLE DB/DB study | 4 ARTICLE FOUND

  1. 2007.02.09 SQL 함수의 분류와 정리
  2. 2006.07.23 [본문스크랩] 오라클 9i튜닝 요약 정리
  3. 2006.07.23 오라클 OCP공부를 처음 하시는 분께
  4. 2006.06.07 NOT IN

SQL 함수의 분류와 정리

  * 10g 기준, 총 259개
   (그룹함수와 분석함수를 각각 따로 계산, CORR_, STATS_T_TEST_로 시작하는 함수들을 각각 하나로
    계산할 경우)
  * 붉은색으로 표시된 함수의 이름을 클릭하면 함수에 대한 설명을 볼 수 있다.


  1. Single-Row Functions (단일행함수)

  단일행함수는 조회되는 table이나 view의 모든 행에 대해서 단일행만을 반환한다.
  select-list나, where절, start with절, connect by절,having절에 나올 수 있다.

    Numeric Functions (수치함수)

    수치함수는 수치값을 입력받고 수치값을 반환한다.
    number 타입의 수치값을 반환하는 대부분의 수치함수는 38자리의 정밀도(유효숫자)를 갖는다.
    초월함수인 COS, COSH, EXP, LN, LOG, SIN, SINH, SQRT, TAN, TANH는 36자리의 정밀도를 갖는다.
    ACOS, ASIN, ATAN, ATAN2는 30자리의 정밀도를 갖는다.

      ABS
      ACOS
      ASIN
      ATAN
      ATAN2
      BITAND
      CEIL
      COS
      COSH
      EXP
      FLOOR
      LN
      LOG
      MOD
      NANVL
      POWER
      REMAINDER
      ROUND (number)
      SIGN
      SIN
      SINH
      SQRT
      TAN
      TANH
      TRUNC (number)
      WIDTH_BUCKET

    Character Functions Returning Character Values (문자값을 반환하는 문자함수)

    입력되는 값이 char, varchar2 타입으로 주어질 경우, 반환되는 값은 varchar2 타입이다.
    입력되는 값이 nchar, nvarchar2 타입으로 주어질 경우, 반환되는 값은 nvarchar2 타입이다.

    함수에 의해 반환되는 값의 길이는 반환되는 값의 datatype의 최대길이를 넘지 못한다.
    반환되는 char, varchar2 타입의 값이, 허용되는 최대치를 초과할 경우, 초과되는 부분을
    잘라내고 값을 반환한다.

      CHR
      CONCAT
      INITCAP
      LOWER
      LPAD
      LTRIM
      NLS_INITCAP
      NLS_LOWER
      NLSSORT
      NLS_UPPER
      REGEXP_REPLACE
      REGEXP_SUBSTR
      REPLACE
      RPAD
      RTRIM
      SOUNDEX
      SUBSTR
      TRANSLATE
      TREAT
      TRIM
      UPPER

    NLS Character Functions (National Language Support 함수)

    character set에 관한 정보를 반환한다.

      NLS_CHARSET_DECL_LEN
      NLS_CHARSET_ID
      NLS_CHARSET_NAME

    Character Functions Returning Number Values (수치값을 반환하는 문자함수)

      ASCII
      INSTR
      LENGTH
      REGEXP_INSTR

    Datetime Functions (시간함수)

    시간함수는 다음과 같은 3가지 datatype을 가지고 계산을 한다.
    date (date)
    timestamp (timestamp, timestamp with time zone, timestamp with local time zone)
    interval (interval day to second, interval year to month)

      ADD_MONTHS
      CURRENT_DATE
      CURRENT_TIMESTAMP
      DBTIMEZONE
      EXTRACT (datetime)
      FROM_TZ
      LAST_DAY
      LOCALTIMESTAMP
      MONTHS_BETWEEN
      NEW_TIME
      NEXT_DAY
      NUMTODSINTERVAL
      NUMTOYMINTERVAL
      ROUND (date)
      SESSIONTIMEZONE
      SYS_EXTRACT_UTC
      SYSDATE
      SYSTIMESTAMP
      TO_CHAR (datetime)
      TO_TIMESTAMP
      TO_TIMESTAMP_TZ
      TO_DSINTERVAL
      TO_YMINTERVAL
      TRUNC (date)
      TZ_OFFSET

    General Comparison Functions (비교함수)

      GREATEST
      LEAST

    Conversion Functions (변환함수)

    변환함수의 이름은 datatypeTodatatype의 규칙을 따른다.
    앞의 datatype이 입력되는 datatype, 뒤의 datatype이 반환되는 datatype이다.

      ASCIISTR
      BIN_TO_NUM
      CAST
      CHARTOROWID
      COMPOSE
      CONVERT
      DECOMPOSE
      HEXTORAW
      NUMTODSINTERVAL
      NUMTOYMINTERVAL
      RAWTOHEX
      RAWTONHEX
      ROWIDTOCHAR
      ROWIDTONCHAR
      SCN_TO_TIMESTAMP
      TIMESTAMP_TO_SCN
      TO_BINARY_DOUBLE
      TO_BINARY_FLOAT
      TO_CHAR (character)
      TO_CHAR (datetime)
      TO_CHAR (number)
      TO_CLOB
      TO_DATE
      TO_DSINTERVAL
      TO_LOB
      TO_MULTI_BYTE
      TO_NCHAR (character)
      TO_NCHAR (datetime)
      TO_NCHAR (number)
      TO_NCLOB
      TO_NUMBER
      TO_DSINTERVAL
      TO_SINGLE_BYTE
      TO_TIMESTAMP
      TO_TIMESTAMP_TZ
      TO_YMINTERVAL
      TO_YMINTERVAL
      TRANSLATE ... USING
      UNISTR

    Large Object Functions (LOB 함수)

      BFILENAME
      EMPTY_BLOB, EMPTY_CLOB

    Collection Functions (Collection 함수)

    중첩테이블(nested table), varray를 가지고 계산을 한다.

      CARDINALITY
      COLLECT
      POWERMULTISET
      POWERMULTISET_BY_CARDINALITY
      SET

    Hierarchical Function (계층쿼리 함수)

      SYS_CONNECT_BY_PATH

    Data Mining Functions (데이터마이닝 함수)

      CLUSTER_ID
      CLUSTER_PROBABILITY
      CLUSTER_SET
      FEATURE_ID
      FEATURE_SET
      FEATURE_VALUE
      PREDICTION
      PREDICTION_COST
      PREDICTION_DETAILS
      PREDICTION_PROBABILITY
      PREDICTION_SET

    XML Functions (XML 함수)

      APPENDCHILDXML
      DELETEXML
      DEPTH
      EXTRACT (XML)
      EXISTSNODE
      EXTRACTVALUE
      INSERTCHILDXML
      INSERTXMLBEFORE
      PATH
      SYS_DBURIGEN
      SYS_XMLAGG
      SYS_XMLGEN
      UPDATEXML
      XMLAGG
      XMLCDATA
      XMLCOLATTVAL
      XMLCOMMENT
      XMLCONCAT
      XMLFOREST
      XMLPARSE
      XMLPI
      XMLQUERY
      XMLROOT
      XMLSEQUENCE
      XMLSERIALIZE
      XMLTABLE
      XMLTRANSFORM

    Encoding and Decoding Functions

      DECODE
      DUMP
      ORA_HASH
      VSIZE

    NULL-Related Functions (NULL 관련 함수)

      COALESCE
      LNNVL
      NULLIF
      NVL
      NVL2

    Environment and Identifier Functions (환경변수 관련 함수)

    instance, session에 관한 정보를 제공한다.

      SYS_CONTEXT
      SYS_GUID
      SYS_TYPEID
      UID
      USER
      USERENV

  2. Aggregate Functions (그룹함수)

  그룹함수는 select-list나, order by절, having절에 나올 수 있다.
  group by절을 포함하는 쿼리에서 select-list에는 그룹함수, group by절에 있는 표현식(expression),
  상수만이 올 수 있다. COUNT(*), GROUPING을 제외한 모든 그룹함수는 NULL값을 무시한다.

      AVG
      COLLECT
      CORR
      CORR_*
      COUNT
      COVAR_POP
      COVAR_SAMP
      CUME_DIST
      DENSE_RANK
      FIRST
      GROUP_ID
      GROUPING
      GROUPING_ID
      LAST
      MAX
      MEDIAN
      MIN
      PERCENTILE_CONT
      PERCENTILE_DISC
      PERCENT_RANK
      RANK
      REGR_ (Linear Regression) Functions
      STATS_BINOMIAL_TEST
      STATS_CROSSTAB
      STATS_F_TEST
      STATS_KS_TEST
      STATS_MODE
      STATS_MW_TEST
      STATS_ONE_WAY_ANOVA
      STATS_T_TEST_*
      STATS_WSR_TEST
      STDDEV
      STDDEV_POP
      STDDEV_SAMP
      SUM
      VAR_POP
      VAR_SAMP
      VARIANCE

  3. Analytic Functions (분석함수, 해석함수)

  분석함수는 그룹단위로 값을 계산한다는 점에서 그룹함수와 유사하지만, 그룹마다 1개이상의 행을 반환한다는
  점에서 그룹함수와 상당한 차이가 있다. 분석함수에서의 그룹을 윈도우(window)라고 부르며,
  analytic_clause에서 정의한다.

  * 분석함수와 analytic_clause의 자세한 설명은 아래 페이지를 참고한다.
  - http://www.soqool.com/servlet/board?cmd=view&cat=100&subcat=1030&seq=2


  조회되는 각 행마다, 분석함수 값을 계산하기 위한 윈도우를 정의한다. 윈도우의 크기는 행의 갯수나
  시간간격을 계산하여 정의할 수 있다. 분석함수는 order by절을 제외하고는 쿼리에서 가장 나중에
  실행된다. 따라서 select-list나 order by절에만 사용할 수 있다.

  분석함수는 데이타웨어하우징(DW) 분야에서 많이 사용된다. 아래 분석함수 중에서 별표(*)가 되어 있는
  함수들은 windowing_clause를 포함해서 모든 분석함수의 구문들을 사용할 수 있는 함수들이다.

  * 분석함수와 windowing_clause의 자세한 설명은 아래 페이지를 참고한다.
  - http://www.soqool.com/servlet/board?cmd=view&cat=100&subcat=1030&seq=2


      AVG *
      CORR *
      COVAR_POP *
      COVAR_SAMP *
      COUNT *
      CUME_DIST
      DENSE_RANK
      FIRST
      FIRST_VALUE *
      LAG
      LAST
      LAST_VALUE *
      LEAD
      MAX *
      MIN *
      NTILE
      PERCENT_RANK
      PERCENTILE_CONT
      PERCENTILE_DISC
      RANK
      RATIO_TO_REPORT
      REGR_ (Linear Regression) Functions *
      ROW_NUMBER
      STDDEV *
      STDDEV_POP *
      STDDEV_SAMP *
      SUM *
      VAR_POP *
      VAR_SAMP *
      VARIANCE *

  4. Object Reference Functions

      DEREF
      MAKE_REF
      REF
      REFTOHEX
      VALUE

  5. Model Functions (Model 함수)

      CV
      ITERATION_NUMBER
      PRESENTNNV
      PRESENTV
      PREVIOUS
  



  References

  1. Oracle(R) Database SQL Reference 10g Release 2 (10.2) - SQL Functions
  - http://download-west.oracle.com/docs/cd/B19306_01/server.102/b14200/functions001.htm

  2. Oracle Database SQL Reference, 10g Release 2 (10.2) B14200-02, b14200.pdf
  - http://download-west.oracle.com/docs/cd/B19306_01/server.102/b14200.pdf

  Document History

  최초등록: 2006-04-15
  1차 수정: 2006-04-19
  2차 수정: 2006-07-17, 함수 추가
  3차 수정: 2006-08-27, 함수 추가
  4차 수정: 2006-09-08, 함수 추가
  5차 수정: 2006-10-20, 함수 추가
  

  * 이 문서의 내용에 관해서 잘못된 부분이 있거나 질문이 있으신 분은 답글로 알려주시기 바랍니다.
  * 이 문서를 다른 곳에 게재하실 분은 출처를 꼭 밝혀주시기 바랍니다.

출처: http://www.soqool.com/servlet/board?cmd=view&cat=100&subcat=1030&seq=1

 
AND

1.튜닝의 순서
       가.튜닝 단계
               1)설계 튜닝
               2)어플리케이션 튜닝
               3)메모리 튜닝
               4)IO 튜닝
               5)경합 튜닝
               6)운영체체 튜닝

       나.핵심 튜닝 이슈
               1)훌륭한 초기설계
               2)역할을 분명하게 정의
               3)어플리케이션 튜닝 수행
               4)수치로 표현할 수 있는 목표 설정


2.오라클 트레이스(추적) 파일.얼러트(경고) 파일
       가.백그라운드 프로세스 추적파일 제어
               1)오라클 서버는 백그라운드 프로세스에 의하여 탐지된 오류에 관한 정보를 추적 파일에 모아 놓는다
               2)Oracle Support는 이들 추적 파일을 이용하여 문제를 진단하고 해결.
               3)사용자 SQL문 추적한다.

       나.오라클 대기 이벤트
               1)대기 이벤트를 수집하여 여러 이유로 기다려야 하는 세션에  대하여 정보를 얻을 수 있다.
               2)통계 이벤트 뷰
                       가)모든 세션에 대한 이벤트 총대기(V$System_Event)
                       나)기다려야 했던 각 세션에 대한 이벤트 대기(V$Session_Event)
                       다)대기중에 있는 현활동 세션에 대한 이벤트 대기 (V$Session_Wait)

       다.진단 정보
               1)추적 파일
                       가)경고 로그 파일
                       나)백그라운드 프로세스 추적 파일
                       다)사용자 추적 파일
               2)이벤트
                       가)오라클 대기 이벤트
                       나)OEM 이벤트

       라.얼러트(경고)로그 파일
               1)경고 로그 파일은 시간 순으로 생성된 메시지와 오류 로그로  구성되어 있다.
               2)경고 로그 파일을 정기적으로 검사
                       가)내부오류(ORA-600) 및 블록 파손 오류 탐지
                       나)데이터베이스 작업 감시
                       다)비 디폴트 초기화 파라미터 조회
               3)정기적 점검 후 삭제 및 정리

       마.백그라운드 프로세스 추적(Trace) 파일 제어
                 1)오라클 서버는 백그라운드 프로세스에 의하여 탐지된 오류에 관한 정보를 추적파일에 모아 놓는다.
               2)ORacle Support는 이들 추적 파일을 사용하여 문제 진단 및 해결
       바.사용자 추적(Trace) 파일
               1)서버 프로세스 추적은 다음에 의하여 세션 레벨이나 인스턴스 레벨에서 활성화 또는 비활성화 된다.
                       가)Alter Session 명령어
                       나)Set_SQL_TRACE_IN_SESSION 프로시저
                       다)초기화 파라미터 SQL_TRACE
               2)사용자 추적 파일은 다음의 내용을 포함
                       가)세션에 대해 추적된 SQL문에 관한 통계
               3)사용자 추적 파일은 SQL 튜닝에 유용
               4)오라클은 서버 프로세스 마다 사용자 추적 파일 생성
       바.오라클 대기 이벤트
               1)대기 이벤트를 수집하여 여러 이유로 기다려야 하는 세션에 관한 정보 습득
                       가)V$EVENT_NAME view:
                               -event#
                               -name
                               -parameter1
                               -parameter2
                               -parameter3
       

3.라이브러리 캐쉬 튜닝
       가.라이브러리 캐쉬
               1)사용자가 공유하는 SQL문과 PL/SQL 블록을 저장하는 사용
               2)LRU(최근 최저사용빈도) 알고리즘에 의하여 관리
               3)사용자가 이미 캐쉬에 존재하는 문장을 실행 시킬 경우, 오라클 서버는 문장의 구문을 재분석 하지 않고 캐쉬에 저장된 버전을 사용함.
               4)문장이 이미 캐쉬에 저장되어 있는가를 찾기 위해 오라클 서버는 다음 수행
                       가)ASCII 텍스트의 수치고 문장을 줄임
                       나)이 수치에 해시 함수 사용

       나.라이브러리 캐쉬 튜닝 : 구문 분석을 최소로 유지하여 실패 감소.
               1)사용자가 문장을 공유할수 있도록 화인
               2)충분한 공간을 할당하여 문장이 오래되어 삭제되지 않도록 예방
               3)무효가 되어 구문을 재분석 하지 않도록 예방

       다.다음을 통하여 단편화를 피함
               1)대용량의 메모리 요구에 대해 공간예약
               2)빈번하게 요구되는 큰 객체 고정
               3)익명의 큰 PL/SQL 블록 제거
               4)MTS 연결의 UGA 소모 감소
       라.라이브러리 튜닝을 위한 진단 툴들
               1)뷰의 설명
               2)V$SGASTST : 모든 SGA 구조의 크기
               3)V$LibraryCache : 라이브러리 캐쉬 관리에 관한 통계
               4)V$SQLAREA : 모든 공유 커서에 대한 전체 통계와 SQL 문의 처음 1000개의 문자
               5)V$SQLTEXT : 자르지 않은 전체 SQL 텍스트, 복수 행으로 표시
               6)V$DB_OBJECT_CACHE : 패키지 등 캐쉬에 저장된 데이터베이스 객체; 또한 SQL 문에서 참조는 테이블 또는 동의어 와 같은 객체

       마.V$LibraryCache 뷰를 통해 커서가 공유되고 있는가 확인 GETHITratio는 비율이 90대 후반의 값이어야 함. 그렇지 않을 경우 애플리케이션 코드의 효율성을 향상시켜야 함.

       바.라이브러리 캐쉬 재로드
               1)V$LibraryCache 뷰 : 이뷰는 이미 구문분석이 된 문장들이 캐쉬에서 오래되어 삭제되었는지의 여부를 표시
               2)RELOADS 수는 PINS 수의 1%를 넘어서는 안됨

       사.라이브러리 캐쉬 크기 조정
               1)내장 객체(패키지,뷰 등)에 필요한 글로벌 공간 정의
               2)일반적인 SQL문에 의해 사용되는 메모리 양 정의
               3)캐쉬 실패와 단편화를 피하기 위하여 대용량 메모리 요구에 대해 공간 예약
               4)자주 사용되는 객체 보관
               5)익명의 큰 PL 블록을 패키지된 함수를 호출하는 익명의 작은 블록으로 전환

       아.대용량 메모리 요구
               1)대용량의 연속 메모리 요구 요청 만족
               2)공유 풀 내에 단편화 가능성이 없는 메모리 예약




4.버퍼 캐쉬 튜닝
       가.튜닝 목표
               -물리적 I/O 작업은 많은 시간을 소요하고 CPU 요구를 증가시키기 때문에, 서버가 필요로 하는 대부분의 블록을 메모리에서 찾게 될 때 오라클 성능이 향상될 수 있습니다. 데이터베이스 버퍼 캐쉬를 측정하는 통계는 캐쉬 적중율입니다. 이 통계는 메모리에서 발견되는 블록의 수 대 액세스된 블록의 수의 비율입니다. 데이터베이스 버퍼 캐쉬가 너무 작을 때, 시스템은 너무 많은 I/O 작업을 수행하기 때문에 더 느려집니다.  

       나.버퍼 캐쉬는 I/O 성능에 결정적
       다.주요 튜닝 목표는 캐쉬 적용율 90%
       라.필요한대로 DB_BLOCK_BUFFER를 조정
       마.객체들을 복수 버퍼 풀에 분리
       바.테이블을 캐쉬



5.리두로그 버퍼 튜닝
       가.목적
               1)프로세스가 리두로그 버퍼의 공간을 기다리고 ㅇ있는지의 여부 결정
               2)리두로그 버퍼의 크기 적절하게 조정
               3)리두 작업 감소
       나.리두로그 버퍼 크기 조정
               1)LOG_BUFFER 파라미터
               2)디폴트값 : 특정 OS에 따라 다름, 일반적으로 4* 최대 블록 크기
               3)특히 트랜잭션이 길거나 많을 경우, 값이 클수록 로그 파일 I/O가 감소
               4)빈번한 COMMIT 문은 버퍼를 비우게 되어, 버퍼 크기가 더 작게 됩니다.

       다.NOLOGGING 사용하여 리두 작업 감소
               1)테이블, 파티션, 테이블스페이스, 인덱스에 적용
               2)리두 로그 버퍼에 있는 데이터에 대한 변경내역을 기록하지 않습니다
               3)INSERT 문 레벨에서 속성으로 지정되어 있지 않지만, 테이블, 파티션, 인덱스, 또는  테이블스페이스에 대해 ALTER나 CREATE 명령어를 사용할 때 지정
               4)이 모드는 로드 이전에 설정되며 로드가 완료될 때 LOGGING으로 재설정


출처:http://blog.naver.com/hwknoc?Redirect=Log&logNo=130006215316
AND

왜 Oracle 공부를 하는가?

Oracle은 Oracle Corporation이란 미국의 기업에서 만든 데이터 베이스 관리 시스템  입니다.
Oracle 은 Database 에서 가장 많이 쓰이며, 기능 또한 가장 좋은 것으로 알려진 최고의 Database 입니다.
Oracle 을 잘 다룬다고 하면 Database 에 대해서 전문적인 지식을 가지고 있다고 할 만큼 Database = Oracle 라는 인식이 저변에 확대되어 있는 것이 사실입니다.
기업의 정보와 데이터는 앞으로 더욱 더 많이 늘어나게 될 것 입니다.
이 수많은 정보를 효과적으로 관리하기 위해서는 Database라는 것이 꼭 필요 합니다.
Database 라는 것이 이제는 몰라서는 안 되는 IT 기술의 하나 이고,  Database를 사용하는 곳이 많다 보니, DBA의 중요성은 높아진다고 할 수 있습니다.
Database중에서도 가장 많이 사용하는 것이 Oracle 입니다.
물로 MS SQL Server나 Sybase, DB2들도 많이 사용하지만, 우리나라의 대기업에서는 Oracle을 많이 사용합니다.
Database와 같은 경우는 처음에 공부하기가 조금은 힘이 듭니다.
용어도 생소하고, 또한 개념 이해도 힘들기 때문에, 처음에 많은 시간을 투자하셔서 공부를 해야 후에 다른 어떤 Database를 접하게 되더라도  쉽게 이해 할 수 있습니다.
Oracle은 다른 Database보다 훨씬 복잡하고 많은 기능들이 있어서 처음에 공부하는 것이 다른 DB보다 조금은 힘이 듭니다.
하지만 Oracle DB를 이해하고 난 다음에 다른 DB를 공부하는면 좀더 쉽게 공부 할 수 있습니다.
공부를 하시면서 가장 중요한 것은
실습위주와 이해 위주의 공부를 하셔야 실력이 빠르게 향상될 수 있습니다.
열심히 하셔서 모두들 Oracle 도사가 되었으면 좋겠습니다.

OracleClub을 활용해서 스터디 시작하기

OracleClub.com은 Oracle 초보자와 중급자를 위한 사이트 입니다.
Oracle을 처음 시작하는 분들께 Oracle과 친해지기 위한 여러가지 강좌들을 제공하고 있습니다.
우선 Oracle을 처음 시작하시는 분이라면..
홈페이지 메뉴 중에서
Oracle -> Oracle 강좌 -> Oracle 기초

Oracle -> Oracle 강좌 -> SQL
강좌를 하나하나 따라하면서 실습하세요..
SQL을 어느 정도 이해하셨으면  
Oracle -> Oracle 강좌 -> PL/SQL
 강좌를 실습하시고요..
어느 정도 기초를 공부하신다음에..
Oracle -> Oracle 강좌 -> Admin
강좌를 공부하세요..
일반적으로 SQL -> PL/SQL -> Admin 그다음에 Tuning이나 Backup을 공부 합니다.
SQL과 PL/SQL 그리고 Admin모두 실습 위주로 공부를 해야 빨리 실력을 키울수 있습니다.
그리고 명령어 하나하나 실행하면서 어떨 때 이 명령어가 필요한지 이해를 꼭 하셔야 되고요..
이해위주와 실습위주로 공부하시면 정말 빨리 실력을 키울 수 있습니다.
어느 정도 기초를 공부하시고 난 다음에는 Admin을 많이 공부하세요.
Admin을 많이 알면 Tuning과 Backup 공부하기가 훨씬 수월합니다.

◈  Oracle 추천 문서

※ 인터넷에 공유된 문서중에서 읽을만한 문서들을 모와 봤습니다.

== 제가 정리한 OracleClub.com 강좌 파일 입니다 ==
SQL강좌
 홈페이지 오라클강좌 -> SQL강좌 정리파일입니다.
PL/SQL 강좌
 홈페이지 오라클강좌 -> PL/SQL강좌 정리파일입니다.

== 초급에서 중급정도 ==
  ☞ SQL &PL/SQL 강의
 SQL/PLSQL 이 문서 하나만 봐도 충분하겠네요..
 정말 정리가 잘되어 있습니다.
 자료출처 : 현대정보기술 오라클과정 교재
 => 개인학습용으로만 사용해 주세요, 저작권에 위배되면 삭제하겠습니다.
OTN에서 제공하는 초보자를 위한 오라클 강좌

== 중급이상 ==
대용량 데이터베이스 솔루션
 이화식씨가 대표로 있는(주)엔코아 정보 컨설팅에서 나온 자료 입니다.
 교육용으로 제작된 파워포인트 자료 인데요..
 제본이나 복사는 법으로 금지한다고 나와 있네용..
 프린트 뽑아서 보관해 둘만한 자료 입니다..
☞ 효율적인 오라클 데이타베이스 성능 관리 세미나II 자료 입니다.. 파일1
, 파일2
 튜닝 방법론 &SQL 처리구조
 인덱스/조인/정렬
 효율적인 SQL 및 고급 인덱스
 Oracle Optimizer
Backup &Recovery
  1.고려사항, 2.구조, 3.구성, 4.물리적백업, 5.복구이론, 6.장애, 7.완전복구, 8.불완전복구, 9.논린적복구
더 많은 자료는 오라클 자료실
을 참고하세요..

◈  Oracle책 추전

 제가 가지고 있는 책들도 있고. 서점에서 읽어본 책도 있습니다.
 제가 공부하면서 그래도 괜찮다고 생각된 Oracle 서적들 입니다. 개인적으로 추천하는 서적들 입니다.
 그리고 제가 추천하는 한가지는
오라클 정식 교재를 구해서 보세요..제본이라도 해서요.
 저는 OCP공부하면서 봤는데요.. 실무에서 사용할때 참고하기도 좋고.. 많은 도움이 됩니다.

Oracle Bible Ver.8 X 2E [영진.com]
김종근, 송건철, 홍준호 저 / 국내서 / 2001-12-10

제가 오라클을 시작할때 처음으로 접한 서적입니다. 지금은 두번째 개정판인데요..
초보자들에게 권하는 책이죠.. 중급자 이상은 절대 구입하지 마시고요.
오라클에 대한 전반적인 내용이 소개되어 있습니다.
전체적으로 오라클을 이해할 수 있는 서적이라 생각 됩니다.

오라클(Oracle) 프로젝트 실무 - 기초에서 실무개발자로 [구민사]
이공명 저 / 국내서 / 2002-11-06

초/중급들이 쉽게 공부할 수 있는 책이라 생각됩니다.
실습하면서 쉽게 공부 할 수 있는 책입니다. 초보자들은 서점가서 한번 구경해보세요.
참고로 전 이책은 구입하지 않고 서점에서 읽기만 했습니다.

about Oracle9i PL/SQL [영진.com]
이태윤 저 / 국내서 / 2002-11-11

초급자를 벗어나
중급자로 가는 단계에서
PL/SQL을 자세히 공부하고 싶은 분들한테 추천합니다.
PL/SQL관련 유용한 내용들이 많이 있고요.. 조금은 딱딱한 내용도 있네요..

Advanced Oracle Database 활용과 튜닝 [영진.com]
임호진 저 / 국내서 / 2003-03-15

중급자이상의 실력을 가진분에게 추천 합니다.
오라클에 관한 전반적인 이해정도에서 전문가 정도의 수준으로 공부 하고싶은 분들은 보세요.
좋은 내용들이 많이 있는거 같습니다.

오라클사의 대표적 DB자격증인 OCP자격증는 국제자격증 중에서 상위의 가치를 가지고 있는 자격증입니다. OCP자격증을 따기 위해서는 오라클본사에서 하는 공인교육 또는 오라클사가 위탁한 교육기관(오라클공인교육기관,오라클WDP공인교육기관)에서 1과목 이상 수강을 해야 자격증이 인증이 됩니다.
공인교육기관에서 OCP자격증 4과목을 수강하려면 약 300여만원의 비용이 듭니다.한 과목당 $80 이기 때문에 회사에서 교육지원을 해주는 직장인을 제외하고는 부담을 느끼게 됩니다. 그래서 사람들이 많이 찾는 것이 오라클 WDP공인교육기관입니다.
서울에 2군데정도의 오라클WDP공인교육기관이 있는데, WDP란 취업을 위해 오라클자격증인 OCP자격증을 취득하려는 사람들에게 저렴한 가격으로 OCP교육을 하는 곳입니다.
OCP자격증은 재직자환급혜택이 적용되지 않는 단점이 있지만, 취득후의 이점을 생각해 보면 한번쯤 도전해볼만한 가치를 가진 자격증입니다.그리고 개인환급을 통해서 오라클을 공부하게되면 재직자환급만큼의 환급을 받을수 있기때문에 교육받는데 무리가 없습니다.
OCP 4과목(PL/SQL, FUNDAMENTAL 1|2, PERFORMANCE TUNNING)중 2과목을 패스하면 OCA라는 자격이 주어지고, 4과목을 패스하면 비로소 OCP자격증이 인증됩니다. OCP 윗단계 자격증으로는 OCM이라는 자격증이 있는데, OCM자격증은 우리나라에서 취득할 수 없습니다. 그리고 OCM은 현재 국내의 50여명의 소수만 취득한 자격증으로 고난이도를 자랑합니다.
OCP버젼은 현재 10g버젼이 나왔지만, 아직까지 실무에서 널리 쓰이는 것은 OCP-DBA 9i버젼입니다.개인적으로 많이 쓰이는 버젼은 OCP-DBA 8i정도이고 현장에서 쓰이는 버젼은 OCP 9i가 대표적입니다.
정보통신부에서도 50%이상의 서버가 오라클로 이루어져있기 때문에 OCP자격증 취득자를 대우하고 있는 형편입니다.많은 사람들이 인터넷에서 OCP학원을 검색하는데, 오라클 코리아에 들어가서 공인된 교육기관이 어디인지 확인한 후 OCP교육을 받아야 나중에 다시 교육받는 일 없이 자격증을 취득할 수 있습니다.
OCP자격증이 DB자격증이기 때문에 보안과정에서 필수적으로 공부해야 하는 자격증이기도 합니다. 서버보안에 관련하여 오라클OCP또는 리눅스 LPIC를 선택하는 사람들이 많고 그러한 공부를 하기 위해서 국제공인시험센터(www.hacker-academy.co.kr)등의 IT전문교육센터를 찾는 것이 보편화 되어 있습니다.
특히 오라클자격증을 불만업이 공부할 수 있는 곳이 강남의 국제공인시험센터(www.hacker-academy.co.kr)인데, 이곳은 2005년 오라클자격증 OCP취득률 1위의 오라클WDP공인교육기관으로 전임강사를 OCM취득자를 고용하는 등 교육적인 질면에서는 국내 어느 교육기관보다 높다고 할 수 있습니다.
오라클자격증인 OCP는 고용보험혜택이 되지는 않지만, 오라클WDP공인교육기관에서 공부하게 되면 저렴하게 공부할 수 있고, 개인환급을 통해 교육비적인 부담을 줄일 수 있습니다. 그리고 개인의 몸값을 높히기 위해서라면 어느정도의 투자는 각오하고 공부를 하는 것이 OCP자격증뿐만 아니라 기타 국제공인자격증(MCSE,CCNA,CCNP,SCJP,SCJD,SCSA,CISSP,CISA,SIS등)을 취득하는데 마음가짐을 새롭게 할 수 있을 것입니다.
오라클자격증 OCP는 JAVA자격증인 SCBCD(EJB)와 상호 연관이 많이 되는것에 착안하여 OCP와 EJB를 공부하게 되면 진로나 취업에서 많은 부분 유리하게 됩니다.

출처:http://blog.naver.com/vmflqkdl?Redirect=Log&logNo=20022409912

AND

NOT IN

DB/DB study 2006. 6. 7. 19:13
2-5. DEPT 테이블에는 총 4 건의 데이터가 들어 있다.

DEPTNO DNAME LOC
10 ACCOUNTING NEW YORK
20 RESEARCH DALLAS
30 SALES CHICAGO
40 OPERATIONS BOSTON
이 때 다음 SELECT 문을 실행할 경우 몇 건의 데이터가 출력되는가?



SELECT *

FROM dept

WHERE deptno NOT IN (10, 20, NULL)



a. 0

b. 1

c. 2

d. 3

e. 4.





<해설>



이 SELECT 문을 NOT IN 대신 AND 연산자로 풀어 써 보자.



SELECT *

FROM dept

WHERE deptno != 10 AND deptno != 20 AND deptno != NULL



NULL과의 연산은 || 연산자를 제외하고는 모두 NULL로 처리되므로 deptno != NULL 의 결과는 NULL이고 이 값과의 AND 연산도 NULL이 된다. 따라서 연산의 최종 결과가 NULL이므로 WHERE 조건을 만족시키는 데이터는 하나도 없다.



정답 : (a) (<- 마우스로 정답 부분을 선택하세요)
AND