: 한개 이상의 테이블에서 데이터를 조회하기 위해서 사용하는 함수이다.
SELECT empNo, deptNo
FROM employee
ORDER BY deptNo;
SELECT depName
FROM department
WHERE deptNo = 20;
employee 테이블과 depatment 테이블을 합쳐서 볼 수 없다.
:조인 대상이 되는 두테이블에서 공통적으로 존재하는 컬럼의 값이 일치되는
행을 연결하여 결과를 생성하는 조인방법을 의미한다.
일반적인 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를 통해 축약할 수 있다.
SELECT empName, salary, grade
FROM employee, salGrade;
SELECT empName, salary, grade
FROM employee, salGrade
WHERE salary BETWEEN lowSal AND highSal;
BETWEEN AND
를 적용해야 등급이 매겨지는 것을 볼 수 있다.
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;
: 자기 자신의 테이블을 JOIN하는 것을 의미한다.
--SELF 조인 : 자기 자신의 테이블을 조인하는 것을 의미
SELECT *
FROM EMPLOYEE;
--특정사원의 직속상관을 알아보기
SELECT E1.empName AS '사원이름', E2.empName AS '직속상관'
FROM employee E1, employee E2
WHERE E1.manager = E2.empNo;
같은
employee
여도E1
과 동일하게 설정한 후 쿼리를 실행할 시 결과가 제대로 추출되지 않는다.
따라서employee
를E1
과E2
로 각각 지정하여 쿼리를 작성한다.
강의: ms sql 2014 제대로 배우기 1