본문 바로가기

DataBase/MySQL

[MySQL] 관계형 데이터베이스

어떠한 작업을 하더라도 중복되는 구문에 대해서 처리를 하지 않는다면 불편함을 느낄 수 밖에 없다.

만일 중복되는 구문이 1000개라면 수정을 하게되면 1000번의 반복 작업을 거쳐야 할 것이다.

따라서 우리는 이러한 구문을 따로 묶어 처리를 하여 1번의 작업만으로 1000개의 모든 구문이 한꺼번에 처리될 수 있도록 한다.

 

데이터베이스 역시 마찬가지이다.

지금까지 예시로 들어왔던 강의 정보라면, 같은 강의명인 경우도 있고 같은 교수의 강의인 경우도 있다.

이러한 중복을 해결하기 위해 강의명 테이블, 교수명 테이블 등 테이블의 분리를 수행하게 된다.

 

테이블 분리

다음과 같은 테이블을 살펴보면 교수명에 중복이 있음을 확인할 수 있다.

이를 해결하기 위해 일단 다음과 같이 변경된 테이블을 생성한다.

name대신 name_id라는 필드를 이용해 구분을 할 것이며

기존의 name은 name이라는 table을 새로 만들어 여기에 저장할 것이다.

위처럼 두 개의 테이블로 분리시키고 둘의 연결만 해주게 된다면 name table의 값만 변경해도 test2 table에서는 여러개의 데이터 변화가 일어나는 효과를 가질 수 있다.

 

JOIN

두 테이블을 서로 연결시키기 위한 방법으로 JOIN을 사용할 수 있다.

 

SELECT * FROM (table name) LEFT JOIN (table name2) ON (연결할 column); 을 통해 연결할 수 있다.

이제 name_id와 id는 조회할 때 의미가 없으므로 제외한다.

제외할때 병합된 table에서 표기할 name이 두가지 이므로 test2.id를 AS문을 통해 다른 이름으로 바꾸도록한다

 

 

.

'DataBase > MySQL' 카테고리의 다른 글

[MySQL] ERROR 1044 (42000): Access denied for user  (0) 2024.03.29
[MySQL] CRUD  (0) 2024.01.12
[MySQL] MySQL의 구조  (0) 2024.01.11