9. Praktikum Aufgabe 1 a.) Alle Stadtnamen aus dem Land Spanien, die in der Tabelle Stadt vorhanden sind, werden ausgewählt. Projektion Stadtname Selektion land = "Spanien" Stadt b.) Wähle alle gespeicherten Daten zu einer Stadt aus der Stadttabelle aus, welche in der Buchungstabelle ein Anreisedatum ab dem 31.12.2000 haben Selektion Stadtname = ... Projektion Stadtname = ... Stadt Selektion Anreisedatum >= 31.12.2000 Buchung Aufgabe 1 c.) Wähle Hotelnamen und Preise für Einzel- und Doppelzimmer aus der Hoteltabelle, welche in der Stadt Berlin sind. Select hotelname, PreisEZ, PreisDZ from Hotel where Stadtname='Berlin' ; d.) Zeige alle Stadtnamen, in denen Klasse 5 Hotels stehen und in denen Buchungen vorhanden sind. Select Stadtname from Hotel H, Buchung B where (H.Klasse=5) and (H.Stadtname=B.Stadtname); Aufgabe 2 a.) Durchgeführt! Problem bestand in der Referenzierung auf die Reisen - Datenbank, die bei uns zur Vorlesungs - Datenbank gehört. b.) SQL – Anweisungen... Insert into BUCHUNG (BUCHUNGSNR,KUNDENNR, HOTELNAME, STADTNAME, ZEIT, ANREISEDATUM, ABREISEDATUM, GEBUCHTEEZ, GEBUCHTEDZ) values ( 10,3, 'Prince', 'Paris',3,'27.11.2000','23.12.2000',0,1); update BUCHUNG set ABREISEDATUM=ABREISEDATUM+1 where Buchung.hotel=’Columbus’ AND KUNDENNR=(SELECT KUNDENNR FROM Kunde WHERE vorname=’Daniel’ AND nachname=’Meyer’); delete from BUCHUNG where HOTELNAME=’Columbus’; delete from HOTEL where HOTELNAME=’Columbus’; c.) Eine Sicht zur Erleichterung... create view Hilfs_Sicht as Select HOTEL.PREISEZ, HOTEL.HOTELNAME, HOTEL.ADRESSE from HOTEL, REISEZEIT, STADT where ((HOTEL.ANZAHLEZ+HOTEL.ANZAHLDZ>50) and ( HOTEL.STADTNAME = STADT.STADTNAME ) and ((STADT.FLUGHAFEN=REISEZEIT.FLUGHAFEN2) and ( REISEZEIT.FLUGHAFEN1='Koln-Bonn Flughafen') and ( REISEZEIT.RZEIT<5))); Benutzen der Sicht zur Lösung der Aufgabe... select H.HOTELNAME, H.ADRESSE from HILFS_SICHT H where PreisEZ = ( select Min(PREISEZ) from HILFS_SICHT ) Aufgabe 2 d.) ------------ Benutzer: Admin -----------grant grant grant grant grant all all all all all on on on on on HOTEL TO Admin; BUCHUNG TO Admin; REISEZEIT TO Admin; KUNDEN TO Admin; STADT TO Admin ------------ Benutzer: Chef -----------grant grant grant grant grant all all all all all on on on on on HOTEL TO Chef; BUCHUNG TO Chef; REISEZEIT TO Chef; KUNDEN TO Chef; STADT TO Chef; ------------ Benutzer: Mitarb -----------grant grant grant grant grant select,insert,update select,insert,update select,insert,update select,insert,update select,insert,update on on on on on HOTEL TO Mitarb; BUCHUNG TO Mitarb; REISEZEIT TO Mitarb; KUNDEN TO Mitarb; STADT TO Mitarb ------------ Benutzer: Prakt -----------grant grant grant grant grant select select select select select on on on on on HOTEL TO Prakt; BUCHUNG TO Prakt; REISEZEIT TO Prakt; KUNDEN TO Prakt; STADT TO Prakt; Aufgabe 3 1. Felder anlegen... alter table Hotel add Bild Blob; alter table Hotel add Beschreibung BFile; 2. Directory anlegen create directory dirPic as 'Z:\Temp'; Das Blob Feld initialisieren und mit dem Directory die Pfadangabe vornehmen... update Hotel set bild=Empty_Blob(), Beschreibung = BFilename('BILDDIR','test.jpg') where HotelName='Columbus'; Aufgabe 3 Prozedur zum füllen create or replace procedure HOTELBILD_EINFUEGEN( Hotel_Name IN varchar2 ) is bilddaten BLOB; datei BFILE; begin Select Bild, Beschreibung into bilddaten, datei from Hotel where hotelName = Hotel_Name for update; DBMS_LOB.FILEOPEN( datei, DBMS_LOB.FILE_READONLY ); DBMS_LOB.LOADFROMFILE( bilddaten, datei, DBMS_LOB.GETLENGTH( datei ) ); DBMS_LOB.FILECLOSE( datei ); UPDATE Hotel SET Bild = bilddaten WHERE HotelNAME = Hotel_Name; end; Ausführung der PL/SQL – Prozedur… execute HOTELBILD_EINFUEGEN('Columbus');