Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- Eclipse
- Scanner
- 상속
- Java
- 자료구조
- SpringBoot
- 배열
- Array
- jquery
- Board
- 문자열
- html
- spring
- JDBC
- React
- Database
- 조건문
- string
- View
- MVC
- mysql
- Thymeleaf
- rpa
- jsp
- API
- 이클립스
- Uipath
- Oracle
- Controller
- db
Archives
- Today
- Total
유정잉
Oracle [ 테이블 분해 , 조립 , JOIN ] 본문
- ' 1 '은 읽기, 눈에 보기 좋은데 수정하기가 일일히 해야해서 굉장히 힘듦.
- 그래서 ' 2 ' ' 3 ' 처럼 분해를 해서 표를 쪼개면 name 과 profile 내용이 바뀔 때 author의 내용만 바꿔주면 되니까 수정이 쉬움.
- 그런데 표를 분해하면 ' 1 ' 보다 읽기가 너무 불편해짐. ' 2 ' 의 author_id 1를 확인하고 ' 3 ' 의 id 1 은 egoing 과 developer를 일일히 확인해야함.
- 그래서 ' 1 '이 읽기가 좋고 ' 2 ' ' 3' 이 쓰기가 좋음.
- trade-off 둘다 존재하는 이유. 최종적으로 ' 1 ' ' 2 ' ' 3 ' 장점과 단점을 합성하여 최적의 조건으로 바꿈 - > join 결합
- 잘 분리하고 순간순간 필요할 때 마다 조립해서 join을 하는 것 -> 관계형 database 의 정말 중요한 기본
JOIN ! 처음 작성할 때는 수정하기 편하게 쪼개서 작성하지만 이것을 읽을 때는 결합 된것 처럼 보게 하는 명령어 !
SELECT * FROM topic LEFT JOIN author ON topic.author_id + author.id ;
- SELECT * FROM topic 이렇게 하면 topic 만 가져옴.
- LEFT JOIN author 는 토픽테이블 가져오는데 토픽테이블 각각의 행 옆에다가 어써테이블을 붙임. 근데 이렇게만 하면 무엇을 붙일지를 모름.
- ON topic.author_id + author.id 첫번째 행 옆에다가 어써테이블을 붙이는데 id 1 을 붙여야 하니까 토픽테이블과 어써테이블의 아이디가 같은 걸 붙여야함. 즉, 어써의 왼쪽을 기준으로 해서 오른쪽에 테이블을 붙인다.
- 토픽테이블이 왼쪽에 있기 때문에 left 라고 정의해주고 테이블을 붙여주되 막 붙이는게 아닌 특정한 조건에 따라 테이블을 붙여주는데 그것이 on .
728x90
'Database > Oracle' 카테고리의 다른 글
Oracle [ sql JOIN ] (0) | 2024.02.16 |
---|---|
Oracle [ SQL Developer ] (0) | 2024.02.15 |
Oracle [ SEQUENCE ] (1) | 2024.02.14 |
Oracle [ 행의 식별자 PRIMARY KEY ] (0) | 2024.02.14 |
Oracle [ 행 수정 , 행 삭제 ] (1) | 2024.02.14 |