SQL

join

NaZZU 2024. 10. 8. 14:49

cross 조인

  • 크로스 조인은 관게 대수가 가지는 8가지 연산 중 카티션 프로덕트를 구현함
  • 2개 이상의 테이블을 조건 없이 실행하는 조인 연산

SELECT *
FROM STUDENT CROSS JOIN ENROL;

Equi 조인 

  • 2개 이상의 테이블에 관련있는 공통 열의 값을 이용하여 논리적으로 결합하는 연산이 수행되는 조인
    • NATURAL JOIN
      • select stu_no, stu_name, stu_dept, stu_grade
        from student natural join enrol;
      • 두 테이블에 같은 열의 이름이 2쌍 이상 존재하면 사용 못함
    • Join ~ Using
      • select stu_no, stu_name, stu_dept, stu_grade
        from student join enrol using(stu_no)
    • Join ~ on
      • select stu_no, stu_name, stu_dept, stu_grade
        from student join enrol on student.stu_no = enrol.stu_no

 

Non-Equi 조인

  • where 절에서 사용하는 '=' 이 아닌 연산자를 사용
  •  select empno, ename, sal, grade
     from salgrade, emp
     where sal between losal and hisal

 

SELF 조인

  • 같은 테이블 간의 조인, 테이블의 별칭을 사용함
  • select a.empno as 사원번호, a.ename as 사원이름,b.empno as 상급자사원번호, b.ename as 상급자이름
    from emp a, emp b
    where a.mgr = b.empno; 
  • join ~ on 만 사용 가능
  • select a.empno as 사원번호, a.ename as 사원이름, b.empno as 상급자사원번호, b.ename as 상급자이름
    from emp a join emp b on a.mgr = b.empno;