왜 관계형 데이터베이스가 필요한가.
중복이 되면 개선할 것이 있다고 본다. 그래서 중복 가능이 있는 데이터를 테이블로 다시 만들어서 관리한다. 그럼 유지 보수할 때에 만들어 놓은 테이블을 바꾸면 다 바뀐다.
MySQL은 데이터를 분산해서 저장하고 보여줄 땐 합쳐서 보여준다.
우선, 만들어놨던 테이블은 이름을 바꿔준다.
RENAME TABLE 테이블명 TO 바꿀이름;
1. 테이블 분리하기
CREATE TABLE article (
`id` int(11) NOT NULL AUTO_INCREMENT,
`title` varchar(30) NOT NULL,
`description` text,
`created` datetime NOT NULL,
`author_id` int(11) DEFAULT NULL,
PRIMARY KEY (`id`)
);
/////////////////////////////////
INSERT INTO article VALUES (1,'MySQL','MySQL is...',NOW(),1);
INSERT INTO article VALUES (2,'Oracle','Oracle is ...',NOW(),1);
INSERT INTO article VALUES (3,'SQL Server','SQL Server is ...',NOW(),2);
INSERT INTO article VALUES (4,'PostgreSQL','PostgreSQL is ...',NOW(),3);
INSERT INTO article VALUES (5,'MongoDB','MongoDB is ...',NOW(),1);
////////////////////////////////
CREATE TABLE author (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(20) NOT NULL,
`profile` varchar(200) DEFAULT NULL,
PRIMARY KEY (`id`)
);
/////////////////////////////////
INSERT INTO `author` VALUES (1,'ukcasso','developer');
INSERT INTO `author` VALUES (2,'vendit','database administrator');
INSERT INTO `author` VALUES (3,'kim','data scientist, developer');
2. 테이블 합쳐서 보여주기
SELECT * FROM 테이블명1 LEFT JOIN 테이블명2 ON 합칠 기준;
SELECT * FROM article LEFT JOIN author ON article.author_id = author.id;
여기서 author_id와 id값을 안나타내고 싶다면
SELECT article.id,title,description,created,name,profile FROM article LEFT JOIN author ON article.author_id = author.id;
* 대신에 호출할 표 제목들을 써준다. 그리고 표 제목들을 다른 이름으로 바꿔서 나타내고 싶다면
SELECT article.id AS article_id,title,description,created,name,profile FROM article LEFT JOIN author ON article.author_id = author.id;
이런식으로 AS 를 쓴 후 바꿔줄 이름을 넣어준다.
'학습노트 > 데이터베이스' 카테고리의 다른 글
[MySQL] MySQL Workbench 설치방법 (오류 MySQL Workbench 8.0 CE Setup Wizard ended prematurely 해결 방법) (0) | 2020.09.25 |
---|---|
[MySQL] MySQL Client(monitor, Workbench) (0) | 2020.09.25 |
[MySQL] CRUD (0) | 2020.09.25 |
[MySQL] 테이블 생성 (0) | 2020.09.18 |
[MySQL] 데이터베이스 서버 속, 데이터베이스(스키마) 생성 (0) | 2020.09.17 |