9. Praktikum

Werbung
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');
Herunterladen