8章 データベースの操作2
8.4 テーブルの結合
8.4.2 テーブル:booksの作成
CREATE TABLE books( id INT AUTO_INCREMENT, isbn CHAR(13) DEFAULT '' NOT NULL, title TEXT NOT NULL, publisher VARCHAR(50) DEFAULT '' NOT NULL, year INT DEFAULT 0 NOT NULL, price INT DEFAULT 0 NOT NULL, CONSTRAINT id_pri PRIMARY KEY (id), CONSTRAINT isbn_unq UNIQUE (isbn) ) ENGINE=InnoDB;
8.4.3 書籍データの入力
第1版では『プログラミング作法』の価格が5940円になっていますが、そのまま読み進めてかまいません。
INSERT INTO books VALUES (1,'9784756144119','The Art of Computer Programming 1','アスキー',2004,10290); INSERT INTO books VALUES (2,'9784756142818','フリーソフトウェアと自由な社会','アスキー',2003,3360); INSERT INTO books VALUES (3,'9784894711631','計算機プログラムの構造と解釈','ピアソンエデュケーション',2000,4830); INSERT INTO books VALUES (4,'9784756136497','プログラミング作法','アスキー',2000,2940); INSERT INTO books VALUES (5,'9784756140845','ハッカーズ大辞典','アスキー',2002,3990);
8.4.3.1 テーブル:creatorsの作成
CREATE TABLE creators( id INT AUTO_INCREMENT, name VARCHAR(50) NOT NULL, CONSTRAINT id_pri PRIMARY KEY (id) ) ENGINE=InnoDB;
creators.txtのためのLOAD文
LOAD DATA LOCAL INFILE "creators.txt" INTO TABLE creators;
8.4.3.2 書籍とクリエイターの対照テーブル
CREATE TABLE bookCreator( id int AUTO_INCREMENT, bookId INT NOT NULL, creatorId INT NOT NULL, role VARCHAR(10) DEFAULT '' NOT NULL, CONSTRAINT id_pri PRIMARY KEY (id), CONSTRAINT book_fky FOREIGN KEY (bookId) REFERENCES books(id), CONSTRAINT creator_fky FOREIGN KEY (creatorId) REFERENCES creators(id) ) ENGINE=InnoDB;
INSERT INTO bookCreator (bookId,creatorId) VALUES (1,1), (1,2), (1,3), (1,4), (1,5), (1,6), (1,7), (2,8), (2,7), (3,9), (3,10), (3,11), (3,3), (4,12), (4,13), (4,14), (5,15), (5,14), (5,16);
