Posted
Filed under DataBase/Oracle

MSSQL 에서 Except 를 사용하면 테이블1과 테이블2 와 중복되는 데이터 뺴고 출력해 주는데.

SELECT * FROM TABLE1 
EXCEPT
SELECT * FROM TABLE2

(둘다 컬럼 정보가 같다고 보면...)
오라클에서 EXCEPT 쓰면 에러를 .....내뱉음...
오라클에서는 MINUS 를 써서 사용 하면 됨...

SELECT * FROM TABLE1 
MINUS
SELECT * FROM TABLE2

2026/04/30 14:04 2026/04/30 14:04
Posted
Filed under DataBase/Oracle

오라클에서 실수로 테이블에 있는 내용들을
DELETE FROM 하여 지워지지 말아야 하는 자료를 삭제 하고 커밋(Commit) 을 하여 지워 버렸다면,

ORACLE 에서 timestamp 를 이용하여 삭제 전의 데이터를 조회 하여 복구 할 수 있습니다.

SELECT
*
FROM 지워버린테이블 AS OF TIMESTAMP(SYSTIMESTAMP-INTERVAL '10' MINUTE)
(WHERE 조건 )

으로 조회 하면 10분전 상황의 데이터가 조회가 됩니다.
(MINUTE 대신 HOUR, SECOND 등도 사용 할 수 있습니다.)

[참고사항]

오라클 환경 설정에 따라서 복구가능한 시간이 달라 질 수 있습니다. 무조건 3 HOUR 해도 환경에 따라 3시간 전 상황으로 복구가 불가능 할 수도 있습니다 [ORA-01555] 오류발생

2026/04/30 14:03 2026/04/30 14:03
Posted
Filed under DataBase/Oracle

데이터베이스에서 두 개 이상의 테이블을 연결할 때 사용하는 JOIN(조인). 그중에서도 전 세계 표준인 ANSI JOIN 문법은 가독성이 높고 유지보수가 쉬워 실무에서 가장 권장되는 방식입니다.

오늘은 실무에서 90% 이상 사용되는 **'조인 3대장'**을 중심으로 핵심 종류를 정리해 보겠습니다.

1. INNER JOIN (내부 조인)

가장 기본이 되는 조인 방식으로, 두 테이블에서 조인 조건이 일치하는 데이터만 추출합니다. (수학의 교집합 개념)

 

  • 특징: 양쪽 테이블에 모두 매칭되는 값이 있어야 결과에 포함됩니다.

  • SQL 샘플

SELECT E.사원명, D.부서명
FROM 사원 E
INNER JOIN 부서 D ON E.부서코드 = D.부서코드;

실무 활용:
부서에 소속된 사원 명단만 정확히 뽑고 싶을 때 사용합니다.

2. LEFT OUTER JOIN (왼쪽 외부 조인)

왼쪽(먼저 쓴) 테이블의 모든 데이터를 가져오고, 오른쪽 테이블에서 일치하는 값이 있으면 붙입니다. 일치하는 게 없으면 오른쪽 자리는 NULL로 표시됩니다.

  • 특징: 왼쪽 기준 테이블의 데이터는 누락 없이 모두 보존합니다.

  • SQL 샘플

SELECT E.사원명, D.부서명
FROM 사원 E
LEFT OUTER JOIN 부서 D ON E.부서코드 = D.부서코드;
  • 실무 활용: 신입사원처럼 아직 부서 배정을 받지 못한 사람까지 포함해 전체 사원 명단을 보고 싶을 때 필수입니다.

3. RIGHT OUTER JOIN (오른쪽 외부 조인)

오른쪽 테이블의 모든 데이터를 기준으로 가져옵니다. 왼쪽 테이블에 매칭되는 값이 없으면 NULL로 처리됩니다.

  • 특징: LEFT JOIN과 방향만 반대입니다.

  • SQL 샘플

SELECT E.사원명, D.부서명
FROM 사원 E
RIGHT OUTER JOIN 부서 D ON E.부서코드 = D.부서코드;

실무에서는 테이블 순서만 바꾸면 되기 때문에 가독성을 위해 LEFT JOIN을 훨씬 더 많이 사용합니다.

2026/03/20 21:32 2026/03/20 21:32