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쌍 이상 존재하면 사용 못함
- select stu_no, stu_name, stu_dept, stu_grade
- Join ~ Using
- select stu_no, stu_name, stu_dept, stu_grade
from student join enrol using(stu_no)
- select stu_no, stu_name, stu_dept, stu_grade
- Join ~ on
- select stu_no, stu_name, stu_dept, stu_grade
from student join enrol on student.stu_no = enrol.stu_no
- select stu_no, stu_name, stu_dept, stu_grade
- NATURAL JOIN
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;