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을 사용