MATNR | NAME | LEHRST |
ABCX1 | Müller | DB |
FRSR2 | Gross | BS |
GFDS7 | Meier | RS |
OUZT9 | Klein | IS |
TTHC9 | Meier | DB |
Tabelle 1 PRO1 (Einschreibliste 1)
MATNR | NAME | LEHRST |
FRSR2 | Gross | BS |
GOJK4 | Baum | SWT |
NIKT7 | Bauer | IS |
TTHC9 | Meier | DB |
ZTRE5 | Klein | RS |
Tabelle 2 PRO2 (Einschreibliste 2)
MATNR | NAME | ORT | DATUM |
ABCX1 | Müller | Berlin | 27.03.73 |
FRSR2 | Gross | Halle | 14.09.70 |
GFDS7 | Meier | Dresden | 02.07.71 |
GOJK4 | Baum | Leipzig | 01.08.73 |
NIKT7 | Bauer | Chemnitz | 27.04.69 |
OUZT9 | Klein | Berlin | 19.11.70 |
TTHC9 | Meier | Dresden | 23.09.71 |
ZTRE5 | Klein | Erfurt | 22.11.70 |
Tabelle 3 IMMA (Immatrikulation von Studenten)
LST | LNAME | LEITER | TITEL | VORGESETZTER | GEHALT |
BS | Betriebssysteme | Hubricht | Dr. tec | Richter | 2.677,45 DM |
DB | Datenbanken | Richter | Prof. Dr. sc. | 4.681,00 DM | |
IS | Informationssysteme | Franke | Diplominformatker | Richter | 3.722,00 DM |
RS | Rechnersysteme | Müller | Hubricht | 2.741,56 DM | |
SWT | Softwaretechnologie | Reinhardt | Dr. sc | Müller | 2.321,89 DM |
Tabelle 4 LS (Bezeichnungen und Leiter der Lehrstühle)
MATNR | LST | DB |
ABCX1 | DB | 1 |
FRSR2 | BS | 4 |
GFDS7 | RS | 3 |
GOJK4 | SWT | 2 |
NIKT7 | IS | 4 |
OUZT9 | IS | 5 |
TTHC9 | DB | 3 |
ZTRE5 | RS | 3 |
Tabelle 5 NOTEN (Noten von Studenten verschiedener Lehrstühle im Fach "Datenbanken")
PRNUMMER | MATNR1 | MATNR2 | VON | BIS | BESTANDEN |
01/GRA-5 | ZTRE5 | OUZT9 | 01.12.96 | 18.12.96 | Nein |
14/INF-4 | NIKT7 | GFDS7 | 23.04.95 | 10.10.96 | Ja |
23/RET-3 | ZTRE5 | GFDS7 | 11.03.95 | 04.04.95 | Ja |
Tabelle 6 PRAKTIKUM
Es wird auf die Beispielrelationen PR01, PRO2, IMMA, LS, NOTEN und PRAKTIKUM zurückgegriffen. Alle Erklärungen beziehen sich auf Standard-SQL und können in RQBE oder ACCESS voneinander abweichen!!!
1. Gesucht sind Matrikelnummer und Lehrstuhl aller Studenten!
SELECT
DISTINCT Noten.matnr, Noten.lst;
FROM Noten
8 relevante Zieldatensätze
2. Gesucht sind Noten aller Studenten im Fach Datenbanken nach einem Ausdrucksfeld "Note im fach Datenbanken"!
Fenster zur Festlegung des Ausdrucks - hier: Note im Fach Datenbanken
SELECT
DISTINCT "Note im Fach Datenbanken", Noten.db;
FROM Noten
8 relevante Zieldatensätze
allgemein: WHERE <search condition> (true oder false)
3. Gesucht sind die Namen aller Studenten, welche aus Halle kommen!
SELECT
Imma.name;
FROM Imma;
WHERE Imma.ort = 'Halle'
Hinweis: Distinct ist deshalb nicht geschalten, weil es möglich ist, daß mehrere Studenten mit gleichem Namen aus Halle kommen und eine Unterdrückung dieser Anzeige das Ergebnis verfälschen würde!
1 relevanter Zieldatensatz
4. Gesucht sind die Namen aller Studenten, deren Namen mit "M" beginnt!
SELECT
Imma.name;
FROM Imma;
WHERE Imma.name = "M"
3 relevante Zieldatensätze
5. Gesucht sind die Namen aller Studenten, deren Matrikelnummer eine "1" enthält!
SELECT
Imma.matnr;
FROM Imma;
WHERE Imma.matnr LIKE "%1%"
1 relevanter Zieldatensatz
6. Gesucht sind die Namen aller Studenten, welche vor 1971 geboren wurden!
SELECT
Imma.name;
FROM Imma;
WHERE Imma.datum < CTOD("01.01.71")
4 relevante Zieldatensätze
7. Gesucht alle Immatrikulations-Angaben zu den Studenten, welche "Meier" heißen!
SELECT
Imma.name, Imma.matnr, Imma.ort, Imma.datum;
FROM Imma;
WHERE Imma.name == "Meier"
2 relevante Zieldatensätze
8. Gesucht sind die Matrikelnummern aller Studenten, deren Leistungen im Fach Datenbanken 1 oder 4 betragen!
SELECT
Noten.matnr;
FROM Noten;
WHERE Noten.db = 1;
OR (Noten.db = 4)
3 relevante Zieldatensätze
9. Gesucht sind die Name und Lehrstuhl-Bezeichnung der Leiter, die über keinen akademischen Grad verfügen!
SELECT Ls.lst,
Ls.leiter;
FROM Ls;
WHERE Ls.titel NOT LIKE "%"
1 relevanter Zieldatensatz
10. Gesucht sind Matrikelnummer und Lehrstuhl aller Studenten, deren Note im Fach Datenbanken besser als 2 ist!
SELECT Noten.matnr,
Noten.lst;
FROM Noten;
WHERE Noten.db < 2
1 relevanter Zieldatensatz
11. Gesucht sind die Matrikelnummern der Studenten mit Namen "Müller", des Lehrstuhles Datenbanken der Einschreibliste 1!
SELECT
Pro1.matnr;
FROM Pro1;
WHERE Pro1.name = "Müller"
1 relevanter Zieldatensatz
12. Gesucht sind die Namen aller Studenten, deren Namen mit "M" beginnt und welche nicht aus Dresden kommen!
SELECT DISTINCTROW IMMA.NAME
FROM IMMA
WHERE (((IMMA.NAME) Like "M*") AND (Not (IMMA.ORT)="Dresden"));
1 relevanter Zieldatensatz
13. Gesucht sind die Namen der Leiter aller Lehrstühle, die einen akademischen Abschluß haben und nicht "Hubricht" heißen!
SELECT DISTINCTROW LS.LEITER
FROM LS
WHERE ((Not (LS.LEITER)="Hubricht") AND (Not (LS.TITEL) Is Null));
3 relevante Zieldatensätze
14. Gesucht ist der Name der Studenten, die Meier heißen, und aus Dresden oder Halle kommen!
SELECT DISTINCTROW IMMA.NAME
FROM IMMA
WHERE (IMMA.NAME="Meier") AND (IMMA.ORT="Dresden") OR (IMMA.ORT="Halle");
3 relevante Zieldatensätze (falsch)
SELECT DISTINCTROW IMMA.NAME
FROM IMMA
WHERE (IMMA.NAME="Meier") AND ((IMMA.ORT="Dresden") OR (IMMA.ORT="Halle"));
2 relevante Zieldatensätze (richtig)
SELECT <projection> FROM join WHERE bezeichner IN ('ausdruck1','ausdruck2');
15. Gesucht alle Angaben zu den Studenten, welche "Meier", "Bauer" oder "Groß" heißen!
SELECT DISTINCTROW IMMA.MATNR, IMMA.NAME, IMMA.ORT
FROM IMMA
WHERE (((IMMA.NAME) In ("Meier","Bauer","Groß")));
4 relevante Zieldatensätze
SELECT <projection> FROM <join> WHERE <bezeichner> BETWEEN (<ausdruck1> AND <ausdruck2>);
16. Gesucht sind alle Angaben zu den Studenten, welche im Fach Datenbanken mit einer Note zwischen 1 bis 4 abgeschlossen haben!
SELECT DISTINCTROW NOTEN.MATNR
FROM NOTEN
WHERE (((NOTEN.DB) Between 1 And 4));
7 relevante Zieldatensätze
17. Gesucht sind Namen, Vornamen, der Lehrstuhl sowie die Note im Fach Datenbanken aller Studenten!
SELECT DISTINCTROW IMMA.MATNR, IMMA.NAME, NOTEN.LST, NOTEN.DB
FROM IMMA INNER JOIN NOTEN ON IMMA.MATNR = NOTEN.MATNR;
8 relevante Zieldatensätze
18. Wer ist wessen Leiter?
SELECT DISTINCTROW LS.LEITER, LS_1.LEITER
FROM LS INNER JOIN LS AS LS_1 ON LS.VORGESETZTER = LS_1.LEITER;
4 relevante Zieldatensätze
19. Wer ist verdient mehr als sein Chef?
SELECT DISTINCTROW LS.LEITER
FROM LS INNER JOIN LS AS LS_1 ON LS.VORGESETZTER = LS_1.LEITER
WHERE (((LS.GEHALT)>[LS_1].[Gehalt]) AND ((LS_1.LEITER)<>[LS].[Leiter]));
1 relevanter Zieldatensatz
20. Welche Studenten haben miteinander Praktikum gemacht und dieses nicht bestanden?
SELECT DISTINCTROW IMMA.NAME, IMMA_1.NAME
FROM (IMMA INNER JOIN PRAKTIKUM ON IMMA.MATNR = PRAKTIKUM.MATNR2) INNER JOIN IMMA AS IMMA_1 ON PRAKTIKUM.MATNR1 = IMMA_1.MATNR
WHERE (((PRAKTIKUM.BESTANDEN)=False));
1 relevanter Zieldatensatz
25. Welche Studenten sind in den Immatrikulationslisten PRO1 und PRO2eingetragen?
SELECT PRO1.MATNR, PRO1.NAME, PRO1.LEHRST
FROM PRO1
UNION SELECT DISTINCTROW PRO2.MATNR, PRO2.NAME, PRO2.LEHRST
FROM PRO2;
8 relevante Zieldatensätze
26. Gesucht ist die Höhe des Beitrages an die Gesellschaft für Informatik" der Lehrstuhlleiter, wenn der Monatsbeitrag 2,7% vom Bruttogehalt beträgt!
SELECT DISTINCTROW LS.TITEL, LS.LEITER, [LS]![Gehalt]/100*2.7
AS [Beitrag Gesellschaft für Informatik]
FROM LS;
5 relevante Zieldatensätze
27. Gesucht ist das Durchschnittsgehalt der Professoren!
SELECT DISTINCTROW Avg(LS.GEHALT) AS [Das Durchschnittsgehalt]
FROM LS;
1 relevanter Zieldatensatz
28. Gesucht ist das Geburtsdatum des ältesten Studenten!
SELECT DISTINCTROW Max(IMMA.DATUM) AS [ältester Student]
FROM IMMA;
1 relevanter Zieldatensatz
29. Gesucht ist eine Liste der Lehrstuhlleiter-Gehälter aufsteigend sortiert!
SELECT DISTINCTROW LS.TITEL, LS.LEITER, LS.GEHALT
FROM LS
ORDER BY LS.GEHALT;
5 relevante Zieldatensätze
30. Gesucht ist eine Liste der Namen von immatrikulierten Studenten, wobei der jüngste zuerst geführt wird!
SELECT DISTINCTROW IMMA.NAME, IMMA.DATUM
FROM IMMA
ORDER BY IMMA.DATUM DESC;
8 relevante Zieldatensätze
31. Gesucht ist eine Liste der Wohnorte der immatrikulierten Studenten sowie die Angabe der Zahl von Studenten, die aus dem gleichen Ort stammen!
SELECT Count(IMMA.NAME) AS [Anzahl von NAME], IMMA.ORT
FROM IMMA
GROUP BY IMMA.ORT
ORDER BY Count(IMMA.NAME);
8 relevante Zieldatensätze
32. Gesucht ist der Name des Studenten mit der besten Note im Fach Datenbanken!
SELECT DISTINCTROW Avg(LS.GEHALT) AS [Das Durchschnittsgehalt]
FROM LS;
1 relevanter Zieldatensatz
ALL
ANY
SOME
EXISTS
ALL
ANY
SOME
EXISTS