DROP TABLE Vuokraus ; DROP TABLE Nauha ; DROP TABLE Jakelija ; DROP TABLE Elokuva ; DROP TABLE Jasen ; CREATE TABLE Jasen ( JasenID INTEGER NOT NULL, Nimi VARCHAR(128) NOT NULL, Osoite VARCHAR(128) NOT NULL, LiittymisPVM DATE NOT NULL, CONSTRAINT Jasen_PK PRIMARY KEY (JasenID) ) ; CREATE TABLE Elokuva ( ElokuvaID INTEGER NOT NULL, Nimi VARCHAR(128) NOT NULL, Arvio INTEGER NOT NULL DEFAULT 1 CHECK (Arvio BETWEEN 1 AND 10), Vuokrahinta DOUBLE PRECISION NOT NULL DEFAULT 2 CHECK (Vuokrahinta BETWEEN 0.1 AND 20), CONSTRAINT Elokuva_PK PRIMARY KEY (ElokuvaID) ) ; CREATE TABLE Jakelija ( JakelijaID INTEGER NOT NULL, Nimi VARCHAR(128) NOT NULL, Osoite VARCHAR(128) NOT NULL, CONSTRAINT Jakelija_PK PRIMARY KEY (JakelijaID) ) ; CREATE TABLE Nauha ( NauhaID INTEGER NOT NULL, Ostopaikka INTEGER NOT NULL, Ostopaiva DATE NOT NULL, Ostohinta DOUBLE PRECISION NOT NULL CHECK (Ostohinta > 0), Elokuva INTEGER NOT NULL, CONSTRAINT Nauha_PK PRIMARY KEY (NauhaID), CONSTRAINT Nauha_FK_Jakelija FOREIGN KEY (Ostopaikka) REFERENCES Jakelija (JakelijaID) ON UPDATE CASCADE ON DELETE RESTRICT, CONSTRAINT Nauha_FK_Elokuva FOREIGN KEY (Elokuva) REFERENCES Elokuva (ElokuvaID) ON UPDATE CASCADE ON DELETE RESTRICT ) ; CREATE TABLE Vuokraus ( JasenID INTEGER NOT NULL, NauhaID INTEGER NOT NULL, VuokrausPVM DATE NOT NULL, PalautusPVM DATE NOT NULL, Palautettu DATE, Maksu DOUBLE PRECISION NOT NULL, CONSTRAINT Vuokraus_PK PRIMARY KEY (JasenID, NauhaID, VuokrausPVM), CONSTRAINT Vuokraus_FK_Jasen FOREIGN KEY (JasenID) REFERENCES Jasen (JasenID) ON UPDATE CASCADE ON DELETE RESTRICT, CONSTRAINT Vuokraus_FK_Nauha FOREIGN KEY (NauhaID) REFERENCES Nauha (NauhaID) ON UPDATE CASCADE ON DELETE RESTRICT ) ; INSERT INTO jasen (jasenid,nimi,osoite,liittymispvm) VALUES (2,'Tommi Lahtonen','Nörttikuja 3','1999-01-01') ; INSERT INTO jasen (jasenid,nimi,osoite,liittymispvm) VALUES (3,'Petri Heinonen','Kivakatu 2','1998-12-13') ; INSERT INTO jasen (jasenid,nimi,osoite,liittymispvm) VALUES (4,'Matti Meikäläinen','Meikämannentie 12','1999-02-15') ; INSERT INTO jasen (jasenid,nimi,osoite,liittymispvm) VALUES (5,'Maija Meikäläinen','Meikämannentie 12','1998-04-01') ; INSERT INTO jasen (jasenid,nimi,osoite,liittymispvm) VALUES (6,'Olli Opiskelija','Nörttikatu 15','2000-01-01') ; INSERT INTO jasen (jasenid,nimi,osoite,liittymispvm) VALUES (7,'Ville Vidiootti','Nörttikuja 3','1990-04-05') ; INSERT INTO jasen (jasenid,nimi,osoite,liittymispvm) VALUES (8,'Leila Leffafani','Leffatie 1','1990-01-01') ; INSERT INTO elokuva (elokuvaid,nimi,arvio,vuokrahinta) VALUES (1,'What women want',5,12) ; INSERT INTO elokuva (elokuvaid,nimi,arvio,vuokrahinta) VALUES (2,'Chocolat',6,12) ; INSERT INTO elokuva (elokuvaid,nimi,arvio,vuokrahinta) VALUES (3,'Enemy at the Gates',7,12) ; INSERT INTO elokuva (elokuvaid,nimi,arvio,vuokrahinta) VALUES (4,'Almost Famous',8,12) ; INSERT INTO elokuva (elokuvaid,nimi,arvio,vuokrahinta) VALUES (5,'Proof of life',9,15) ; INSERT INTO elokuva (elokuvaid,nimi,arvio,vuokrahinta) VALUES (6,'Crouching tiger, hidden dragon',10,20) ; INSERT INTO elokuva (elokuvaid,nimi,arvio,vuokrahinta) VALUES (7,'Gladiator',8,10) ; INSERT INTO elokuva (elokuvaid,nimi,arvio,vuokrahinta) VALUES (8,'Traffic',9,5) ; INSERT INTO elokuva (elokuvaid,nimi,arvio,vuokrahinta) VALUES (9,'Hannibal',9,5) ; INSERT INTO elokuva (elokuvaid,nimi,arvio,vuokrahinta) VALUES (10,'Remember the Titans',6,15) ; INSERT INTO elokuva (elokuvaid,nimi,arvio,vuokrahinta) VALUES (11,'Clockwork Orange',10,5) ; INSERT INTO jakelija (jakelijaid,nimi,osoite) VALUES (1,'Warner Bros','Hollywood') ; INSERT INTO jakelija (jakelijaid,nimi,osoite) VALUES (2,'20th Century Fox','Hollywood') ; INSERT INTO jakelija (jakelijaid,nimi,osoite) VALUES (3,'Disney','Amerikka') ; INSERT INTO jakelija (jakelijaid,nimi,osoite) VALUES (4,'UIP','Yhdysvallat') ; INSERT INTO jakelija (jakelijaid,nimi,osoite) VALUES (5,'Finnkino','Suomi') ; INSERT INTO nauha (nauhaid,ostopaikka,ostopaiva,ostohinta,elokuva) VALUES (2,2,'1990-01-01',100,2) ; INSERT INTO nauha (nauhaid,ostopaikka,ostopaiva,ostohinta,elokuva) VALUES (3,2,'1990-01-01',100,3) ; INSERT INTO nauha (nauhaid,ostopaikka,ostopaiva,ostohinta,elokuva) VALUES (4,2,'1990-01-01',100,4) ; INSERT INTO nauha (nauhaid,ostopaikka,ostopaiva,ostohinta,elokuva) VALUES (5,3,'1995-03-05',115,5) ; INSERT INTO nauha (nauhaid,ostopaikka,ostopaiva,ostohinta,elokuva) VALUES (6,3,'1995-03-05',115,6) ; INSERT INTO nauha (nauhaid,ostopaikka,ostopaiva,ostohinta,elokuva) VALUES (7,4,'1998-01-01',127,7) ; INSERT INTO nauha (nauhaid,ostopaikka,ostopaiva,ostohinta,elokuva) VALUES (8,4,'1998-08-05',123,8) ; INSERT INTO nauha (nauhaid,ostopaikka,ostopaiva,ostohinta,elokuva) VALUES (9,5,'1998-07-16',110,9) ; INSERT INTO nauha (nauhaid,ostopaikka,ostopaiva,ostohinta,elokuva) VALUES (10,5,'1998-07-16',150,10) ; INSERT INTO nauha (nauhaid,ostopaikka,ostopaiva,ostohinta,elokuva) VALUES (11,3,'1998-12-01',113,10) ; INSERT INTO nauha (nauhaid,ostopaikka,ostopaiva,ostohinta,elokuva) VALUES (12,3,'1997-01-15',100,9) ; INSERT INTO nauha (nauhaid,ostopaikka,ostopaiva,ostohinta,elokuva) VALUES (13,4,'1998-04-15',99,9) ; INSERT INTO nauha (nauhaid,ostopaikka,ostopaiva,ostohinta,elokuva) VALUES (14,5,'1999-01-01',137,9) ; INSERT INTO nauha (nauhaid,ostopaikka,ostopaiva,ostohinta,elokuva) VALUES (15,3,'1997-12-01',120,5) ; INSERT INTO nauha (nauhaid,ostopaikka,ostopaiva,ostohinta,elokuva) VALUES (16,4,'1998-07-02',100,4) ; INSERT INTO nauha (nauhaid,ostopaikka,ostopaiva,ostohinta,elokuva) VALUES (17,5,'1998-07-16',99,5) ; INSERT INTO nauha (nauhaid,ostopaikka,ostopaiva,ostohinta,elokuva) VALUES (18,2,'1999-01-01',114,5) ; INSERT INTO nauha (nauhaid,ostopaikka,ostopaiva,ostohinta,elokuva) VALUES (19,3,'1999-03-01',105,2) ; INSERT INTO vuokraus (jasenid,nauhaid,vuokrauspvm,palautuspvm,palautettu,maksu) VALUES (2,2,'2000-05-13','2000-05-14','2000-05-14',15) ; INSERT INTO vuokraus (jasenid,nauhaid,vuokrauspvm,palautuspvm,palautettu,maksu) VALUES (2,2,'2000-05-14','2000-05-15','2000-05-15',10) ; INSERT INTO vuokraus (jasenid,nauhaid,vuokrauspvm,palautuspvm,palautettu,maksu) VALUES (2,8,'2000-05-15','2000-05-16','2000-05-16',5) ; INSERT INTO vuokraus (jasenid,nauhaid,vuokrauspvm,palautuspvm,palautettu,maksu) VALUES (2,12,'2000-05-13','2000-05-14','2000-05-14',15) ; INSERT INTO vuokraus (jasenid,nauhaid,vuokrauspvm,palautuspvm,palautettu,maksu) VALUES (2,15,'2000-05-13','2000-05-14','2000-05-14',15) ; INSERT INTO vuokraus (jasenid,nauhaid,vuokrauspvm,palautuspvm,palautettu,maksu) VALUES (3,5,'2000-05-16','2000-05-17','2000-05-18',30) ; INSERT INTO vuokraus (jasenid,nauhaid,vuokrauspvm,palautuspvm,palautettu,maksu) VALUES (3,5,'2000-07-12','2000-07-13','2000-07-25',100) ; INSERT INTO vuokraus (jasenid,nauhaid,vuokrauspvm,palautuspvm,palautettu,maksu) VALUES (7,6,'2000-05-14','2000-05-15','2000-05-15',10) ; INSERT INTO vuokraus (jasenid,nauhaid,vuokrauspvm,palautuspvm,palautettu,maksu) VALUES (7,6,'2000-05-17','2000-05-18','2000-05-20',30) ; INSERT INTO vuokraus (jasenid,nauhaid,vuokrauspvm,palautuspvm,palautettu,maksu) VALUES (7,7,'2000-05-13','2000-05-14','2000-05-14',15) ; INSERT INTO vuokraus (jasenid,nauhaid,vuokrauspvm,palautuspvm,palautettu,maksu) VALUES (7,7,'2000-05-20','2000-05-21',NULL,10) ; INSERT INTO vuokraus (jasenid,nauhaid,vuokrauspvm,palautuspvm,palautettu,maksu) VALUES (7,8,'2000-05-13','2000-05-14','2000-05-14',25) ; INSERT INTO vuokraus (jasenid,nauhaid,vuokrauspvm,palautuspvm,palautettu,maksu) VALUES (7,8,'2000-05-25','2000-05-26','2000-05-26',10) ; INSERT INTO vuokraus (jasenid,nauhaid,vuokrauspvm,palautuspvm,palautettu,maksu) VALUES (7,9,'2000-05-13','2000-05-14','2000-05-14',15) ; INSERT INTO vuokraus (jasenid,nauhaid,vuokrauspvm,palautuspvm,palautettu,maksu) VALUES (7,9,'2000-05-26','2000-05-27','2000-05-27',10) ; INSERT INTO vuokraus (jasenid,nauhaid,vuokrauspvm,palautuspvm,palautettu,maksu) VALUES (8,6,'2000-05-13','2000-05-14',NULL,10) ; INSERT INTO vuokraus (jasenid,nauhaid,vuokrauspvm,palautuspvm,palautettu,maksu) VALUES (8,6,'2000-06-13','2000-06-14','2000-06-14',10) ;