/* libraryデータベースを作成して以下のSQLを流し込んでください 最後のview( V_利用者毎貸出し履歴)で表示されるデータは21件あります */ DROP VIEW V_利用者毎貸出し履歴; DROP TABLE T_作者 CASCADE; DROP TABLE T_利用者 CASCADE; DROP TABLE T_発行所 CASCADE; DROP TABLE T_書籍 CASCADE; DROP TABLE T_共著 CASCADE; DROP TABLE T_貸出し履歴 CASCADE; CREATE TABLE T_利用者 (利用者電話番号 CHAR(12) NOT NULL, 氏名 VARCHAR(20) NOT NULL, 所属 VARCHAR(20), PRIMARY KEY (利用者電話番号)) ; CREATE TABLE T_作者 (作者id SERIAL NOT NULL, 作者名 VARCHAR(20) NOT NULL, PRIMARY KEY (作者id)) ; CREATE TABLE T_発行所 (発行所id SERIAL NOT NULL, 発行所名 VARCHAR(20) NOT NULL, 郵便番号 CHAR(8), 住所 VARCHAR(50), 電話番号 CHAR(12), PRIMARY KEY (発行所id)) ; CREATE TABLE T_書籍 (ISBNコード CHAR(17) NOT NULL, 書名 VARCHAR(50) NOT NULL, 発行所id INT NOT NULL, 初版発効日 DATE, 金額 INT, 冊数 INT, PRIMARY KEY (ISBNコード), FOREIGN KEY (発行所id) REFERENCES T_発行所 ON DELETE RESTRICT ON UPDATE RESTRICT) ; CREATE TABLE T_共著 (ISBNコード CHAR(17) NOT NULL, 作者id INT NOT NULL, 共著区分 VARCHAR(10) NOT NULL, PRIMARY KEY (ISBNコード,作者id), FOREIGN KEY (ISBNコード) REFERENCES T_書籍 ON DELETE RESTRICT ON UPDATE RESTRICT, FOREIGN KEY (作者id) REFERENCES T_作者 ON DELETE RESTRICT ON UPDATE RESTRICT) ; CREATE TABLE T_貸出し履歴 (履歴番号 INT NOT NULL, ISBNコード CHAR(17) NOT NULL, 利用者電話番号 CHAR(12) NOT NULL, 貸出日 DATE, 返却日 DATE, 貸出冊番 INT, PRIMARY KEY (履歴番号), FOREIGN KEY (ISBNコード) REFERENCES T_書籍 ON DELETE RESTRICT ON UPDATE RESTRICT, FOREIGN KEY (利用者電話番号) REFERENCES T_利用者 ON DELETE RESTRICT ON UPDATE RESTRICT) ; insert into T_利用者 values('03-1234-5678','山田隆','営業'); insert into T_利用者 values('045-123-4567','鈴木紀子','技術'); insert into T_利用者 values('045-641-6282','坂口明','管理'); insert into T_利用者 values('045-666-7777','伊吹香奈枝','経理'); insert into T_発行所 values(1,'日経BP出版センター','102-8622','東京都千代田区平河町2-7-6','03-5210-8043'); insert into T_発行所 values(2,'日刊工業新聞社','102-8181','東京都千代田区九段北1-8-10','03-3222-7131'); insert into T_発行所 values(3,'オーム社','101-8460','東京都千代田区神田錦町3-1','03-3233-0641'); insert into T_発行所 values(4,'株式会社ソフト・リサーチ・センター','169','東京都新宿区高田馬場1-31-18','03-5272-6418'); insert into T_発行所 values(5,'ソフトバンクパブリッシング株式会社','103','東京都中央区日本橋箱崎町24-1','03-5642-8101'); insert into T_作者 values(1,'内山悟志'); insert into T_作者 values(2,'小林博美'); insert into T_作者 values(3,'平尾隆行'); insert into T_作者 values(4,'トム・デマルコ'); insert into T_作者 values(5,'高梨智弘'); insert into T_作者 values(6,'黒田純一郎'); insert into T_作者 values(7,'中根甚一郎'); insert into T_作者 values(8,'鶴沢偉伸'); insert into T_書籍 values('ISBN4-274-07880-9','わかりやすいSQL',3,'2000/3/25',2800,1); insert into T_書籍 values('ISBN4-526-01747-7','総合化MRPシステム-設計と導入-',2,'1984/7/20',3900,1); insert into T_書籍 values('ISBN4-7973-0166-X','WindowsNT4.0システム管理入門(基礎編)',5,'1999/10/1/',1748,3); insert into T_書籍 values('ISBN4-7973-0234-8','WindowsNT4.0システム管理入門(活用編)',5,'1999/3/25',2000,1); insert into T_書籍 values('ISBN4-8227-1004-1','構造化分析とシステム仕様',1,'1986/12/5',2718,5); insert into T_書籍 values('ISBN4-915778-62-2','わかりやすいデータベース設計技法',4,'1995/10/25',2600,1); insert into T_共著 values('ISBN4-274-07880-9',3,'著者'); insert into T_共著 values('ISBN4-526-01747-7',7,'編著'); insert into T_共著 values('ISBN4-7973-0166-X',8,'著者'); insert into T_共著 values('ISBN4-7973-0234-8',8,'著者'); insert into T_共著 values('ISBN4-8227-1004-1',4,'著者'); insert into T_共著 values('ISBN4-8227-1004-1',5,'監訳'); insert into T_共著 values('ISBN4-8227-1004-1',6,'監訳'); insert into T_共著 values('ISBN4-915778-62-2',1,'著者'); insert into T_共著 values('ISBN4-915778-62-2',2,'著者'); insert into T_貸出し履歴 values(1,'ISBN4-526-01747-7','03-1234-5678','1998/7/7','1998/8/7',null); insert into T_貸出し履歴 values(2,'ISBN4-526-01747-7','045-123-4567','1998/9/7','1998/10/7',null); insert into T_貸出し履歴 values(3,'ISBN4-8227-1004-1','045-666-7777','1999/1/10','1999/12/11',1); insert into T_貸出し履歴 values(4,'ISBN4-274-07880-9','045-666-7777','1999/1/10',null,null); insert into T_貸出し履歴 values(5,'ISBN4-7973-0234-8','045-666-7777','1999/1/10',null,null); insert into T_貸出し履歴 values(6,'ISBN4-8227-1004-1','045-666-7777','1999/12/25',null,1); insert into T_貸出し履歴 values(7,'ISBN4-7973-0166-X','03-1234-5678','1998/7/7','1998/8/7',1); insert into T_貸出し履歴 values(8,'ISBN4-915778-62-2','03-1234-5678','2000/2/2','2001/2/2',null); insert into T_貸出し履歴 values(10,'ISBN4-8227-1004-1','03-1234-5678','1999/12/12','1999/12/13',1); insert into T_貸出し履歴 values(11,'ISBN4-8227-1004-1','03-1234-5678','1999/12/12',null,2); insert into T_貸出し履歴 values(15,'ISBN4-7973-0166-X','045-123-4567','1999/12/20',null,2); insert into T_貸出し履歴 values(17,'ISBN4-526-01747-7','045-666-7777','2001/6/23','2002/10/26',null); insert into T_貸出し履歴 values(18,'ISBN4-526-01747-7','045-666-7777','2001/6/23',null,null); insert into T_貸出し履歴 values(23,'ISBN4-8227-1004-1','03-1234-5678','2001/10/3','2002/10/23',1); insert into T_貸出し履歴 values(28,'ISBN4-8227-1004-1','03-1234-5678','2002/10/26','2002/10/25',3); insert into T_貸出し履歴 values(29,'ISBN4-8227-1004-1','03-1234-5678','2002/10/26',null,4); insert into T_貸出し履歴 values(32,'ISBN4-8227-1004-1','03-1234-5678','2002/10/26',null,5); insert into T_貸出し履歴 values(34,'ISBN4-8227-1004-1','03-1234-5678','2002/10/26',null,3); insert into T_貸出し履歴 values(38,'ISBN4-7973-0166-X','045-666-7777','2002/10/26',null,1); insert into T_貸出し履歴 values(47,'ISBN4-7973-0166-X','045-666-7777','2002/10/26',null,2); insert into T_貸出し履歴 values(49,'ISBN4-7973-0166-X','045-666-7777','2002/10/26',null,3); CREATE VIEW V_利用者毎貸出し履歴 AS SELECT T_貸出し履歴.利用者電話番号, T_利用者.氏名, T_利用者.所属, T_貸出し履歴.ISBNコード, T_書籍.書名, T_発行所.発行所名, T_貸出し履歴.貸出日, T_貸出し履歴.返却日, T_貸出し履歴.貸出冊番 FROM T_発行所 INNER JOIN (T_利用者 INNER JOIN (T_書籍 INNER JOIN T_貸出し履歴 ON T_書籍.ISBNコード = T_貸出し履歴.ISBNコード) ON T_利用者.利用者電話番号 = T_貸出し履歴.利用者電話番号) ON T_発行所.発行所ID = T_書籍.発行所ID ORDER BY T_貸出し履歴.利用者電話番号; create user "03-1234-5678"; alter user "03-1234-5678" with password '0312345678'; create user "045-666-7777"; alter user "045-666-7777" with password '0456667777'; create user "045-123-4567"; alter user "045-123-4567" with password '0451234567'; create user "045-641-6282"; alter user "045-641-6282" with password '0456416282'; grant select on V_利用者毎貸出し履歴 to public;