SQLD 2주차 학습 내용 (with 이기적 수험서)

고태경·2025년 2월 16일
0
post-thumbnail

오늘은 SQL 활용에 대해 공부하고 연습 문제를 푸는 시간을 가졌습니다 !
그리고 SQLD의 꽃 조인을 집중적으로 학습하였습니다 :)

<공부 내용>
조인 (R-DB의 이유)

  • 상호 특성 관련성을 갖는 '두 개' 이상의 테이블로부터 새로운 테이블을 생성하는데
    사용되는 연산 (중복을 허용하는 부분)
  • 관계시스템이 갖는 가능 강력한 특징, 디자인과 관련이 있음 (non-equi join)
  • 정규화를 거친 각 테이블은 분리되어 다른 테이블과의 결합이 필요
    -> 열의 관계성을 유도하여 결합됨

조인의 종류

  • cross 조인 (카티션 프로덕트) : 조건 없이 실행
  • equi 조인 : 관련 있는 공통 열의 값을 논리적으로 결합 (중복의 문제, 동일 속성은 테이블.속성)
    where 절 없이 from절 안에서 끝남, 기본적인 조인 !!!!! (99%)
    - natural join : 테이블.속성X, 속성 이름이 같은게 두 개면 불가 (기준은 하나!)
    - join ~ using() : 테이블.속성X, 다른 속성끼리 엮으면 사용 불가
    - join ~ on : on에 where절 쓰기, 양쪽이 다를 때,,,
    제일 가독성이 좋아서 많이 쓰는 듯함
  • Non-equi 조인 (실무 X) : where절에 = 사용을 안하는 경우
  • self 조인 : 같은 테이블 간의 조인, 테이블 별칭 필수 – 설계와 관련 있음 (join on)
  • outer 조인 : 조인 조건을 만족하지 않는 행들도 질의 결과에 포함함
    (right outer, left outer, full outer)

ex)
cross 조인 :
select from student cross join enrol;
equi 조인 :
1) select
from student, enrol
where student.stu_no = enrol.stu_no;
2) select from student natural join enrol natural join subject;
3) select
from student join enrol using(stu_no) join enrol using(sub_no);
4) select * from student join enrol on student.stu_no = enrol.stu_no
join subject on student.stu_no = subject.stu_no;

Non-equi 조인 : select empno, ename, sal, grade
from emp, salgrade
where sal between losal and hisal; 예시가 이것 뿐,, 실무 X

Self 조인 :select a.empno as 사원번호, a.ename as 사원이름,
b.empno as 상급자사원번호, b.ename as 상급자이름
from emp a, emp b
where a.mgr = b.empno; (no 공통 칼럼, king 은 없겠쥬)

outer 조인 : select a., b.sub_no, sub_name
from enrol a right outer join subject b
on a.sub_no = b.sub_no
order by 1; + where a.sub_no is null;
and > or
SELECT a.empno AS 사원번호, a.ename AS 사원이름,
b.empno AS 상급자사원번호, b.ename AS 상급자이름
FROM emp a
LEFT OUTER JOIN emp b ON a.mgr = b.empno
WHERE a.mgr IS NULL OR b.empno IS NULL;

profile
컴퓨터정보과

0개의 댓글

관련 채용 정보