728x90
관계형 데이터베이스의 꽃 JOIN
각각 독립적인(분리된) 테이블을 읽을 때, 그 테이블이 하나의 테이블로 저장되어 있었던 것과 같은 효과.
테이블과 테이블을 JOIN 하기 위해서는, 데이터베이스가 어떠한 목적을 가지고 있는지를 말할 수 있어야 한다.
SELECT * FROM topic LEFT JOIN author ON topic.author_id = author.id;
topic 테이블의 author_id 값과, author테이블의 id 값이 같다
SELECT topic.id, title, description, created, name, profile FROM topic LEFT JOIN author ON topic.author_id = author.id;
행을 보기 편하게 바꾸고 싶을 때,,
//오류
SELECT id, title, description, created, name, profile FROM topic LEFT JOIN author ON topic.author_id = author.id;
//정상 출력
SELECT topic.id, title, description, created, name, profile FROM topic LEFT JOIN author ON topic.author_id = author.id;
열에 id란 값이 2개 중복되므로 id->topic.id 로 열 구분을 해줘야함
정확히 어디의 id 인지 구분을 해주어야함.
//topic.id AS topic_id, AS를 이용해 이름 변경하여 출력 가능
SELECT topic.id AS topic_id, title, description, created, name, profile FROM topic LEFT JOIN author ON topic.author_id = author.id;
AS 사용 : topic.id AS topic_id
정보 기술에서 중복을 제외 한다는 것은 매우 중요!
테이블을 분리한다는 것은 관계성을 높일 수 있다.
테이블이 특정 식별자를 가지고만 있다면, JOIN을 통해 얼마든지 관계를 맺을 수 있다.
create table comment (
id int(11) not null auto_increment,
description varchar(130) null,
author_id int(11) null,
primary key (id)
);
insert into comment (id, description, author_id)
VALUES (1, 'mysql is awesome', 1);
insert into comment (id, description, author_id)
VALUES (2, 'postgres is awesome', 1);
insert into comment (id, description, author_id)
VALUES (3, 'I wanna be skilled-full back end developer', 2);
insert into comment (id, description, author_id)
VALUES (4, 'I wanna study more', 1);
select comment.id as comment_id, description, name, profile from comment left join author on comment.author_id = author.id;
COMMENT 테이블 생성
SELECT * FROM comment LEFT JOIN author ON comment.author_id = author.id;
UPDATE author SET profile='database administrator' WHERE id = 2;
테이블의 분리를 통해 여러번 변경할 필요 없이 하나를 바꾸면 전체가 바뀐다
### JOIN은 관계형 데이터베이스를 관계형 데이터베이스 답게 만드는 명령어 ###
'@@@ SQL > 생활코딩 - Database' 카테고리의 다른 글
11. MySQL 클라이언트 (19) (0) | 2021.08.16 |
---|---|
10. 인터넷과 데이터베이스 (18) (0) | 2021.08.16 |
8. 테이블 분리하기 (16) (0) | 2021.08.16 |
7. 관계형데이터베이스의 필요성 (15) (0) | 2021.08.16 |
6. CRUD - Update, Delete (12~13) (0) | 2021.07.18 |