Oracle Database

표를 분해하고, 조립하기 - JOIN

수업소개

하나의 거대한 표는 여러가지 문제를 가지고 있습니다. 이런 문제를 해결하기 위해서는 주제에 따라서 표를 분해해야 합니다. 또 분해한 표를 필요에 따라서 조립해서 거대한 표처럼 보이게 할 수 있어야 합니다. 이 수업에서는 오라클의 표를 분해하고, 조립하는 방법을 소개합니다.

 

 

강의 1

 

 

 

 

강의2

 

 

 

강의3

 

 

 

강의4

SELECT 
    T.id TOPIC_ID, 
    title, 
    name 
FROM topic T
    LEFT JOIN author A 
    ON T.author_id = A.id
WHERE
    T.id = 1
;

 

댓글

댓글 본문
  1. 집게사장
    JOIN은 테이블들을 결합하여 데이터를 조회하는 SQL 명령어다. 이를 통해 각 테이블의 장단점을 고려하여 원하는 정보를 효과적으로 얻을 수 있다. SELECT [원하는 데이터] FROM [기준 테이블] LEFT JOIN [추가 테이블] ON [연결 조건];
  2. 당당
    2023.04.29
  3. MelonMusk
    08/13
  4. wonki
    통째로 만든 테이블의 단점 (쓰기불편) 과 나누어진 테이블의단점(읽기불편) 을 해결하기위해 join 명령어를 사용하여 서로의 단점을 보완할수있게되었다
  5. 초보 코딩
    JOIN은 서로 각기 떨어져 있는 테이블이 언제나 늘 같이 있었던 것처럼 서로 붙여주는 환상적인 기술이다...?
  6. Andrew
    조인은 쪼개어진 테이블을 마치 하나의 테이블을 조회하는 것처럼 결과값을 나타내게 한다. 테이블 A와 테이블 B에 동일한 값을 가진 컬럼이 있으면 가능하다.

    아래는 ANSI 방식의 JOIN명령이다.
    SELECT * FROM topic LEFT JOIN author ON ( topic.author_id = author.id )
  7. Alex
    210828
    Before Using JOIN, we should think the situation why we apply JOIN strategy.
    -1. with adding new columns, the table will include many data and we can read.
    -2. in case 1, we divide into two table, but we cannot easily to read.
    In this situation , we need the way to show selecting one table left-joining new table.
    Join strategy, key point is that there is co-value ; foreign key (ex author_id) : t.author_id = author_id.
  8. jini
    각각의 표들이 쪼개어진 상태로 저장되어있는데,
    표를 읽을 때는, 결합되어진 것처럼 읽는다.

    특정목적에 따라 표를 읽을 때, Select문 사용시 아래와 같이 Join을 사용한다.
    SELECT * From topic LEFT JOIN author ON topic.author_id = author.id;
  9. 벌써 끝일리가 없는데/...
  10. CUBEP
    데이터의 입력의 편의를 위해서 테이블을 분리한다.
    'JOIN'을 통해서 테이블들을 결합하여 보기 편하게 만든다.
  11. chimhyangmoo
    21.03.15
  12. 자바보
    표 수정의 편의를 위해 분리 시켜놓았던 표들을
    조인을 통해 병합시키므로써 뷰와 수정의 장점을 동시에 가질 수 있다
  13. qoeqpeqoeoq
    궁금한게 있습니다. 저는 TOAD를 사용 중인데, SQL 디벨로퍼와 달라서 그런지는 모르겠지만

    조인 할때는 조인 조건문을 꼭 ON을 걸어야 할까요?

    실무에서는 WHERE에 걸어서 사용 중인데

    ON과 WHERE의 차이가 어떤 것인지 궁금합니다.

    아시는 분은
    sun1408@kakao.com
    으로 회신 주시면 감사하겠습니다.
  14. qoeqpeqoeoq
    제가 생각한 것을 정리하여 공유합니다.

    데이터베이스에서 테이블에 정보가 너무 많은 경우(컬럼이 많은 경우), 데이터 베이스의 연산 능력이 저하될 수 있다. 그래서 데이터베이스를 여러 개의 테이블로 쪼개게 된다. 하지만 쪼개개 되었을 때, 수정 또는 추가(입력)할 때는 편리하나, 읽기(READ)의 방식에는 매우 불편하다. 그러므로 관계형 데이터베이스(RDBMS)에서는 JOIN이라는 방법으로 테이블을 서로 엮어 보여준다(VIEW)
  15. Asanagi
    하나의 테이블에서 중복된값을 다른테이블로 나눠야 하는 이유: 행이 극단적으로 많아지면, 현실적으로 한번에 편집이 불가능 하기때문.

    하지만 테이블을 분리하면, 쓰기는 편하나, 보기에는 가독성이 매우 떨어지기 때문에, 이런 불편을 극복하기 위해 관계형 DB는 JOIN이라는 아주 아름다운 기능이 있음.
  16. 피고백
    최고!
  17. bigman
    감사합니다.

    topic 테이블 왼쪽에 topic 테이블의 Author_id 와 Author테이블의 id가 같은 author 테이블을 결합시킨다.

    SELECT T.title, T.id, T.description, T.author_id as T_a_id FROM topic T
    LEFT JOIN author a
    ON T.author_id = a.id
  18. GOD IS GOOD
    topic 테이블 옆에 author 테이블의 정보를 보여줘 라고 오라클에 명령합니다!

    Topic 테이블이 왼쪽에 있기 때문에 left 라고 정의해주고 테이블을 붙여주되 막 붙이는게 아닌 특정한 조건에 따라 테이블을 붙여주는데 그것이 on 입니다!

    궁금한것은!!!

    Select * from topic a
    Inner join author b
    On a.authoe_id = b.id

    이 명령과 다른가요.. ㅜ
    언제나 조인은 어렵습니다.. 다 이해했다고 자신만만하게 사용하면 항상 무자비한 셀렉 결과가 리턴됩니다 ㅜㅜㅜ

    (사실 전 파즈 시켜놓고 inner join을 했는데 .. left join이 나와서 당황했습니다.. 이번기회에 잘 배우고 가겠습니다!ㅣ