Übungen zu Datenbanken WS 2016/2017 Blatt 3

Werbung
Übungen zu Datenbanken WS 2016/2017
Blatt 3
Aufgabe 1:
Machen Sie sich mit den Tabellen der Versandhandelsdatenbank vertraut (Attributbezeichnungen, Datentypen, ….)
Die Tabelle BESTELLUNGEN besitzt 6 Spalten und 36 Zeilen, BESTELLPOSITIONEN besitzt 3 Spalten und 61
Zeilen. Wie viele Spalten und Zeilen liefert ein Cross Join der Tabellen gemäß der Theorie? Prüfen Sie Ihre
Ergebnisse durch Ausführung des Cross Joins am Rechner nach.
Bemerkung: Beachten Sie, dass die SQL-Server-Datenbank bei Attributwerten ä, ö, ü und ß verwendet, die SQLiteDatenbank ae, oe, ue und ss.
Aufgabe 2:
Setzen Sie die Anfragen 1 bis 4 sowie Anfrage 6 von Aufgabe 2 von Blatt 2 in SQL um. Formulieren Sie bei Anfrage
4 eine Lösung mit JOIN-Schlüsselwort und eine ohne JOIN-Schlüsselwort.
Aufgabe 3:
Formulieren Sie für folgende Anfragen jeweils ein SQL-Kommando.
1. Ausgabe einer Übersicht über die Artikel. Dabei sollen nur Artikel-Nr., Bezeichnung, Kategorie und Preis
ausgegeben werden, und die Datensätze sollen nach der Spalte Kategorie alphabetisch aufsteigend sortiert sein.
2. Es soll eine Liste mit allen Artikeln erzeugt werden, die zur Kategorie B (Bausatz), S (Schnitzrohling) oder W
(Werkzeug) gehören und mehr als 100.- Euro kosten.
3. Welche Schnitzrohlinge stellen Reliefs dar? Gehen Sie dabei davon aus, dass bei solchen Rohlingen irgendwo in
der Bezeichnung die Zeichenfolge Relief vorkommt.
4. Geben Sie die Datensätze der Tabelle Bestellpositionen so aus, dass zu einer Bestellung gehörende Datensätze
in der Ausgabe aufeinander folgen. Sorgen Sie ferner dafür, dass die zu einer Bestellung gehörenden ArtikelNummern fortlaufend alphabetisch aufsteigend sortiert sind.
5. Welche männlichen Kunden, die weder in Sulzbach noch in Saarbrücken wohnen, besitzen eine E-MailAdresse?
6. Geben Sie für alle Werkzeuge folgende Informationen aus: Artikel-Nr., Bezeichnung, um 19% erhöhter
Preis. Bezeichnen Sie die Spalte mit dem um 19% erhöhten Preis in der Ausgabe mit PREIS_INC.
7. Wie viele Kunden wohnen in Saarbrücken und besitzen weder eine E-Mail-Adresse noch einen TelefaxAnschluss?
8. Wie groß sind der durchschnittliche Rechnungsbetrag sowie die Abweichung zwischen dem höchsten und dem
niedrigsten Rechnungsbetrag aller Bestellungen?
9. Wie viele Artikel mit der Artikel-Nr. 50002308 sind insgesamt bestellt? Beachten Sie dabei, dass von
einem Artikel mehr als ein Stück bestellt sein kann.
10. Es sind die Bestell-Nr. aller Bestellungen von Kunden aus Saarbrücken auszugeben, bei denen der
Rechnungsbetrag 500 Euro übersteigt.
11. Ermitteln Sie für die Bestellung mit der Nummer 23153 den Warenwert anhand der Informationen über
Anzahlen und Preise der bestellten Artikel.
12. Wie viele Schnitzrohlinge sind von Kunden aus Saarbrücken bestellt?
Aufgabe 4:
a)
b)
c)
d)
e)
f)
Erzeugen Sie mittels CREATE TABLE eine Tabelle Mitarbeiter1 mit den Spalten P_Nr (int, NOT NULL),
Name (varchar(30), NOT NULL) und Vorg (int, NOT NULL), wobei die Spalte P_Nr Primärschlüssel sein
soll. In der Spalte Vorg soll die P_Nr des unmittelbaren Vorgesetzten des Mitarbeiters eingetragen werden.
Fügen Sie mittels INSERT folgende sieben Datensätze ein:
(3,Mueller,1), (2,Meyer,1), (1,Adenauer,1), (4,Schmidt,2), (5,Schmitt,1), (6,Gruen,4), (7,Gelb,2).
Erzeugen Sie mittels eines SQL-Kommandos eine Liste, die für jede P_Nr den Namen des unmittelbaren
Vorgesetzten ausgibt.
Verwenden Sie ein UPDATE-Kommando, um alle in der Tabelle vorkommenden Personalnummern um 10 zu
erhöhen.
Legen Sie eine Tabelle Mitarbeiter2 gemäß dem gleichen Schema wie Mitarbeiter1 an. Informieren Sie sich
über das Kommando INSERT INTO … SELECT und fügen Sie damit alle Einträge von Mitarbeiter1 ein.
Löschen Sie alle Datensätze mit einer P_Nr größer als 14 aus Mitarbeiter2 und fügen Sie (18,Blau,11) ein.
Vereinigen Sie die beiden Tabellen für eine Ausgabe mittels UNION. Informieren Sie sich, welche beiden
grundsätzlichen Möglichkeiten es zur Behandlung vorhandener und entstehender Duplikate bei UNION gibt
und probieren Sie beide Möglichkeiten aus.
Herunterladen