• Keine Ergebnisse gefunden

Datenmanipulation mit SQL (Structured Query Language)

N/A
N/A
Protected

Academic year: 2022

Aktie "Datenmanipulation mit SQL (Structured Query Language)"

Copied!
1
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

Datenmanipulation mit SQL (Structured Query Language)

Im Rahmen der Lehrveranstaltung „Einführung in die Informatik“ (Übung) wird nur die SQL- Anweisung zur Auswahl (SELECT) behandelt.

SQL-Anweisungen zur Datenmanipulation

Auswahl (SELECT) Mutation

Ändern (UPDATE)

Einfügen (INSERT)

Löschen

(DELETE)

(2)

A. Allgemeine Syntax des SELECT-Befehls:

SELECT Auswahl der gewünschten Attribute Angabe ist notwendig

FROM Angabe der Tabelle(n) Angabe ist notwendig

WHERE Angabe von Bedingungen Angabe ist nicht notwendig

GROUP BY Gruppierung Angabe ist nicht notwendig

ORDER BY Sortierung Angabe ist nicht notwendig

Beispiele:

Zugrunde liegt folgende ACCESS-Tabelle:

Studentenstammdaten

MatrikelNr Nachname Vorname Namenszusatz Geburtsdatum PLZ Strasse Hausnummer 1 Maier Xaver 01.05.1982 85354 Unter der alten Isarbrücke 99

2 Großkotz Waldemar 02.02.1980 80808 Menterschwaige 88

5 Neureich-Müller Elfriede 01.02.1978 80809 Grünwald 1

7 Bond James 02.02.1971 85354 Am Wörth 1b

9 Rammelmaier Rambo 07.07.1982 81234 Am Schlagring 55

1. Aus der Tabelle Studentenstammdaten werden alle Datensätze (weil keine Bedingung angegeben ist) angezeigt (Kopie der kompletten Tabelle wird ausgegeben)

SELECT *

FROM Studentenstammdaten

Ausgegeben wird die komplette Tabelle „Studentenstammdaten“

2. Projektion: Aus der Tabelle Studentenstammdaten werden für alle Datensätze (weil keine Bedingung angegeben ist) die Werte der Felder

„MatrikelNr“ und „Nachname“ ausgegeben

SELECT MatrikelNr, Nachname FROM Studentenstammdaten

Ausgegeben wird:

MatrikelNr Nachname 1 Maier

2 Großkotz 5 Neureich-Müller 7 Bond

(3)

MatrikelNr Nachname 9 Rammelmaier

(4)

3. Projektion mit qualifizierter Auswahl: Aus der Tabelle

Studentenstammdaten werden für alle Datensätze, für die das Feld MatrikelNr den Wert 7 enthält (WHERE-Bedingung) die Werte der Felder „MatrikelNr“ und „Nachname“ ausgegeben

SELECT MatrikelNr, Nachname FROM Studentenstammdaten WHERE MatrikelNr = 7

Ausgegeben wird:

MatrikelNr Nachname 7 Bond

B. Auswahlabfragen mit Bezug auf mehrere Tabellen.

Es sollen für die folgenden Beispiele folgende Tabellen (mit ihren Datensätzen) gegeben sein.

Studentenstammdaten

MatrikelNr Nachname Vorname Namenszusatz Geburtsdatum PLZ Strasse Hausnummer 1 Maier Xaver 01.05.1982 85354 Unter der alten Isarbrücke 99

2 Großkotz Waldemar 02.02.1980 80808 Menterschwaige 88

5 Neureich-Müller Elfriede 01.02.1978 80809 Grünwald 1

7 Bond James 02.02.1971 85354 Am Wörth 1b

9 Rammelmaier Rambo 07.07.1982 81234 Am Schlagring 55

666666 Topman Ute Freifrau von und zu 07.07.1983 99999 Am Schlachthof 1

(5)

Prüfungsleistungen

LfdNr Matrikelnummer Datum Fach_ID Note

1 7 09.06.2005 4711 1

2 7 09.06.2005 1128 4,3

3 7 09.06.2005 9978 2

4 7 09.06.2005 4435 2,3

5 7 09.06.2005 5540 1

6 9 09.06.2005 4711 2

7 9 09.06.2005 1128 3

8 9 09.06.2005 9978 1

9 9 09.06.2005 4535 2

10 9 09.06.2005 5640 1

11 5 09.06.2005 9978 2

12 5 09.06.2005 4435 1

13 1 09.06.2005 9978 3

14 1 09.06.2005 4435 2

15 2 09.06.2005 5540 4

Fächerstammdaten

FachID Bezeichnung 1000 Mathematik 1 1001 Statistik 1 1128 BWL 4435 VWL 4711 Physik 5540 Chemie 5640 Botanik

(6)

Fächerstammdaten

FachID Bezeichnung 9978 Informatik 9999 Zoologie

C. Übungsaufgaben

1. Sie sehen in in der Entwurfsansicht für Abfragen in MS-Access folgende Auswahlabfrage

a) Wie viele Datensätze (basierend auf den o.g. Tabellen) erwarten Sie?

b) Wie lautet die zugehörige SQL-Abfrage?

Lösungshinweis zu a) Kartesisches Produkt Lösungshinweis zu b)

SELECT Prüfungsleistungen.Matrikelnummer, Studentenstammdaten.Nachname, Studentenstammdaten.Vorname, Prüfungsleistungen.Fach_ID, Prüfungsleistungen.Note

FROM Studentenstammdaten,Prüfungsleistungen

(7)

2. Angenommen, mit der o.g. Abfrage soll zu jeder Matrikelnummer der Vor- und Nachname ausgegeben werden. Welche Änderungen sind vorzunehmen

a) im Entwurfsfenster der Auswahlabfrage in Access b) in der SQL-Abfrage

c) alternativ bereits im Beziehungsfenster von Access

Lösungshinweis zu a) Verknüpfung (Inner Join) zwischen den Tabellen über die Felder MatrikelNr bzw. Matrikelnummer einrichten Lösungshinweis zu b)

SELECT Prüfungsleistungen.Matrikelnummer, Studentenstammdaten.Nachname, Studentenstammdaten.Vorname, Prüfungsleistungen.Fach_ID, Prüfungsleistungen.Note

FROM Studentenstammdaten INNER JOIN Prüfungsleistungen ON Studentenstammdaten.MatrikelNr = Prüfungsleistungen.Matrikelnummer;

SELECT Prüfungsleistungen.Matrikelnummer, Studentenstammdaten.Nachname, Studentenstammdaten.Vorname, Prüfungsleistungen.Fach_ID, Prüfungsleistungen.Note

FROM Studentenstammdaten,Prüfungsleistungen

WHERE Studentenstammdaten.MatrikelNr = Prüfungsleistungen.Matrikelnummer;

Lösungshinweis zu c) Beziehungen vom ER-Modell übernehmen – möglichst referentielle Integrität definieren.

(8)

3. Angenommen, es liegt folgende Auswahlabfrage vor

a) Wie viele Datensätze (basierend auf dem o.g. Tabellen) erwarten Sie?

b) Wie lautet die zugehörige SQL-Abfrage?

c) Angenommen, mit der o.g. Abfrage soll zu jeder Matrikelnummer der Vor- und Nachname und zu jeder Fach_ID die Bezeichnung ausgegeben werden. Welche Änderungen sind vorzunehmen

-) im Entwurfsfenster der Auswahlabfrage in Access -) in der SQL-Abfrage

-) alternativ bereits im Beziehungsfenster von Access

(9)

4. Erläutern Sie anhand der o.g. Tabellen die Begriffe Mastertabelle, Detailtabelle sowie referentielle Integrität.

5. Könnte referentielle Integrität zwischen den o.g. Tabellen eingerichtet werden? Welche Änderungen sind ggf. vorzunehmen (Begründen Sie Ihre Antworten)

6. Auswahlabfrage – Basierend auf drei Tabellen:

a) Ergänzen Sie die folgende Auswahlabfrage in Access in der Weise, dass Ihnen nur die Matrikelnummern (ergänzt um Vor- und Nachname) sowie Fachbezeichnungen ausgegeben werden, in denen der Prüfling eine Note besser als 2,7 erzielt hatte.

b) Formulieren Sie den zugehörigen SQL-Befehl.

7. Lassen Sie sich alle Datensätze aus den o.g. Tabellen ausgeben, die einer referentiellen Integrität widersprechen würden.

8. Lassen Sie sich alle Studenten ausgeben, die bisher noch an keiner Prüfung teilgenommen hatten.

Referenzen

ÄHNLICHE DOKUMENTE

• Um die Namen (nicht snr) der Segler zu bestimmen die ein rotes und ein grünes Boot reserviert haben: Ersetze S.snr durch S.sname in der SELECT Klausel.. Finde

Dieser Application Master hat beim Resource Manager weitere Container zur Berechnung angefragt, woraufhin der Node Manager des Data Node 1 Ressourcen ¨ uber einen Container zur

[r]

DaGeo- Schein I Bestanden ab 22

[r]

INSERT INTO studenten (MatrikelNr, Vorname, Nachname) VALUES ( 367891, 'Paul', 'Muster' ). Man kann die Liste der Attribute weglassen, wenn man die Werte in der Reihenfolge

Statt dessen soll, einer Variante des Principle of Chari- ty folgend, davon ausgegangen werden, dass die Kontrahenten weitgehend fähig sind, ihre eigenen Motive selbst zu

iv. Gleichen Sie folgende Redoxreaktion unter sauren Bedingungen aus. Geben Sie beiden Halbreaktionen und die Gesamtreaktion an und bestimmen Sie das Oxidationsmittel und das