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. 김준태
    ERROR 1062 (23000): Duplicate entry '1' for key 'author.PRIMARY'

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

      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
    • 감사합니다!
    • bigman
      감사합니다.
    • wombat
      03/23/20 학습완료!
    • 희진
      감사합니다
    • Goreng
      감사합니다.
    • crazylion
      감사합니다.
    • 매리미
      헉... 테이블을 분리하는 걸 일일이 수작업으로..
    • 반달곰
      감사합니다.^^
    • 감사합니다!
    • 마가레또
      20191203 완료
    • 완료
    • Ram Lee
      완료
    • 20191008 Ted 완료!
    • 굼벵이
      완료
    • Ray Kim
      제가 직접 만들어 보고 싶었지만... 방학이 거의 다 끝나가서 ㅠㅠ
    • 고잉고잉
      테이블을 만들 때 DEFAULT 옵션으로 NULL 을 주셨는데, 특별한 이유가 있을까요?
      DEFAULT NULL 옵션을 주지 않아도 NOT NULL을 주지 않았기 때문에 NULL 값이 허용되는 것 아닌가요?
    • 윤현
      감사합니다!
    • 위준우
      완료
    • 허공
      190508 감사합니다.
    • incursio
      감사합니다
    • supernet
      감사합니다.
    • 라또마니
      감사합니다.
    • 지미츄
      감사합니다
    • johnAhn
      감사합니다.
    • 게케게케
      감사합니닷
    • JuicyFresh
      감사합니다.
    • seoulee
      테이블을 분리한다는 개념
      완료,
    • sdalbsoo
      감사합니다. 2018.12.28.
    • 닐반
      2018. 12. 22.
    • Aaron Soon Woo Kwon
      완료
    • Gihoon Pomme Ryu
      완료. 고맙습니다.
    • 오고잉
      수업하다가 들어보는건데 재밌네요
    • 삼고잉
      분리된 두 테이블을 생성하고 각 테이블에 정보를 삽입해서 조인을 하기위한 준비가 완성되었네요
    • 외래키이이이
      외래키에 대한 설명은 없을까요 혹시,,,,,,,, 외래키가 너무 이해가 안되어서..........
    • 두군
      영상에서는 topic, id 등을 그냥 입력하셨는데 예시에는 'topic', 'id' 이렇게 표시하셨는데 어떤 차이가 있는 거고 이유가 무엇인가요?
    • 반자동
      그렇군요
    • 유닉스가이
      감사합니다.
    • nekisse
      다른 cdm창에서 mysql접속후 use 데이터베이스명; 을 다시 지정해주셔야해요
      대화보기
      버전 관리
      egoing
      현재 버전
      선택 버전
      graphittie 자세히 보기