JOIN

Hyuntae Jung·2022년 7월 25일
0

MS SQL

목록 보기
16/41
post-thumbnail
post-custom-banner

1. JOIN

: 한개 이상의 테이블에서 데이터를 조회하기 위해서 사용하는 함수이다.

SELECT empNo, deptNo
  FROM employee
 ORDER BY deptNo;


SELECT depName
  FROM department 
WHERE deptNo = 20;

employee 테이블과 depatment 테이블을 합쳐서 볼 수 없다.

2. INNER JOIN, OUTER JOIN, SELF JOIN, CROSS JOIN

2.1. INNER JOIN(내부조인)

:조인 대상이 되는 두테이블에서 공통적으로 존재하는 컬럼의 값이 일치되는
행을 연결하여 결과를 생성하는 조인방법을 의미한다.

일반적인 JOIN의 개념하면 INNER JOIN을 의미한다.

SELECT *
  FROM employee, department
 WHERE employee.deptNo = department.deptNo;

SELECT *
  FROM employee, department
 WHERE employee.deptNo = department.deptNo


SELECT  empName, depName
  FROM employee, department
 WHERE employee.deptNo = department.deptNo
    AND empName = '김관우';

SELECT employee.empName, department.depName, employee.deptNo
  FROM employee, department
WHERE employee.deptNo = department.deptNo
	AND employee.empName = '강길동';

SELECT emp.empName, dept.depName, emp.deptNo
  FROM employee AS emp, department AS dept
WHERE emp.deptNo = dept.deptNo
	AND emp.empName = '김관우';

Python에서

import pandas as pd

와 같이 AS를 통해 축약할 수 있다.

2.2. 동일한 Column이 없는 경우에 JOIN

SELECT empName, salary, grade
  FROM employee, salGrade;

SELECT empName, salary, grade
  FROM employee, salGrade
WHERE salary BETWEEN lowSal AND highSal;

BETWEEN AND를 적용해야 등급이 매겨지는 것을 볼 수 있다.

2.3. 3개 테이블의 JOIN

SELECT E.empName, D.depName, S.grade
  FROM employee AS E, department AS D, salGrade AS S
WHERE E.deptNo = D.deptNo
	AND E.salary BETWEEN S.lowSal AND S.highSal;

2.4. SELF JOIN

: 자기 자신의 테이블을 JOIN하는 것을 의미한다.

--SELF 조인 : 자기 자신의 테이블을 조인하는 것을 의미
SELECT *
  FROM EMPLOYEE;

--특정사원의 직속상관을 알아보기

SELECT E1.empName AS '사원이름', E2.empName AS '직속상관'
  FROM employee E1, employee E2
WHERE E1.manager = E2.empNo;

같은 employee여도 E1과 동일하게 설정한 후 쿼리를 실행할 시 결과가 제대로 추출되지 않는다.
따라서 employeeE1E2로 각각 지정하여 쿼리를 작성한다.

강의: ms sql 2014 제대로 배우기 1

post-custom-banner

0개의 댓글