JINWOOJUNG

[ DB ] 데이터베이스...8(SQL...4) 본문

Database

[ DB ] 데이터베이스...8(SQL...4)

Jinu_01 2024. 10. 12. 17:38
728x90
반응형

본 포스팅은 인하대학교 최원익교수님의 "데이터베이스설계" 수업에서 진행한 프론트, 백엔드 실습 관련 정리하는 포스팅입니다. 백엔드, 프론트엔드는 전문 분야가 아니기에 공부용으로 올리는 포스팅이며 오류사항이 있을 수 있습니다.

 

https://jinwoo-jung.tistory.com/106

 

[ DB ] 데이터베이스...7(SQL...3)

본 포스팅은 인하대학교 최원익교수님의 "데이터베이스설계" 수업에서 진행한 프론트, 백엔드 실습 관련 정리하는 포스팅입니다. 백엔드, 프론트엔드는 전문 분야가 아니기에 공부용으로 올리

jinwoo-jung.com

 


 

이때까지 배운 Join, In, Exists를 NULL이 포함된 Tuple을 가지는 아래의 두 테이블 t1, t2를 기반으로 다양한 예제를 풀어보자. 기본적인 해설은 이전 포스팅에서 진행하였으며, 주의해야 할 부분만 간략하게 살펴보자. 

 

 

  • select * from t1 where id in ( select id from t2 )

 

  • select * from t1 where id not in ( select id from t2 )

 

  • select * from t1 where id not in ( select id from t2 where id is not null)

 

  • select * from t1 where exists ( select * from t2 )

 

  • select * from t1 where exists ( select * from t2 where t1.id = t2.id )

 

  • select * from t1 where not exists ( select * from t2 where t1.id = t2.id )

 

  • Select * from t1, t2 where t1.id = t2.id

 

  • Select * from t1 natural join t2

 

  • Select * from t1 left join t2 on t1.id=t2.id

 

  • Select * from t1 natural left join t2

 

  • Select * from t1 right join t2 on t1.id=t2.id

 

  • Select * from t1 natural right join t2

 

  • Select * from t1 right join t2 on t1.id=t2.id;

 


 

Join 연산의 경우 두 Table의 Attribute Name이 같아야 비교 연산이 진행된다. 

 

 

  • select * from t1 natural join t3;

 

공통인 name Attribute의 값이 같은 것이 없으므로 Empty가 반환된다.

 

그렇다면 name Attribute 값이 같은 Tuple을 추가하면 결과가 어떻게 나올까?

 

 

이때, 반환되는 Column의 순서에 주의하자. 공통인 Column이 가장 앞으로 오고, t1 Table과 t2 Table의 나머지 Column이 순서데로 반환된다.

728x90
반응형