Repetitionsaufgaben Projektmanagement

Werbung
Modul 105 Datenbanken mit SQL bearbeiten
Aufgaben Datenmanipulation
Muster-Lösungen Datenmanipulation
1. Wieviele Kunden sind bereits in der Datenbank enthalten?
Select * from Kunde;
oder noch besser:
Select count(*) from Kunde;
2. Es wird von jedem Medium nun ein Exemplar angeschafft. Tragen Sie mittels
einem Statement alle Exemplare ein.
Insert into Exemplar (idMedium)
select id from Medium;
3. Gerda lieh sich heute vor zwei Monaten das Exemplar von „Ius Humanitatis“
aus. Tragen Sie diese Ausleihe ein. Sie darf das Buch ausnahmsweise ein paar
Tage länger behalten. Verwenden Sie mehrere Statements…
Insert
values
insert
set
into Ausleihe (idExemplar, idKunde, von, bis)
(4,1,‘2012-12-20‘, NULL);
into Notiz
bemerkung=‘Darf das Buch etwas länger behalten‘,
idAusleihe = last_insert_id();
4. Ein zweites Exemplar von Harry Potter wird angeschafft.
Insert into Exemplar (idMedium)
select id from Medium where Titel = '…';
5. Reto Schärrer aus 8400 Winterthur (Tel 052 222 1535, 15.8.1976) ist neuer
Kunde.
Insert into Kunde
(name, vorname, strasse, plz, ort, geburtsdatum, telefon)
values ('Schärrer', 'Reto', null, 8400, 'Winterthur',
'1976-08-15', '0522221535');
6. Reto Schärrer gibt seine Strasse bekannt: Paul-Scherrer-Strasse 354.
Update Kunde set strasse = 'Paul-Scherrer-Strasse 354'
where id = last_insert_id()
7. Gerda ist gestern umgezogen nach Berninastrasse 53, 8310 Zürich.
Insert into Kunde
(name, vorname, strasse, plz, ort, geburtsdatum, telefon,
idVorgaenger)
select name, vorname, 'Berninastrasse 53',8310,'Zürich',
geburtsdatum, telefon, id
from Kunde
where id = 1;
8. Reto Schärrer leiht das Exemplar von Schuhlöffel aus.
Insert into Ausleihe (idExemplar,idKunde, von, bis)
values (2, 3, now(), null);
9. Gerda hat trotz längerer Frist das Buch Ius Humanitatis nicht zurück gebracht.
Es wird ihr eine Rechnung gestellt (an welche Adresse?).
insert into Rechnung (idAusleihe, betrag, vom, zahlbarBis,
bezahltAm)
10_datenmanipulation.docx
- 1/2 -
J. Vogel, 30.05.2013
Modul 105 Datenbanken mit SQL bearbeiten
Aufgaben Datenmanipulation
values (1, datediff(now(),von)*2.5, now(),
date_add(now(),interval 10 day), null);
10.Peter möchte den Schuhlöffel ebenfalls hören. Er reserviert sich das Werk.
insert into Reservation (idKunde, idExemplar, idMedium)
values (2, NULL, 2);
11.Die maximale Ausleihfrist von Ius Humanitatis wird verdoppelt.
update Medium set maxAusleihfrist = 2 * maxAusleihfrist
where id = 4;
12.Gerda’s Hund hat das Buch zerfetzt. Das Buch wird mangels Nachfrage nicht
ersetzt. Stattdessen bietet Gerda an, drei neue CDs zu kaufen:
Pinocchio, Aladin und die Wunderlampe und Fridolin. Alle drei erhalten die
gleichen Werte wie Harry Potter.
nicht löschen! Sonst ist die DB inkonsistent. Besser: Attribut
'Aussortiert' bei Exemplar hinzufügen. (Rest ist trivial!)
13.Reto Schärrer gibt die geliehene MC zurück und holt nun Fridolin.
update Ausleihe set bis = now() where idKunde=3 and idExemplar=...;
insert into Ausleihe (idKunde,idExemplar,von)
values (3,5,now());
14.Am nächsten Tag holt sich Peter die reservierte MC.
update Reservation set idExemplar=... where id = ...;
insert into Ausleihe (...) values ...;
15.Wieviele Exemplare sind zur Zeit verliehen?
select count(*)
from Ausleihe
where bis IS NULL;
16.Welche Exemplare wurden noch nie verliehen? ***!
select
from
left
where
*
Exemplare
join Ausleihe on Exemplare.id=Ausleihe.idExemplare
Ausleihe.id is NULL;
17.Wie lange wurde Ius Humanitatis verliehen?
select sum(datediff(bis,von)) from Ausleihe
where idExemplare = ...;
18.Wie viele Tage ist Gerda alt?
select datediff(now(),geburtstag) from Kunde where id=1;
19.Wie alt ist unsere Kundschaft im Durchschnitt?
select avg(datediff(now(),geburtstag)) from Kunde;
20.Wie hoch ist die Totalsumme von gestellten Rechnungen (aktuelle Debitoren)?
select sum(betrag) from Rechnung;
Ohne Gewähr auf Korrektheit!
10_datenmanipulation.docx
- 2/2 -
J. Vogel, 30.05.2013
Herunterladen