-- data를 delete했을때 복구시켜야 할 경우
FLASHBACK TABLE [table name] TO timestamp sysdate - 10/24/60;

-- flashback이 버전이 낮아서 사용이 불가능 할 경우
SELECT * FROM [table name] AS OF timestamp(systimestamp - INTERVAL '10' minute);

 

'DataBase > Oracle' 카테고리의 다른 글

18. 오라클 객체  (0) 2021.07.24
17. 집합연산자  (0) 2021.07.24
16. 서브쿼리  (0) 2021.07.24
15. Join - 외부조인  (0) 2021.07.24
14. Join - 내부조인  (0) 2021.07.24
    • 오라클 객체
      1. VIEW
        • 가상의 테이블
        • 필요한 정보가 여러 테이블에 분산 저장되어있어 자주 조인이 발생되는 경우
        • 테이블 중 일부 칼럼이나 행만 요구되는 경우
        • 특정 테이블의 접근을 제한하고 결과만 제공하는 경우
        • VIEW가 바뀌면 원본도 같이 바뀌기 때문에 이러한 상황을 원치 않는다면 READ ONLY를 작성해 줘야 한다
        • CREATE [OR REPLACE] VIEW 뷰이름[(컬럼 리스트)]
              AS
                SELECT 문
                [WITH CHECK OPTION]
                [WITH READ ONLY]
      2. SEQUENCE
        • 자동적으로 증가 또는 감소되는 번호를 생성
        • 테이블과 독립적 사용
        • 테이블에 기본키로 사용된 적당한 칼럼이 없는 경우 기본키로 사용될 수 있음(게시판 글 번호 등)
        • CREATE SEQUENCE 시퀀스명
                [START WITH n]                시작값(생략되면 MINCALUE)
                [INCREMENT BY n]              증감 값 (DEFAULT 1)
                [MAXVALUE n|NOMAXVALUE]       최대값(DEFAULT NOMAXVALUE(10^27))
                [MINVALUE n|NOMINVALUE]       최솟값(DEFAULT MOMINVALUE(1))
                [CYCLE|NOCYCLE]               최대(최소)걊 도달 후 다시 시퀀스 생성 여부(기본값 NOCYCLE)
                [CACHE n|NOCACHE]             메모리에 미리 시퀀스 생성저장 후 사용(기본값 CACHE 20)
                [ORDER|NOORDER]               요청한 대로 생성 보장 (기본값 NOORDER)
        • 시퀀스 값 참조
        • 시퀀스명.CURRVAL : 시퀀스의 현재값 반환
          시퀀스명.NEXTVAL : 시퀀스의 다음값 반환
          해당 세션에서 시퀀스 생성 후 첫 번째 명령은 반드시 시퀀스명.NEXTVAL이어야함
          시퀀스명.CURRVAL은 시퀀스명.NEXTVAL가 한번은 수행된 후 값 참조 가능
      3. SYNONYM
        • 동의어
        • 오라클에서 사용된 모든 객체를 대상으로 별칭을 부여
        • 긴 테이블명 등에 대한 단축어 기능 제공
        • 칼럼의 별칭이나 FROM절에 사용되는 테이블의 별칭과의 차이점은 적용 범위에 있다
        • CREATE [OR REPLACE] SYNONYM 동의어명
                 FOR 원본 객체명
      4. INDEX
        • 데이터 검색의 효율성을 증가시키기 위하여 사용
        • DB Server의 성능 개선
        • 인덱스를 관리하는데 시간이 오래 걸릴 수도 있으므로 조심해서 사용한다
          1. 인덱스가 요구되는 칼럼
            • 검색이 빈번히 사용되는 칼럼
            • 기본키와 외래 키
            • SORT나 JOIN에 사용되는 칼럼
            • WHERE절의 조건에 '='연산자가 사용된 경우와 범위를 정하여 비교하는 경우
          2. 인덱스가 불필요한 칼럼
            • 칼럼 도메인 작은 칼럼(성별, 학년 등)
            • 검색(select)보다 INSERT, UPDATE, DELETE 등의 명령이 더 중요한 경우
            • 검색 결과 대부분의 자료가 반환된 조건에 사용되는 칼럼
          3. 인덱스 종류
            • Unique/Non-Unique
              • 중복 값의 허용 여부에 따른 분류, Null 값은 허용되나 Unique Index에서 한 번만 허용(단, 기본키 인덱스에서는 Null불허용)
            • Normal Index
              • default 인덱스        
              • 칼럼 값과 rowid(물리적 위치정보)를 조합 사용하여 자료 저장
              • 2진 트리구조 사용으로 각 노드의 평균 검색시간이 동일
            • Bitmap Index
              • Cardinality가 적은 경우 효율적이고 삽입/삭제/수정이 빈번히 발생되는 경우 비효율적
              • 칼럼과 rowid를 이진으로 조합하여 사용
            • Function-Based Normal Index
              • where절에 함수가 사용되어 검색하는 경우가 많이 발생하는 경우 함수가 사용된 칼럼의 값을 기반으로 인덱스 생성
          4. 인덱스 재구성
            • 인덱스나 테이블을 다른 테이블 저장공간(테이블스페이스)으로 이동시킨 후 삽입/삭제 동작이 많이 발생된 경우
            • ALTER INDEX 인덱스명 REBUILD
  • CREATE [ UNIQUE | BITMAP ] INDEX 인덱스명
              ON 테이블명(컬럼명[, 컬럼명, ...]) [ASC|DESC]

'DataBase > Oracle' 카테고리의 다른 글

오라클 데이터 delete시 복구 방법  (0) 2021.11.09
17. 집합연산자  (0) 2021.07.24
16. 서브쿼리  (0) 2021.07.24
15. Join - 외부조인  (0) 2021.07.24
14. Join - 내부조인  (0) 2021.07.24
  • 집합 연산자
    • UNION
      • 합집합의 결과 반환
      • 중복 자료는 배제
    • UNION ALL
      • 합집합의 결과 반환
      • 중복자료 출력
    • INTERSECT
      • 교집합의 결과 반환
    • MINUS
      • 차집합의 결과 반환
      • A MINUS B : A에서 B를 뺀 결과

'DataBase > Oracle' 카테고리의 다른 글

오라클 데이터 delete시 복구 방법  (0) 2021.11.09
18. 오라클 객체  (0) 2021.07.24
16. 서브쿼리  (0) 2021.07.24
15. Join - 외부조인  (0) 2021.07.24
14. Join - 내부조인  (0) 2021.07.24
  • 서브 쿼리
    • SQL 구문 안에 또 다른 SQL 구문이 포함된 형태
    • 많은 JOIN을 대신할 수 있음
    • 서브 쿼리는 반드시 () 안에 기술해야 한다
    • 연관성
      • 연관성 없는 서브 쿼리 : 메인쿼리와 조인으로 연결되지 않은 서브쿼리
      • 연관성 있는 서브쿼리 : 메인쿼리와 조인으로 연결된 서브쿼리
    • 사용 위치
      • 일반 서브쿼리 : SELECT절에 사용
      • 인라인 서브 쿼리 : FROM절에 사용(독립실행이 가능해야 한다)
      • 중첩 서브 쿼리 : WHERE절에 사용
    • 반환 값
      • 단일행, 단일 열
      • 단일행, 다중 열
      • 다중행, 단일 열
      • 다중행, 다중 열
      • 단일행 서브 쿼리 : 하나의 행만 반환하는 서브쿼리 (=, >=, <=, <, >,!=)만 사용 가능
      • 다중행 서브 쿼리 : 서브 쿼리의 결과가 여러 행 반환되는 경우 (IN ANY SOME ALL EXISTS) 사용

'DataBase > Oracle' 카테고리의 다른 글

18. 오라클 객체  (0) 2021.07.24
17. 집합연산자  (0) 2021.07.24
15. Join - 외부조인  (0) 2021.07.24
14. Join - 내부조인  (0) 2021.07.24
13. Function - NULL 처리 함수  (0) 2021.07.24
  • 외부 조인
    • 조인 조건을 만족하지 않는 테이블에 NULL값을 갖는 행을 추가하여 조인 수행
      1. 일반 외부 조인
        • SELECT [테이블명 | 테이블 별칭]컬럼 명 [AS 컬럼 별칭],
          	   [테이블명 | 테이블 별칭]컬럼 명 [AS 컬럼 별칭],
                 						:
                                      :
            FROM 테이블 명1[별칭], 테이블 명2[별칭], ...
           WHERE 테이블명1.컬럼명[(+)] = 테이블명2.컬럼명[(+)]
            [AND 일반 조건]
        • 데이터가 부족 한쪽에 (+)를 붙여준다
        • 양쪽에 (+)를 사용할 수 없다
      2. ANSI 외부 조인
        • SELECT [테이블명 | 테이블 별칭]컬럼 명 [AS 컬럼 별칭],
          	   [테이블명 | 테이블 별칭]컬럼 명 [AS 컬럼 별칭],
                 						:
                                      :
            FROM 테이블 명1[별칭]
            [RIGHT | LEFT | FULL] OUTER JOIN 테이블 명2[별칭] ON(조인조건 [AND 일반 조건])
           WHERE 일반조건
        • RIGHT : FROM 절의 테이블명 1의 값보다 더 많을때 사용 / 오른쪽이 더 많다
        • LEFT : FROM 절의 테이블명1의 값보다 더 적을 때 사용 / 왼쪽이 더 많다
        • FULL : 양쪽의 테이블 모두가 서로 부족할 때 사용

'DataBase > Oracle' 카테고리의 다른 글

17. 집합연산자  (0) 2021.07.24
16. 서브쿼리  (0) 2021.07.24
14. Join - 내부조인  (0) 2021.07.24
13. Function - NULL 처리 함수  (0) 2021.07.24
12. Function - 집계함수  (0) 2021.07.24
  • Join
    • 관계형 데이터베이스의 핵심 기능
    • 여러 테이블에 분산되어있는 자료를 조회하는 방식
    • 조인에 참여하는 테이블들은 반드시 관계가 존재해야 함
    • 테이블 개수가 N개일 때 관계 조건은 적어도 N-1개 이상이 되어야 한다
    • 일반 조인 / ANSI 조인, 내부 조인 / 외부 조인으로 구분
    • 조인 조건 구성에 사용되는 연산자에 따라 동등 조인 / 비 동등 조인으로 구분
  • 내부 조인(INNER JOIN)
    • 각 DBMS회사에서 자사 DBMS에 최적화되도록 구성한 문법
      1. CARTESIAN PRODUCT
        • 조인 조건이 없거나 조인 조건을 잘못 기술했을 때 발생
        • 꼭 필요한 경우가 아니면 사용하지 않는 것이 좋다
        • ANSI의 CROSS JOIN에 해당한다
      2. EQUI-JOIN(동등 조인)
        • 일반 내부 JOIN
        • SELECT [테이블명 | 테이블 별칭]컬럼 명 [AS 컬럼 별칭],
          	   [테이블명 | 테이블 별칭]컬럼 명 [AS 컬럼 별칭],
                 						:
                                      :
            FROM 테이블 명[별칭], 테이블 명[별칭], ...
           WHERE 조인 조건
            [AND 일반 조건] 
          [GROUP BY 컬럼명, [컬럼명, ...]]
          [HAVING 조건]
           [ORDER BY 컬럼명 | 컬럼 인덱스 [ASC | DESC]]
        • ANSI INNER JOIN
        • SELECT [테이블명 | 테이블 별칭]컬럼 명 [AS 컬럼 별칭],
          	   [테이블명 | 테이블 별칭]컬럼 명 [AS 컬럼 별칭],
                 						:
                                      :
            FROM 테이블 명[별칭]
           INNER JOIN 테이블명[별칭] ON(조인조건 [AND 일반조건])
           WHERE 조인 조건
            [AND 일반 조건] 
          [GROUP BY 컬럼명, [컬럼명, ...]]
          [HAVING 조건]
           [ORDER BY 컬럼명 | 컬럼 인덱스 [ASC | DESC]]
        • INNER JOIN의 경우 이렇게 두 가지 방법으로 사용이 가능하다
      3. NON-EQUI-JOIN(비 동등 조인)
        • 조인 조건에 =연산자 이외의 연산자가 사용되는 조인
        • EXISTS, IN, ANY, SOME 등이 주로 사용된다
          • EXISTS(서브 쿼리)
            • TRUE / FALSE 반환
            • 무조건 서브 쿼리가 들어가야 되며 하나의 행이라도 존재하면 TRUE 아니면 FALSE
            • WHERE절에 사용

'DataBase > Oracle' 카테고리의 다른 글

16. 서브쿼리  (0) 2021.07.24
15. Join - 외부조인  (0) 2021.07.24
13. Function - NULL 처리 함수  (0) 2021.07.24
12. Function - 집계함수  (0) 2021.07.24
11. Function - 변환함수  (0) 2021.07.24
  1. IS [NOT] NULL
    • 특정 칼럼 값이 널 인지 확인
  2. NVL(col, value)
    • col의 값이 NULL이면 value를 반환
  3. NVL2(col, val1, val2)
    • col의 값이 NULL이면 val2를 반환, NULL이 아니면 val1을 반환
  4. NULLIF(col1, col2)
    • col1과 col2가 같으면 NULL반환, 다르면 col1반환

'DataBase > Oracle' 카테고리의 다른 글

15. Join - 외부조인  (0) 2021.07.24
14. Join - 내부조인  (0) 2021.07.24
12. Function - 집계함수  (0) 2021.07.24
11. Function - 변환함수  (0) 2021.07.24
10. Function - 날짜 함수  (0) 2021.07.24
  1. SUM(expr)
    • expr에 저장된 자료의 합계를 반환
  2. AVG(expr)
    • 주어진 데이터의 산술 평균값을 반환
  3. COUNT(* | col)
    • 그룹화된 자료의 행의 수를 반환한다(자료의 수)
    • col은 외부 조인 시에 사용해야 한다
    • 일반적인 경우 *와 col은 어떤 걸 사용해도 같은 결과가 나온다
  4. MIN(col), MAX(col)
    • 주어진 컬럼col에서 가장 큰 값 또는 가장 작은 값을 반환
  5. ROLLUP()
    • GROUP BY 절에 사용하여 레벨별 집계를 구할 때 사용됨
  6. CUBE()
    • 조합가능한 모든 경우의 집계를 구할 때 사용됨

'DataBase > Oracle' 카테고리의 다른 글

14. Join - 내부조인  (0) 2021.07.24
13. Function - NULL 처리 함수  (0) 2021.07.24
11. Function - 변환함수  (0) 2021.07.24
10. Function - 날짜 함수  (0) 2021.07.24
9. Function - 숫자 함수  (0) 2021.06.22

+ Recent posts