Database : Basic SQL문(3) - JOINS 유형 및 구분


< Database : Basic SQL(3) >

조인을 사용하여 여러 테이블의 데이터 표시
1. JOINS 유형 및 구문
– NATURAL JOIN 절
– USING 절
– ON 절

1) 조인을 사용하여 둘 이상의 테이블에서 데이터를 합칩니다

첫 번째 방법) join + where 문장 해보기 (2개의 테이블을 통해 원하는 col을 볼 수 있습니다.)
select  empno, ename, d.deptno, e.deptno, loc, dname
from    emp1 e, dept1 d
where  e.deptno = d.deptno; 
<중요>
* table의 alias를 쓰기 위해서는 from, select, where 절 등 다 alias를 써야합니다.
* deptno은 emp1테이블에도 dept1테이블에도 존재하기 때문에 에러가 난다. 여러테이블에 중복된 칼럼을 가진 부분을 선택을 할때는 어느 테이블에서 갔고올 것인지 지정해주어야만 합니다. 그러기 위해 where 라는 문장을 통해 조건을 알려주는 것은 필수입니다.
* join 조건 절 : where는 'WHERE Table.col 연산자 Table2.col (여러개의 비교해야하는 칼럼에서 중복되는 것만을 뽑고싶다.)
* join은 널 값은 제외하고 비교한다.
두 번째 방법)  natural join 문장 해보기 (natural join은 '='의 기능을 수행합니다.)

select  emp1.empno, ename, deptno, loc, dname
from    emp1 natural join dept1;

* join에 참여하는 칼럼에는 접두어를 쓸 수 없지만 아닌 경우는 emp1.empno처럼 쓸 수 있습니다.
*natural join은 두 테이블의 칼럼의 형태(숫자, 날짜, 문자)가 같아야 합니다.
세 번째 방법)  join Table using  (join에 참여하는 col)
select emp1.empno, ename, deptno, loc, dname
from   emp1 join dept1 using(deptno);
네 번째 방법)  join Table on (table.col = table.col) 을 사용해야 합니다.
select emp1.empno, ename, emp1.deptno, loc, dname
from   emp1 join dept1
on dept1.deptno = emp1.deptno;
* join Table on은 select에 원하는 col에 접두어를 써야합니다. (현업에서 안씀)
<참고>
*sql - select 문장*
SELECT
=> 칼럼에 대한 속성이 다르다. 단일과 그룹이 있을 경우에는 반드시 group by를 지정 해야합니다.
ex> department_id, avg(salary) 일 경우.
FROM
WHERE
=> 조건문 : 단일함수(col)와 연산자 값
GROUP BY
=> SELECT에서 그룹핑 해야 할 데이터를 묶어주기
HAVING
=> 조건문 : 그룹함수(col)와 연산자 값
ORDER BY
=> 오름차순(DESC), 내림차순

댓글

이 블로그의 인기 게시물

4. Databricks - Azure Data Lake Storage Gen2 연동하기

3. Azure Databricks Secret으로 Blob Storage Mount

1. Azure Databricks CLI 설치하기