본문 바로가기

Dev/sql_db3

[ORACLE] TIMESTAMP로 DELETE, UPDATE 후 COMMIT 한 데이터 복구하는 방법 만약 DELETE FROM USER WHERE SEQ= '123'; COMMIT; 위의 구문과 같이, 데이터를 실수로 삭제(delete, truncate는 불가) 하고 commit하였을때 다시 복원시켜야 하는 상황이라면, Oracle Flashback 기능을 통해 as of timestamp 구문을 사용하여 삭제 전의 데이터를 조회하여 복구 할 수 있다. 사용법은 아래와 같다. INSERT INTO USER SELECT * FROM USER AS OF TIMESTAMP(SYSTIMESTAMP-INTERVAL '10' MINUTE) WHERE SEQ= '123' ; 이 문법으로 삭제되거나 업데이트된지 10분내의 데이터를 다시 삽입 가능하다. 저기서 INTERVAL뒤의 시간은 변경 가능하며, 단위는 SECO.. 2019. 12. 10.
관계형 데이터베이스/ SQL/ 데이터베이스란 지속적으로 저장되는 연관된 정보의 모음이라 할 수 있는데, 이 정보들은 검색이나 처리의 대상이 될 수 있다. 데이터베이스 시스템은 데이터베이스를 만들고 관리하는 자동화, 컴퓨터화된 시스템이다 DBMS의 개요 DBMS(Database Managemnet System)란 데이터를 효율적으로 관리할 수 있는 시스템을 말한다. 이런 데이터를 효율적으로 관리하기 위해서는 데이터베이스릐 데이터를 추가, 변경, 삭제, 검색할 수 있는 기능이 있어야 한다. DBMS의 종류는 크게 세 가지로 구분된다. 즉, 계층형, 네트워크용, 릴레이션형으로 구분되는데 최근에는 릴레이션형이 DBMS의 주류를 이루고 있다. 릴레이션형 DBMS 를 RDBMS라고 하는데, 이런 제품으로는 오라킁, MS-SQL, 사이베이스, 인.. 2019. 11. 13.
[oracle] with절 ( with as) 사용하여 서브쿼리로 조인절과 join하는법 꽤 복잡한(나에게는) 데이터추출 업무를 해야하는 상황이 왔다. 문제는, 그냥 inner join, outer join(left)등을 사용하여 on뒤에오는 조건식과 where뒤에 오는 조건식으로만 적절하게 적용하면 되는 형태가 아니었다. 예를들어, 학생 한명에게 두명 또는 3명의 선생님이 평가를 내린다고 치자. 학생평가 테이블(APP), 선생님테이블(TEACHER), 평가과목테이블(CODE), 평가진행테이블(ENTIRE), 심사테이블(EVAL) 등등 ... 이모두를 엮는 중심이 되는 seq 는 평가진행테이블이다. 이에 대해 한 학생당 3명 또는 2명의 선생님이 평가를 내렸을시 기존의 쿼리는 아래와 같은 데이터를 뽑아올 수 있도록 작성했다. (예시로 임의로 만든 예시용 쿼리) SELECT mng.year A.. 2019. 11. 12.