지난번 작성한 포스팅(하단 URL 참조)에서 조인의 두가지 방식이 왜 공존하는지 어떤 차이가 있는지에대해 명확히 설명을 하지 못했다. 이후 동료 개발자님의 조언으로 알게되었다. 그래서 추가로 공부해서 알게된 내용을 정리하겠다.
Tibero ] Outer Join의 또 하나 (+) 의 의미
통계쪽 업무를 진행하다 Where 절에서 '컬럼명(+)' 이렇게 붙어있는 생소한 문법을 보았다. Outer Join과 비슷한 기능을 하는 것 같다. 정확히 (+)가 무엇을 의미하는 지 정리하겠다. 내가 알고있던 Oute
jfbta.tistory.com
ANSI(American National Standards Institute)는 '미국 국립 표준 협회'로 SQL 표준 문법을 지정하였는데 그것이 ANSI 쿼리 문법이다.[ex) LEFT OUTER JOIN ON] 보통 ANSI문법을 많이 쓰는 것 같다. 그러나 편의에 따라 DBMS에서 제공하는 쿼리 문법을 사용하는 경우가 있는데 이것이 바로 (+)조인 문법인 Oracle Join이다.
그렇다면 왜 Oracle에서는 별도의 조인문법을 개발한 것일까?
그것은 ANSI 조인을 좀 더 편리하게 쓰려고 개발한 것은 틀림없다.
게다가 Oracle Join은 ANSI에 비해 코드의 수가 줄어들기 때문에는 이 관점에서는 낫다고 볼 수 있다.
하지만 아래 유튜브 영상(11:32)을 보면 ANSI는 FROM절 과 WHERE절을 더 명확하게 구분하기 때문에 가독성이 좋고 통상적으로 어떤 데이터베이스에서도 ANSI를 사용하기 때문에 확장성도 좋다. 게다가 ANSI는 FULL OUTER JOIN이 가능하지만 Oracle은 불가능하다.
이런 관점에서 볼 때 과연 Oracle Join이 과연 편리할까?
관점에따라 편의성이 달라지므로 사용하는 몫은 개발자들에게 있다.
※ 포스팅을 하는데 참조한 자료
https://tragramming.tistory.com/74
[Join] ANSI Join & Oracle Join, Join의 종류
지난 Join의 정의 및 문법에 관한 포스팅에 이어 ANSI Join & Oracle Join, Join의 종류에 대해 이야기하고자 한다. ANSI Join vs ORACLE Join SQL은 데이터베이스를 관리하기 위해 만들어진 프로그래밍 언어이며,
tragramming.tistory.com
https://www.youtube.com/watch?v=LEEyBd4n_50
'DataBase > Oracle' 카테고리의 다른 글
시퀀스(Sequence) NEXTVAL 과 MAX+1의 사용방법 및 차이 (0) | 2021.12.01 |
---|---|
oracle, tibero ] WHERE IN 데이터 입력 순서대로 정렬하기 (0) | 2021.11.24 |
데이터활용 ] 시작 및 종료 날짜 데이터 중복체크 하는 방법 (0) | 2020.06.19 |