alter session set NLS_DATE_FORMAT = 'YYYYMMDD'; CREATE TABLE kniha ( id INTEGER NOT NULL, nazev VARCHAR2(30 CHAR) NOT NULL ) LOGGING; ALTER TABLE kniha ADD CONSTRAINT kniha_pk PRIMARY KEY ( id ); CREATE TABLE vypujcka ( datum DATE NOT NULL, kniha_id INTEGER NOT NULL, zakaznik_id INTEGER NOT NULL ) LOGGING; ALTER TABLE vypujcka ADD CONSTRAINT vypujcka_pk PRIMARY KEY ( kniha_id,zakaznik_id,datum ); CREATE TABLE zakaznik ( id INTEGER NOT NULL, jmeno VARCHAR2(30 CHAR) NOT NULL ) LOGGING; ALTER TABLE zakaznik ADD CONSTRAINT zakaznik_pk PRIMARY KEY ( id ); ALTER TABLE vypujcka ADD CONSTRAINT vypujcka_kniha_fk FOREIGN KEY ( kniha_id ) REFERENCES kniha ( id ) NOT DEFERRABLE; ALTER TABLE vypujcka ADD CONSTRAINT vypujcka_zakaznik_fk FOREIGN KEY ( zakaznik_id ) REFERENCES zakaznik ( id ) NOT DEFERRABLE; Insert into Zakaznik (ID, Jmeno) values (0,'karel'); Insert into Zakaznik (ID, Jmeno) values (1,'martin'); Insert into Zakaznik (ID, Jmeno) values (2,'petr'); Insert into Zakaznik (ID, Jmeno) values (3,'pepa'); Insert into Zakaznik (ID, Jmeno) values (4,'martin'); Insert into Kniha (ID, Nazev) values (0,'temno'); Insert into Kniha (ID, Nazev) values (1,'svetlo'); Insert into Kniha (ID, Nazev) values (2,'svejk'); Insert into Kniha (ID, Nazev) values (3,'kladivo na carodejnice'); Insert into Kniha (ID, Nazev) values (4,'lakomec'); Insert into Vypujcka (datum, kniha_ID, zakaznik_id) values ('20170210',0,0); Insert into Vypujcka (datum, kniha_ID, zakaznik_id) values ('20170210',1,0); Insert into Vypujcka (datum, kniha_ID, zakaznik_id) values ('20170210',2,0); Insert into Vypujcka (datum, kniha_ID, zakaznik_id) values ('20170210',3,0); Insert into Vypujcka (datum, kniha_ID, zakaznik_id) values ('20170210',1,1); Insert into Vypujcka (datum, kniha_ID, zakaznik_id) values ('20170210',3,2); Insert into Vypujcka (datum, kniha_ID, zakaznik_id) values ('20170210',2,2); --1) Vypište zákazníky se jménem martin, kteří si půjčili knihu select DISTINCT id,jmeno from zakaznik inner join vypujcka on id = zakaznik_id where jmeno = 'martin'; --2) vypište zákazníky, kteří si nepůjčili žádnou knihu select id,jmeno from zakaznik left join vypujcka on id = zakaznik_id where zakaznik_id is NULL; --3) vypište, které knihy byly půjčeny dne 10. 2. 2017 select DISTINCT id,nazev from kniha inner join vypujcka on id = kniha_id where datum = '20170210'; --4) vypište knihy, které nebyly nikdy vypůjčeny select id,nazev from kniha left join vypujcka on id = kniha_id where kniha_id is NULL;