Oracle inner join 문법

김르르
3 min readMar 26, 2021

--

오라클은 join을 매우 간단하게 할 수 있다.

select 컬럼명…..테이블명.컬럼명 , alias명.컬럼명….

from 테이블명 alias, 조인할 테이블명 alias, 조인할 테이블명 alias ….

where 조인조건 and 검색조건

Outer join

  • 한쪽 테이블에만 레코드가 존재하더라도 조회됨
  • left, right, full outer join
  • ANSI : 테이블에 레코드가 있는 쪽을 join으로 선택한다

select

from 테이블명

[left | right | full] outer join 조인할테이블명

on 조인조건;

— 존재하는 모든 부서의 부서번호, 부서명, 위치, 사원번호, 사원명을 조회

select

from dept left outer join emp

left outer join emp

테이블에 레코드가 있는 쪽을 join으로 설정한다

Oracle outer join

조인조건에 ‘(+)’ 기호를 레코드가 없는 쪽에 붙인다

문법)

select 컬럼명.. 테이블명.컬럼명, alias 컬럼명

from 테이블명 alias, 조인할 테이블명 alias …

where 조인조건(alias.컬럼명(+)=alias.컬럼명)

self join

  • 테이블 하나를 조인 설정하는것
  • 테이블을 목적(값을 보여줄 목적테이블, 값을 비교할 목적의 테이블)에 따라 사용한다

select

from 테이블명 alias, 테이블명 alias

where 조인조건

— 사원 테이블에서 사원명이 ‘WARD’인 사원보다 연봉을 많이 수령하는 사원의 사원번호, 사원명, 연봉, 직무, 입사일을 조회

select e1.empno, e1.ename, e1.sal, e1.job, e1.hiredate

from emp e1, emp e2

where e1.sal > e2.sal and e2.ename = ‘WARD’;

  • join조건을 잘못 설정하면 모든 행이 조회되는 cartesian product이 발생할 수 있다

백업 : dump 만들기

(DBMS의 객체를 외부로 내보내는것)

DOS창에서 수행

exp.exe 사용

사용법) exp -help → 도움말이 나온다

  • 특정 테이블만 백업

exp userid=계정명/비번 tables=테이블명(공백,띄어쓰기없이 쓰기) file=파일명

  • 계정이 생성한 모든 객체 백업

exp userid = 계정명/비번 full=y file=파일명

복구 : dump를 사용한 객체 복구

imp.exe사용

백업한 계정으로 복구를 수행한다

같은 이름의 객체가 존재하면 복구되지 않는다

사용법) imp -help → 도움말 나온다

  • 특정 테이블만 복구

imp userid=계정명/비번 tables =복구할테이블명…file=백업파일명

  • 모든 객체를 복구

imp userid=계정명/비번 full=y file=복구파일명

--

--

김르르
김르르

Written by 김르르

0 Followers

르르입니다

No responses yet