본문 바로가기

RDB

(2)
SQL - JOIN 이해하기 JOIN Join이란 두 개 이상의 테이블을 서로 묶어서 하나의 결과 집합으로 만들어 내는 것을 말한다. 데이터베이스의 테이블은 중복과 공간 낭비를 피하고 데이터의 무결성을 위해서 여러 개의 테이블로 분리하여 저장한다. 그리고 이 분리 된 테이블들은 서로 관계를 맺고 있다. 보통 PK 또는 FK로 두 테이블을 연결함 INNER JOIN(내부 조인) INNER JOIN은 JOIN 중에서 가장 많이 사용되는 JOIN이다. 교집합이라고 많이 설명한다. 여기서 교집합이라는 것은, 특정 조건에 맞는 행들만 포함시키고 그렇지 않은 행들은 제외시킨다는 뜻이다. --형식 SELECT FROM INNER JOIN ON WHERE 검색조건 OUTER JOIN(외부 조인) OUTER JOIN은 조인의 조건에 만족되지 않는 ..
SQL - [NOT] IN과 [NOT] EXISTS의 차이 1. EXISTS : 단순히 EXISTS 절의 결과 존재 유무만으로 T/F 반환 메인 쿼리 EXISTS(서브 쿼리) : 서브 쿼리의 결과가 " 한 건이라도 존재하면" TRUE 없으면 FALSE를 리턴한다. 먼저 메인쿼리에 접근하여 하나의 레코드를 가져오고 그 레코드에 대해서 EXISTS 이하의 서브쿼리를 실행하고 서브쿼리에 대한 결과가 '존재하는지'를 확인한다. EXISTS는 서브 쿼리에 일치하는 결과가 한 건이라도 있으면 쿼리를 더 이상 수행하지 않는다. IN은 서브쿼리 결과를 모두 수행하고, EXISTS는 일치하는 결과가 있으면 더 이상 수행하지 않는다(반대로 EXISTS는 메인쿼리의 레코드는 모두 순회한다) 서브 쿼리 테이블(dept_history)에 데이터량이 많으면 EXISTS를 사용하는것이 성..