Übung 6.6 (SQL unter MS Access) ◦ ?

Lernziele

- select
- Unterabfrage
- insert, update und delete
- Funktionen sum, min, max, avg

Wiederholungsfragen

Ein Klick auf den roten Hyperlink zeigt die richtige Lösung.

1. Eine
   select-Abfrage ist eine ...

> 1. Aktionsabfrage
> 2. Aktualisierungsabfrage
> 3. Auswahlabfrage

1. Welche Aussage ist
   richtig?

> 1. Jede QBE-Abfrage ist unter Access in SQL darstellbar
> 2. Jede SQL-Abfrage ist unter Access in QBE darstellbar
> 3. SQL und QBE sind in MS Access aequivalent

1. Eine
   QBE-Abfrage ...

> 1. setzt sich aus Selektion, Projektion und Verbund zusammen
> 2. ist prozedural
> 3. lässt sich auf eine Folge relationaler Grundoperationen zurückführen

1. 3. Ordnen Sie die
   SQL-Schlüsselwörter A bis E den Argumenten 1 bis 5 zu:

> A select

> B select distinct

> C from

> D where

> E order by

> 1 wählt eine oder mehrere Tabellen

> 2 Sortierkriterium

> 3 ergibt eine Ergebnistabelle ohne Duplikate

> 4 eines oder mehrere Attribute

> 5 Verbund- oder Selektionsbedingung

Vertiefungsfragen

Formulieren Sie alle SQL-Abfragen zunächst auf Papier und implementieren Sie sie erst dann in MS Access, und zwar in den folgenden Schritten:

> 1) Datenbankfenster (F11)/Abfragen/Neu/Entwurfsansicht
> 2) Schliessen (ohne eine Tabelle hinzuzufügen)
> 3) Symbolleiste: Ansicht/SQL
> 4) Anweisung eingeben
> 5) Symbolleiste: Ansicht/Datenblattansicht
> 6) Symbolleiste: Ansicht/SQL, falls Korrektur

Laden Sie die Datenbank KALIBASkelett.mdb. Falls Sie direkt von der CD ROM oder vom Server laden, können Sie nicht auf die geladenen Dateien schreiben. Kopieren Sie deshalb die Datenbank auf Ihre Festplatte und entfernen Sie im Fall der CD ROM den Schreibschutz.

Die Datenbank enthält die folgenden Tabellen und Attribute:

> ARTIKEL: Artikelnr, Name, Katalogpreis, Lagerbestand
> AUFTRAG: Auftragsnr, Kundennr, Datum
> AUFTRAGSPOSTEN: Auftragsnr, Artikelnr, Artikelmenge, Vereinbarungspreis
> KUNDE: Kundennr, Kundenname, Strasse, PLZ, Ort, Kreditlimite
> Mitarbeiter: Personalnr, Name, Vorgesetztennr.

Access transformiert reservierte Wörter von SQL in Grossschrift (auch wenn Sie die Wörter im Entwurfseditor klein schreiben).

1. Abfragen auf einer einzigen Tabelle

> 1. Wo wohnt der Kunde Chaplin?
> 2. Wie heissen die Kunden, die in Basel oder Zürich wohnen? Vergleichen Sie diese SQL-Abfrage mit der QBE-Version.

1. Abfragen auf mehreren Tabellen

> 1. Welche Aufträge (Auftragsnr) hat Kunde Gebser erteilt? Vergleichen Sie diese SQL-Abfrage mit der QBE-Version.
> 2. Was hat Kunde Zanforlin zwischen dem 1. und 20.11.99 bestellt (Artikelname und Menge)? Verwenden Sie für das Datum das folgende Format: #01/11/99# (statt 1.11.99).

1. Berechnende Abfragen

> 1. Wieviel wurde durchschnittlich von jedem Artikelnamen verkauft?
> 2. Ermitteln Sie zu jedem Artikelnamen den niedrigsten und höchsten Vereinbarungpreis. Vergleichen Sie diese SQL-Abfrage mit der QBE-Version.

1. Aktualisierungsabfragen

> 1. Erhöhen Sie den Lagerbestand aller Artikel um 10 Stück.
> 2. Erhöhen Sie den Lagerbestand an Anzügen um 11 Stück.

1. Unterabfragen (engl. subqueries)

> 1. Welches ist der nächste Vorgesetzte von Feller?
> 2. Welches ist der übernächste Vorgesetzte von Feller? Wenn Sie Sie in der Entwurfssicht den Menüpunkt »Ansicht/Entwurfsansicht klicken, dann sehen Sie die Übersetzung der SQL-Abfrage in die QBE-Version.
> 3. Welche Kunden (Kundennr, Kundenname) wohnen am gleichen Ort wie der Kunde Zanforlin?

1. Vereinigung von Tabellen (engl. union)

> 1. Interpretieren Sie die folgende Abfrage:

>    select Kundenname
>    from KUNDE union
>    select MitarbeiterIn
>    from MITARBEITERIN

>    Prüfen Sie Ihre Interpretation in Access.

> 2. Prüfen Sie, ob die Abfrage l auch in QBE implementierbar ist. Welchen Schluss über das Verhältnis von QBE und SQL ziehen Sie?

Zusatzaufgabe

1. Finden Sie durch Experimentieren heraus, welche Unterschiede zwischen den von Hand erstellten SQL-Abfragen und den automatischen SQL-Übersetzungen äquivalenter QBE-Abfragen bestehen.

KALIBA.mdb