DATABASE 2 - MySQL

테이블 분리하기

--
-- Table structure for table `author`
--


CREATE TABLE `author` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(20) NOT NULL,
  `profile` varchar(200) DEFAULT NULL,
  PRIMARY KEY (`id`)
);

--
-- Dumping data for table `author`
--

INSERT INTO `author` VALUES (1,'egoing','developer');
INSERT INTO `author` VALUES (2,'duru','database administrator');
INSERT INTO `author` VALUES (3,'taeho','data scientist, developer');

--
-- Table structure for table `topic`
--

CREATE TABLE `topic` (
  `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`)
);

--
-- Dumping data for table `topic`
--

INSERT INTO `topic` VALUES (1,'MySQL','MySQL is...','2018-01-01 12:10:11',1);
INSERT INTO `topic` VALUES (2,'Oracle','Oracle is ...','2018-01-03 13:01:10',1);
INSERT INTO `topic` VALUES (3,'SQL Server','SQL Server is ...','2018-01-20 11:01:10',2);
INSERT INTO `topic` VALUES (4,'PostgreSQL','PostgreSQL is ...','2018-01-23 01:03:03',3);
INSERT INTO `topic` VALUES (5,'MongoDB','MongoDB is ...','2018-01-30 12:31:03',1);

댓글

댓글 본문
  1. 윤윤윤윤윤
    왜자꾸 렉이 걸리는 거져
  2. 윤윤윤윤윤
    lsoin 님 저랑 같은 상황이신데 밑에 복붙하고나서 영상따라서 하니 중복이 된거같네요
  3. 안녕하세요 지금 author 테이블과 topic의 테이블을 위에 있는 문자들을 복사하여 실행시키고 있는데 INSERT INTO author(id, name, profile) VALUES(1, 'egoing', 'developer'); 를 실행시키면 ERROR 1062 (23000): Duplicate entry '1' for key 'PRIMARY' 가 뜹니다 구글링을 해보니 primary key가 반복되어 있으면 안된다고 1이 반복되어서 안되는 거라고 뜨는데 왜 영상은 되고 전 왜 안되는지 궁금합니다
  4. 2022.02.02
  5. 드림보이
    2022.01.29. DATABASE2 - MySQL - 테이블 분리하기 파트 수강완료
  6. 코딩뽀시래기
    2022.01.26.수
  7. mirpia
    study
  8. heesang300
    2022.01.10 수강
  9. 2022.01.10.수강
  10. 210829 completed prep for JOIN Exercise.
  11. Kangmin Kim
    2021.8.3
  12. 2021.08.01
  13. snoopy_thon
    21.07.06
  14. snoopy_thon
    21.07.06
  15. Pisces
    21.06.11
  16. 달려라자전거
    2021.05.18.
  17. 감사합니다
  18. CUBEP
    2021-04-11
  19. jwoh
    21-03-26
  20. jeisyoon
    2021.03.06 - OK
  21. chimhyangmoo
    21.03.04
  22. 마아앙
    2021.02.15
  23. 밀키
    2021.02.13 수강 완료
  24. 불닭볶음면
    2021. 01. 24
  25. 이나라
    21.01.22
  26. Noah
    2021.01.10 완료!
  27. 생활둘기
    2021 1 1
  28. kkn1125
    20.12.18 완료~!
  29. 웹짱
    2020.12.09 author, topic2 기초데이터 INSERT 완료
  30. 바부대지
    20.11.20
  31. 콜라
    20201018 완료
  32. JIEUN
    9/22 수강완료
  33. 유동균
    화이팅!
  34. jiyeong
    2020.08.29.
  35. Jonghwo Lee
    완료
  36. 은하파파
    완료. 2020-08-26
  37. クレヨンしんちゃん
    ㅇㄹㅇㄹ
  38. 김준태
    ERROR 1062 (23000): Duplicate entry '1' for key 'author.PRIMARY'

    아이디값 부여 할때 이렇게 뜨는데 왜그러는지..
  39. 완료!!
  40. 흰색두부김치
    완료
  41. Amousk
    좋은 강의 감사합니다.
  42. 쑤우
    완료. 감사합니다~
  43. 개발개발개발
    감사합니다 ㅎㅎ
    대화보기
    • 테이블 분리하기

      RENAME TABLE topic TO topic_backup; //테이블 이름 변경
    • jaehyunlee
      05/30 고3 완료
    • CrashOverride
      한 줄 한 줄 정갈하게 INSERT 하기 귀찮으신 분들을 위해 ㅎㅎ..

      이번 수업 초입의 rename topic to topic_backup 쿼리를 수행하여 이전 수업들을 통해 만드셨던 기존의 topic 테이블의 이름을 topic_backup으로 바꾸셨고

      새로운 author와 topic 테이블까지 만들어 두셨다는 가정 하에

      아래 두 개의 쿼리를 각각 실행해보시면 필요한 데이터들이 한방에 짜잔 하고 만들어지는 것을 보실 수 있을 겁니다.

      원래 INSERT 문에서 사용하던 VALUES를 포함한 이후 나오는 구문 대신 SELECT 문을 사용하여
      B 테이블의 데이터를 조회하여 A 테이블에 INSERT하는 SELECT~INSERT 기법을 사용한 방법이고

      아래 첫번째 쿼리에서 DISTINCT 라는 키워드는 중복된 row를 제거한 데이터를 보기 위해 사용하는 구문인데
      이런 부분이야 뭐 항상 이고잉님 께서 말씀하시는 바와 같이 나중에 저런 구문을 능숙하게 다루어야 할 때가 오면
      그 때 따로 수련을 쌓으시는 것을 추천해드리고 지금은 그냥 따라해 보세요.

      그리고 두번째 쿼리의 JOIN이야 뭐 바로 다음 수업에서 배울 거니까 이것도 그냥 따라해 보시고요. ㅎㅎ


      INSERT INTO author (name, profile) SELECT DISTINCT author, profile FROM topic_backup;

      INSERT INTO topic (title, description, created, author_id) SELECT t.title, t.description, t.created, a.id FROM topic_backup AS t JOIN author AS a ON t.author = a.name;
    • Lucas Trowman
      완료!
    • OneJae EE
      20.04.24 금 / 37세 비전공자 / 완료
    • 한강
      굿모닝~~!!!^^ 200422
    • Kinb
      감사합니다!
    버전 관리
    egoing
    현재 버전
    선택 버전
    graphittie 자세히 보기