from a,b 이런식으로 하면 cartesian product 이를 방지하기위함
기본연산자 두개로 구현가능하기에 파생연산자이다.
Natural Join을 통해 ID가 같은 애들끼리 이어 붙일 수 있다.
join은 카티시언 프로덕트를 하고 공통된 어트리 뷰트가 일치하는 경우에만 일치하게 된다. Natrual을 실행하면 공통으로 가지고 있는 attribute를 확인하고 서로 일치하는 것만 나오게 함
Natrual 겹치는 attribute가 여러개면 모두가 다 겹쳐야지만 됨
여러번 사용할때 주의 해야한다. 무분별히 사용하지말고
이렇게 가공된 정보에 정보를 거르면 된다.
Join types | 정보의 손실 |
---|---|
inner join | 손실 |
Left outer join | 왼쪽 방지 |
Right outer join | 오른쪽 방지 |
Full outer join | 양쪽 방지 |
Join condition | 내용 |
---|---|
natural | 겹치는 항목에 대해서 이어붙인다. |
on 조건식 | 뒤에 조건식 ~~조건 만족 Join 하겠다. |
using (1,2,..,n) | 어떠한 어트리뷰트를 사용해서 join하겠다 |
사용자에게 모든 테이블을 보여주지 않게 하기 위해 사용
전체 내용은 숨기고 특정유저에게 테이블을 전달할때.
따로 저장하진 않는다.
view 생성법
create view v as 질의문
*예시 *
create view A as select ID,name< dept_name from instrutor
사용법
select name from A where dept_name ='Biology'
이런 코드가 있을 때 view 는 가상이기에
로해석 되서 사용된다.
view 는 query문만 남을 때 까지 계속해서 반복해서 바꾸어 해석 되고 sql문이 실행된다.Materialized Views
실체화된 뷰로 물리적으로 view 를 저장하기 위해 사용됨
이는 꾸준히 관리해야함 추가 됐는데 원래 테이블에 추가가 안돼서 이후 업데이트떄도 신경써야하는 맥락