기본 콘텐츠로 건너뛰기

1.02 SQL(Structured Query Language) (2)

SQL(Structured Query Language) (2)






<예시: c_emp, s_dept, sal_grade table>

0. Cartesian Product(카티션 곱)

 - 조인 시에 조건절을 적지 않게 되면 해당 테이블에 대한 모든 데이터를 가져옴
 - 조인 쿼리 중에 WHERE절에 기술하는 조인 조건이 잘못 기술된 경우
 - 조인 쿼리 중에 WHERE절에 기술하는 조인 조건이 없는 경우



<카디션 곱의 예>

 - SELECT c.name, s.dept_name FROM c_emp c, s_dept s;
 - WHERE 조건절이 제대로 부여되지 않아 모든 결과물이 다 출력되는 대 참사가 벌어짐

<WHERE 조건절을 제대로 부여하여 정상적으로 JOIN이 된 모습>


 - SELECT c.name, s.dept_name FROM c_emp c, s_dept s WHERE c.dept_id = s.id;
 - equi join의 사례

1. JOIN

1) equi join
 - 조건절에서 equal 연산자를 이용
 - 동일한 조건을 가진 선, 후행 테이블을 연결

2) non-equi join
 - 같은 조건이 아닌 크거나 작은 조건으로 조회를 해야할 경우
 - between ~ and ~ 이용
 - 비교연산자 이용

3) outer join
 - inner join과는 반대로 한쪽 테이블에는 데이터가 있으나 다른 테이블에는 데이터가 없을 때 데이터가 있는 쪽의 테이블 내용을 전부 출력하는 법
 - WHERE 조건절에서 데이터가 없는 쪽에 (+) 기호를 붙여야함

4) self join
 - join을 해야하는 상황에서 원하는 데이터가 하나의 테이블에 다 들어 있는 경우
 - 별명을 두 번 사용해서 일반적인 join을 사용