* Cartesian products
-> 조인 조건이 설정되어 있지 않은 경우라든지 조인 조건이 유효하지 않은 경우에 오라클에서 내부적으로 처리하는 조인 방식. Cartesian products는 테이블 조인이 사용되지 않는 경우에 실행된다고 생각하면 편하다. 현재 emp 테이블에는 14개의 로우 데이터가 저장되어 있고 dept 테이블에는 4개의 로우 데이터가 저장되어있는 상태이다. Cartesian products
의 결과가 주는 의미는 모든 테이블의 로우 데이터들을 모두 조합시킨 값이기 때문에 사실 매우 약하다.
* Equi 조인
-> Equi 조인은 보통 테이블을 조인할 때 사용하게 되는 기본적인 조인 방법이다. Where 조건절에 임의의 컬럼을 지정하는 경우 양쪽의 테이블에 공통으로 존재하는 컬럼을 비교하게 되는데 이때 '='를 사용하는 경우이다. Equi 조인은 대부분의 경우 Primary key와 Foreign key를 조인시키는 경우에 자주 사용
* 테이블 alias를 사용하는 조인
-> 일반적으로 테이블 alias는 테이블을 조인할 경우 각각의 테이블 이름보다는 해당하는 alias를 사용함으로써 전체적인 SQL 문장 처리의 효율을 증가시키기 위해 사용.(보다 작은 SQL 문장을 사용함으로써 메모리로부터의 부담을 줄임)
-> 테이블 alias를 사용할 때 alias의 길이가 30 문자까지 가능하지만 가급적이면 짧게 설정해주는 것이 좋으며 alias 자체가 테이블 이름을 연상시킬 수 있도록 의미 있는 alias를 설정해주는 것이 좋다. 일단 한 번 생성된 alias는 현재 사용하고 있는 Select 문장 내에서만 유효하다.
* Non-equi 조인
-> Equi 조인(조인시 Where 절에 = 를 사용하는)인 경우를 제외한 모든 조인의 경우가 Non-equi 조인에 포함.
* Outer 조인
-> 조인 조건이 Where 절에 주어지게 되면 쿼리에 의하여 출력될 수 있는 결과는 당연히 그 조인 조건을 만족시킨다. 그러므로 그 조건에 만족하지 않는 로우 데이터는 출력되지 않는다. loc 컬럼의 결과에는 모든 정보가 출력되어 있지 않다. 그러므로 두 개의 테이블이 조인하려고 할 때 조인의 기준이 되고 있는 loc 컬럼에 데이터가 누락되어 있거나 널 값이 존재하게 되면 조인은 실패로 돌아가며 누락된 loc 컬럼 값을 가지고 있지 않은 로우는 출력되지 않는다.
-> 누락된 정보를 출력하기 원할 때 Outer 조인을 적용한다. 이처럼 Outer 조인을 적용할 때는 (+) 사인을 사용한다. (+) 사인은 데이터가 부족한 테이블 쪽에서 붙혀주면 된다. emp 테이블에 존재하지 않음에도 불구하고 마치 존재하는 것처럼 출력되어 있다는 사실을 알 수 있다.
* (+) 사인은 반드시 한쪽에만 붙을 수가 있다. 테이블 양쪽 동시에 사용 불가능
* Outer 조인을 적용하는 경우에는 IN 연산자 또는 OR 연산자와 함께 사용 불가능
* Self 조인
-> Self 조인은 그 의미대로 조인을 하는데 제3의 다른 테이블과 조인하는 것이 아니라 자기 테이블로 자기 자신이 조인하는 것이라고 볼 수가 있다.
'Operating System > ORACLE' 카테고리의 다른 글
[ORACLE] 커밋(Commit)과 롤백(Rollback) (0) | 2022.02.09 |
---|---|
[ORACLE] DML (With Check Option) (0) | 2022.02.08 |
[ORACLE] Date 데이터 타입에 대한 출력 형식 (0) | 2022.02.04 |
[ORACLE] 조건부 함수 ( Case, Decode ) (0) | 2022.02.04 |
[ORACLE] sys, system 패스워드 변경 방법 (0) | 2022.01.19 |