본문 바로가기
데이터베이스/MySQL

[생활코딩] 8. MySQL - JOIN / 인터넷과 데이터베이스

by 닉우 2020. 8. 1.

<JOIN>

 

JOIN을 사용함으로써 분리된 테이블을 읽을때

마치 하나의 테이블로 애초에 저장 되어있던걸로 보일수가 있다.

 

 

author 테이블에 있는 행을 가져와서 topic테이블에 붙일거다.

SELECT * FROM topic LEFT JOIN author;

이렇게 막연하게 두 테이블을 join하라고 하면 에러가 난다. 조건이 필요하다.

'topic.author_id 와 author.id가 같으니까 합쳐줘' 라는 조건을 달고 명령을 내려야된다.

근데 author_id 와 id 값은 보기 싫으니까 지워버리자.

에러가 나는 이유는 topic도 id가 있고, author도 id가 있으니까,

mysql 입장에서는 애매하다는거다.

그럴때는 topic의 id라는것을 명시해주면 된다.

저 id를 topic_id로 변경할 수도 있다.

 

위쪽이 옛날버젼이고, 아래쪽이 우리가 이번에 배운 버젼이다. topic 테이블은 글쓰기와 관련된거고, comment 테이블은 댓글들을 저장하는 테이블이다.

이미지 위쪽의 옛날버젼에서 duru 라는 사람의 profile을 developer로 바꾸려고 한다면,

topic에서 duru라고 하는 사람의 데이터를 바꿔야될뿐만 아니라 

topic이 아닌 comment 테이블의 데이터까지 바꿔야한다.

 

아래쪽 버젼에서는 author 테이블에서 duru라는 인물의 정보를 바꾸면 topic과 commemt 테이블까지 영향을 준다.

즉, 테이블을 분리한다는 것은 author의 id와 일치하는 모든 테이블과 join을 통해서 얼마든지 관계를 맺을수가 있다.

 

duru의 profile을 database administrator로 바꾸려면 다음과 같이 입력한다.

저 부분 하나를 바꾸니까 다른 테이블들도 바뀌었다.


<인터넷과 데이터베이스>

 

MySQL은 내부적으로 인터넷을 활용할수있게한 시스템이다.

데이터베이스 서버의 의미를 알아보자.

인터넷이 동작하기 위해서는 컴퓨터 두 대가 필요하다. (세 대면은 본질적이지 않다.)

인터넷이라는 의미는 컴퓨터간의 사회가 만들어진것이다.

한 대의 컴퓨터가 가지고 있는 한계를 초월한것이 된다.

 

인터넷 위에서 동작하는 컴퓨터들은 정보를 요청하는쪽과 응답하는쪽으로 나뉘게된다.

MySQL은 설치시 동시에 두개의 프로그램을 설치해준다.

(데이터베이스 클라이언트, 서버)

데이터베이스 서버에는 실제로 데이터가 저장이 되고,

클라이언트를 통해서 데이터베이스 서버에 접속할수가 있다.

 

저 monitor가 데이터베이스 클라이언트 중에 하나이다.

데이터베이스 서버에 데이터를 저장하고 전세계에 있는 수많은 데이터베이스 클라이언트들이

저 데이터베이스를 중심으로 데이터를 넣고 빼는것이 가능해진다.

 


 

 

 

 

 

 

 

 

 

 

 

 

※ 본 포스팅은 개인 공부 기록을 목적으로 남긴 글이며 본 사실과 다른 부분이 있다면 과감하게 지적 부탁드립니다.

댓글