Abfragen unter ACCESS |
 |
 |
Letztmalig
dran rumgefummelt: 02.03.11 08:23:22
|
 |
Auch unter Verwendung des hier
nun aufgeführten DBMS verwenden wir die allgemein gültigen
Grundlagen, welche von Microsoft aus was auch immer für welchen
Gründen (es ist nix weiter, als der Versuch der Anpassung an den
unbedarften Anwender!), umformuliert und "aufgeweicht" wurden.
Das erleichtert das Arbeiten für den Laien und schafft hervorragende
Fehlermöglichkeiten für den Profi - weshalb gilt: Nimm' Access nicht zur
scharfen Datenverwaltung und -abfrage!
Ideal in der Abfrage-Programmierung unter Access ist die Kombination
Entwurfsansicht - SQL-Ansicht. Einzelne tiefergehende Abfragen lassen sich
eh' nur noch mit dem SQL-Editor erledigen. Zu beachten ist allerdings
ebenso, dass in der Gestaltung der Abfragen unter den einzelnen Versionen
von Access erhebliche Unterschiede bestehen - es wurde zunehmend an
Standard-SQL angelehnt.
|
 |
... wenn wir allerdings wissend handeln, saubere
Entitytypen sowie Relationships
gesetzt haben, steht einer professionellen SQL nichts weiter im Weg. als
die Besonderheiten, welche in der Abfragestruktur einbezogen wurden und
unser eigenes logische Denken - eine Datenbank hat gegen uns keine andere
Chance, als die ihr inne wohnnende Logik ;-)
|
 |
Kriminalisten arbeiten mit dem Modell der schrittweisen Verschärfung von
Suchkriterien und dem "Übereinanderlegen" von scheinbar nicht
zusammengehörigen Informationen - deshalb freuen sie sich über möglichst
viele Informationen im Zusammenhang,
|
 |
- Datensätze, die gewissen Kriterien
entsprechen, können selektiert (ausgewählt) werden, dabei können auch
noch die Felder angegeben werden, die zur Ausgabe gelangen sollen
- hauptsächlich erfolgt die Ergebnisrepräsentation durch einen View,
dieser kann jedoch in Form eines Berichts auch auf den
Drucker oder in eine Datei mit gewünschtem Format
umgeleitet werden
- Abfragen repräsentieren immer ein Gesamtergebnis, d. h. alle Datensätze
(mit den entsprechend gewählten Feldnamen), die die Abfragebedingungen erfüllen,
werden auf einmal angezeigt und evtl. in einer Datei abgespeichert (Abfragen
sind SQL-kompatibel) - eine Abfrage auf eine
Abfrage ist möglich (Queries können auch genestet werden - Subqueries)
- wird eine Abfrage über mehrere Tabellen
geführt, so wird die entsprechende Referenz temporär über die Schlüssel
ermittelt - man spricht vom JOIN
- dazu ist kein relationales Gefüge notwendig -
es darf aber vorhanden sein
- einzige Rahmenbedingung: in jeder Tabelle ist
mindestens eine eindeutige Entität zur anderen enthalten
- die Ausgabe der Ergebnisse kann wahlweise in einer Tabelle (View) mit
einer anzugebenden Menge von Feldnamen vorgenommen, oder als Datei
hinterlegt werden
- dabei können, im Gegensatz zur "Gehe zu ..."-Positionierung,
bzw. zur Suchfunktion, auch Verknüpfungen der Abfragebedingungen erfolgen -
es kann gleichzeitig nach mehreren Kriterien
gefragt werden - unter relationalen Datenbanken wie FoxPro eben auch über
mehrere Relationen (Tabellen) hinweg!!!
- Suchkriterien können mathematische und logische Operationen enthalten,
müssen jedoch eindeutig spezifiziert sein
- der Aufbau der SQLs, oder hier Abfragen genannt mit der Möglichkeit
der Entwicklung über Komponenten, erfolgt durch Klauseln
- einige notwendig - andere optional.
|
 |
SELECT [DISTINCT] {*|Attributliste|mathematische
Ausdrücke} Bezeichner
FROM Tabelle1 Bezeichner1, Tabelle2 Bezeichner2, ...
[WHERE Bedingungen]
[GROUP BY Attributliste] [HAVING Bedingungen]
[ORDER BY Attributliste] [ASC|DESC];
|
 |
Was ich bei ACCESS beachten muss:
-
als logische Operatoren gelten die
SQL-Standards sowie auch deren Vorrangautomatik
- JOKER
ist das "*" und für das WILDCARD steht das "?" - ACCESS
kennt Gruppenjoker mit [..] und den negierenden Gruppenjoker mit ! -
das entspricht jedoch nicht der Standard-SQL
-
Datumsangaben sind in "#" einzuschließen - Ausnahmen bilden der
Einsatz von Joker und/oder Wildcard
-
als Wahrheitswerte stehen WAHR und FALSCH zur
Verfügung (True und False werden aber ebenso akzeptiert)
-
NULLWERTE werden durch den Parameter IST NULL
erkannt
-
LIKE muss als Prädikat nicht mit geführt werden,
wird jedoch automatisch generiert
-
BETWEEN wird durch Zwischen ersetzt
- den Gruppenjoker siehe hier oder den Auslassungsoperator hab'
ich bis jetzt nur bei ACCESS so angetroffen
- genau gleich ist ACCESS unbekannt
|
 |
0. Das Beispiel ERM - Datenbasis und
Dokumentation
1. Allgemeine Projektion
2. Ausdrücke in Abfragen
3. Search-Conditions in der Abfrage
4. Komplexe Searchconditions - also
mehrfache und logisch kombinierte Suchbedingungen
5. Indirekte Abfragen auf logischen
Bedingungen
6. Das Mengenprädikat (IN-Operator)
oder der Aufzählungsoperator
7. Das BETWEEN-Prädikat
8. JOINS in Abfragen
9. Berechnete Abfragen
10. Datengruppierungen und -sortierung
11. Aggregierende Funktionen
12. HAVING-Klausel
13. Quantifizierende Prädikate
14. Subqueries
15. Bedingungen in der Abfrage
16. Aktionsabfragen
17. Parameterabfragen
|
0. Die eingesetzte
Datenbasis - ERM, Daten, Schlüssel, Indizies und Abfragen |
 |
 |
 |
STUDENT (IDENT, IMMA_NR, ERFASST,
ANREDE, TITEL, VORNAME, ZUSATZ, NAME, ORT, PLZ, STRASSE, TEL_NR, JOB, FAHRELAUB,
K_GELD, FAHRZEUG, MAIL, WWW, NEBENWOHN, BEMERKUNG)
Entitytyp STUDENT
STUDAT (IMMA_NR,
EINKOMM, VORBESTRA, MIETE, ASSISTENT, F_STAND, GROESSE_CM, GEWICHT_KG)
Entitytyp STUDAT
GEHTNACH
(HOBBY_NR, IMMA_NR)
Entitytyp STUDAT
HOBBY (HOBBY_NR,
BEZEICHNUNG)
Entitytyp HOBBY
BELEGT
(IMMA_NR,,
PRAKT_NR, BESTANDEN)
Entitytyp BELEGT
PRAKTIKUM (PRAKT_NR,
VON, BIS, PLZ, ORT, TEL, INHALT)
Entitytyp PRAKTIKUM
NOTEN
(IDENT, IMMA_NR,
DATABASE, LATEIN, RECHT, MATHE, ENGLISH)
Entitytyp NOTEN aus dem 1 : 1
Relationship STUDENT - HAT - NOTEN
VORLESUNG (VL_NR,
BEGINN, ENDE, WO_TAG, HAUS, RAUM, FACH, PRAKTIKUM, SEMINAR, SCRIPT)
Entitytyp VORLESUNG aus dem m : n Relationship STUDENT -
BESUCHT - VORLESUNG
MACHT (PRAKT_NR, IMMA_NR,
BESTANDEN)
Entitytyp MACHT aus dem n : m
Relationship STUDENT - MACHT - PRAKTIKUM
PROFESSOR
(IDENT,
PERS_NR, CHEF,
ANREDE, TITEL, VORNAME, ZUSATZ, NAME, HAUS; RAUM, LEHRSTUHL, GEHALT, LEHRSTUHL, ORT, PLZ, STRASSE,
TEL_NR, FAHRZEUG, MAIL, WWW, BEMERKUNG)
Entitytyp PROFESSOR
BETREUT
(PRAKT_NR, PERS_NR)
Entitytyp BETREUT aus dem n : m
Relationship PROF - BETREUT - PRAKTIKUM
1. Projektion und Selektion bezüglich einer
Tabelle - das ist noch nicht
der VIEW |
 |
 |
 |
Aufgabenfeld Projektion und/oder VIEW
- Gesucht sind Personalnummer, Vorname, Namenszusatz und Name
aller erfassten Professoren! -
Dateiname: VIEW01
- Gesucht ist die Liste aller Vornamen, Namenszusatz und Namen der eingeschriebenen Studenten!
-
Dateiname: VIEW02
- Bestimmen Sie eine Liste aller Vorlesungen (alle Angabe zu allen
Vorlesungen)! -
Dateiname: VIEW03
- Welcher Professor (alle Angaben) hält welche Vorlesung (zum Verständnis
notwendige Angaben) (das
ist dann schon eine Verbindung - Fachsprache: ein JOIN)? - Achtung! hier das
Entity HAELT mit in die Projektion einbeziehen, jedoch nicht in den VIEW! - Dateiname:
VIEW04
- Wer (welcher Professor mit allen Angaben) hat welchen Lehrstuhl (zum
Verständnis notwendige Angaben) inne? Streng genommen ist
das schon 'ne Searchcondition, denn alle, welche keinen Lehrstuhl inne
haben, dürften nicht angezeigt werden! -
Dateiname: VIEW05
- Gesucht sind Vornamen, Namenszusätze, Namen und Noten der eingeschriebenen Studenten! - Dateiname:
VIEW06
|
 |
|
 |
Ausdrücke werden insbesondere
bei der Anfrage mit statistischem Charakter bedeutsam, oft steht im
Ergebnis der Standard-SQL in genau so vielen Fällen ein Ergebnis, welches
einer Zurodung bedarf. Hier helfen faktisch eingefügte Textfelder, die
nix weiter tun, als das ganze ein wenig beschreiben. Aber auch hier
Achtung: 's gibt zwei Möglichkeiten, solche Merkmale zu Verwenden!
Ausdrücke gewinnen bei Anwendung der Funktionen besondere Bedeutung. Die
Anweisung AS ausdruck aus der Standard-SQL kommt hier zur Anwendung.
|
 |
Zum ersten: generiere einen Attributwert -
also ein Textfeld mit dieser Datenbeschreibung in einem Attrributwert
(einer Datenzelle:
- dann muss hier ein "irgendwie" bezeichneter Ausdruck
(faktisch ein Variablenbezeichner) organisiert werden - z. B.
Ausdruck_nummer: - immer gefolgt von einem Doppelpunkt
- der Ausdruck wird automatisch generiert, wenn der Text in
Anführungszeichen gesetzt wird
- der zu generierende Ausdruck selbst muss in
Anführungszeichen gesetzt werden
- der Ausdruck darf Leerezeichen sowie viele Sonderzeichen
enthalten und max. 64 Zeichen lang sein
|
 |
Zum
zweiten: generiere eine Beschriftung zu einem vorhandenen Datenmerkmal
(Datenfeld, Feldnamen)
- dann muss hier der "irgendwie" bezeichnete Ausdruck
(faktisch ein Variablenbezeichner) umbenannt werden - z. B.
Datenfeldbezeichner: - immer gefolgt von einem Doppelpunkt
- der Ausdruck wird automatisch generiert, und darf keine Leer-
oder Sonderzeichen enthalten
- der zu erstellende Feldbezeichner selbst muss in
Anführungszeichen gesetzt werden
- als Operator muss ein beliebiger Text oder eine Funktion
agieren
|
 |
Beratungsmuster:
Ausdruck im Tupel |
Ausdruck im
Attributbezeichner |
Welcher Student hat bei
welchem Professor Vorlesung? Zu erzeugen ist eine SQL-Anweisung, in
welcher ein Merkmal mit der Bezeichnung "besucht Vorlesung bei:"
als Ausdruck generiert wird |
Welcher Student hat welche Note im Fach Datenbanken? Zu
erzeugen ist eine SQL-Anweisung, in welcher ein Merkmalsbezeichner mit dem
Inhalt "erreicht im Fach Datenbanken" als Ausdruck generiert
wird |

Generierung
eines Attributs einschließlich Attributwert via SQL |
Generirung
eines Bezeichners für ein vorhandenes Attribut |

VIEW
eines Attributs einschließlich Attributwert via SQL |
VIEW
eines Bezeichners für ein vorhandenes Attribut |

SQL eines
Attributs einschließlich Attributwertvia |
VIEW
eines Bezeichners für ein vorhandenes Attribut |
SELECT
[STUDENT].[ANREDE], [STUDENT].[TITEL], [STUDENT].[VORNAME], [STUDENT].[ZUSATZ],
[STUDENT].[NAME], "besucht Vorlesung bei:" AS Ausdr1, [PROF].[TITEL], [PROF].[TITEL],
[PROF].[ANREDE], [PROF].[VORNAME], [PROF].[ZUSATZ], [PROF].[NAME]
FROM (VORLESUNG INNER JOIN (STUDENT INNER JOIN BESUCHT ON [STUDENT].[IMMA_NR]=[BESUCHT].[IMMA_NR]) ON
[VORLESUNG].[VL_NR]=[BESUCHT].[VL_NR]) INNER JOIN (PROF INNER JOIN HAELT ON
[PROF].[PERS_NR]=[HAELT].[PERS_NR]) ON [VORLESUNG].[VL_NR]=[HAELT].[VL_NR]; |
SELECT
STUDENT.ANREDE, STUDENT.TITEL, STUDENT.VORNAME, STUDENT.ZUSATZ,
STUDENT.NAME, [NOTEN.DATABASE] AS [Erreicht im Fach Datenbanken]
FROM STUDENT INNER JOIN NOTEN ON STUDENT.IMMA_NR = NOTEN.IMMA_NR; |
|
Aufgabenfeld Ausdrücke in Projektion und/oder
VIEW
- Erstellen Sie eine Liste aller Noten aller Studenten mit der
Fachbezeichnung des Faches "Datenbanknote:" als Merkmalswert in
jedem Tupel (jedem Datensatz)! -
Dateiname: AUSDRUCK01
- Erstellen Sie eine Liste aller Noten aller Studenten mit der
Fachbezeichnung des Faches "Datenbanknote:" als Merkmal! -
Dateiname: AUSDRUCK02
|
3. Bedingungen in der WHERE-Klausel
(Search-Conditions) |
 |
 |
 |
 |
Searchconditions sind das
erste Salz in der Suppe aller SQL-Anweisungen. Bereits hier muss der
Programmierer ein gesundes Maß logischem "Maschinendenken"
mitbringen, denn die Anfrage muss natürlich entsprechend den logischen
Erfordernissen der SQL gestellt werden.
Anzuzeigen (VIEW)sind sind nicht die durch die Anfragen faktisch bekannten
Fakten - diese müssen lediglich in der Projektion eingesetzt werden.
|
 |
die allgemeine Searchcondition lautet: WHERE <search
condition> (true oder false)
|
 |
Searchcondition heißt Suchbedingung oder -kriterium - das ist ein Vergleichsmuster,
nach welchem im Zieldatensatz gesucht wird
|
 |
- Vergleichsoperatoren:
- = ist gleich == ist genau gleich (unterscheidet
auch die Groß- und Kleinschreibung) - kennt Access schon mal nicht
:-(
- <> ist ungleich
- < ist kleiner als
- <= ist kleiner gleich als
- > ist größer als
- >= ist größer gleich als
- Zieldatensätze enthalten einen NULLWERTE: Ist NULL
oder die Umkehrung: Ist Nicht
NULL
- Prädikate können mit AND, OR und
NOT
zu komplexeren Bedingungen verknüpft werden - Logik mit Vorranganalyse
- siehe hier
- Platzhalter:
- JOKER: * steht für eine beliebige
Menge beliebiger Zeichen - einschließlich der
Menge 0
- *e* findet alle Einträge, welche im
Vergleichsmuster an beliebiger Stelle ein "e" enthalten
- also: Meyer,
Lehrer.
leer
- nicht aber: Hoppla, Dortmund oder blauäugig, da hier das
Suchkriterium nicht erfüllt wird
- Me* findet alle Einträge, welche im
Vergleichsmuster mit der Zeichenfolge "Me" beginnen -
also: Meyer,
Meinhardt,
Meerrettich
- nicht aber: Hoppelpoppel oder Fußball, da hier das
Suchkriterium nicht erfüllt wird
- *t findet alle Einträge, welche im Vergleichsmuster
mit "t" enden - also: Camembert,
Robert
- nicht aber: Blumentopf oder
Firlefanz, da hier das Suchkriterium nicht erfüllt wird
- *.12.88 findet alle Datumseinträge, welche im
Dezember 1988 datiert wurden - also: 12.12.88;
05.12.88 - nicht aber:
12.05.88; 01.11.86,
da hier das Suchkriterium nicht erfüllt wird
- 12.*.88 findet alle Datumseinträge, welche im
Bereich des 12. eines jeden Monats im Jahre 1988 datiert wurden -
also: 12.12.88; 13.01.88
- nicht aber: 14.05.88; 12.11.86,
da hier das Suchkriterium nicht erfüllt wird
- WILDCARD: ? steht für genau ein
beliebiges Zeichen
- ??? findet alle Einträge, welche im
Vergleichsmuster genau aus drei Zeichen bestehen - also: Luv,
Lee
- nicht aber: Kreuzung, Hoppla, Ei
oder M
, da hier
das Suchkriterium nicht erfüllt wird
- M?y* findet alle Einträge, welche im
Vergleichsmuster mit "M" beginnen und als drittes
Zeichen ein "y" führen, gefolgt von einer beliebigen
Menge weiterer Zeichen - also: Meyer;
Omy Gott, was für'n Scheiss! - nicht aber Hoola-Hopp
und Help me
- ??? ODER ???? findet alle Einträge, welche im
Vergleichsmuster genau aus drei oder vier Zeichen bestehen - also: Luv,
Hoop, Lee,
Hank - nicht aber:
Kreuzung, Hoppla, Ei
oder M
, da
hier das Suchkriterium nicht erfüllt wird
- Gruppen-JOKER: [..] Zeichenmuster
- steht für die in den Klammern stehenden Zeichen - gilt auch für
das einzelne Zeichen
- ??[ea]*" findet "Tea" und
"Neandertaler" - nicht aber "Wir",
"Kollision" und "Erde"
- WILDCARD: # numerisches WILDCARD - steht für genau
eine Ziffer
- WILDCARD: ! Ausschlussoperator - schließt genau die
nachfolgende Zeichengruppe auch vereinzelt aus (nur im Zusammenwirken
mit dem Gruppenjoker)
- "??[!ea]*" findet "Wir",
"Kollision" und "Erde" - nicht aber
"Tea" und "Neandertaler"
- JOKER und WILDCARD lassen sich in Text, Zahl und Datum zum Ausfiltern
beliebiger Mengen beliebiger Zeichen einsetzen
- JOKER und WILDCARD sind nicht in allen
SQL-Systemen identisch in FoxPro wird "_" als JOKER und das
"%"-Zeichen als WILDCARD verwendet - 's wär' sonst zu
einfach :-(
- Zieldatensätze beginnen mit einem
"M": LIKE "M*"
- Zieldatensätze enthalten ein
"m": LIKE "*m*"
- Zieldatensätze enthalten genau
"M": LIKE "M"
- Zieldatensätze liegen zwischen
"I" und "K": >="I"
AND <="K"
- Zieldatensätze enthalten genau ein
einzelnes beliebiges Zeichen: LIKE "?" (LIKE muss in
der Entwurfsansicht der Abfrage nicht mit notiert werden)
- Zieldatensätze enthalten ein Datum:
#31.12.1997#
- Einsatz von JOKER und/oder Wildcard im Datum - dann entfällt das #
- Datum als Funktion liefert das Systemdatum
- auslassen der Jahresangabe setzt das aktuelle Jahr
- Wahrheitswerte:
- Wahr für Bedingung erfüllt
- Falsch für Bedingung nicht erfüllt
- Beispielmuster
|
 |
Lösungsmuster:
|
Aufgabenfeld Selektion
- Wer von den Studenten hat seinen Hauptwohnsitz in München (der Ort
"München" ist richtigerweise nicht mit in die Projektion
einzubeziehen, denn es kommen ja eh alle die Gesuchten aus München)? -
Dateiname: SEARCH01 - die
Lösung gibt's hier
- unsinnig aber auszuführen ist die Abfrage: Wer wohnt in Berlin und in
München - das ist logischerweise keiner, denn es kann kein Student
gleichzeitig seinen Hauptwohnsitz in Berlin und in München haben)? -
Dateiname: SEARCH02 - die Lösung gibt's
hier
- ... umgekehrt (also ODER-verknüpft in der Searchcondition geht dies sehr
wohl, denn es müssen sogar (logischerweise!) mehr Studenten in Berlin ODER
München ihren Hauptwohnsitz haben, als nur in München allein! -
Dateiname: SEARCH03 - die Lösung gibt's
hier
- Wer der aufgeführten Studenten wohnt auf der Münchener Leopoldstraße? - Dateiname: SEARCH04
- die Lösung gibt's
hier
- Wer wohnt auf der Münchener Leopoldstraße im gleichen Haus Nr. 42? -
Dateiname: SEARCH05 - die Lösung gibt's
hier
- Wer wohnt alles in der Königsstraße 7? - Dateiname: SEARCH06
- die Lösung gibt's
hier
- Wer von den Studenten wohnt in München auf zwei aufeinanderfolgenden Hausnummern? -
begründen Sie in der Datei SEARCH07.TXT,
warum diese Abfrage nicht möglich und nennen Sie mindestens zwei
Voraussetzungen, um auch diese Abfrage korrekt abzuwickeln! - die Lösung gibt's
hier
- Welcher Student wohnt in Berlin auf der Beethovenstraße? - Dateiname: SEARCH08
- die Lösung gibt's
hier
- Wer der aufgelisteten Studenten wohnt am Großen Garten? - Dateiname: SEARCH09
- die Lösung gibt's
hier
- Wessen Mail-Adresse der erfassten Studenten wird bei "Kolibri"
gehostet? - Dateiname: SEARCH10 - die Lösung gibt's
hier
- Wessen Studenten-Nachname beginnt mit "P"? - Dateiname: SEARCH11
- die Lösung gibt's
hier
- Wessen Studenten-Nachname führt als drittes Zeichen ein "e"? - Dateiname: SEARCH12
- die Lösung gibt's
hier
- Wessen Studenten-Nachname ist genau drei Zeichen lang? - Dateiname: SEARCH13
- die Lösung gibt's
hier
- Wessen Studenten-Nachname führt als drittes Zeichen ein "t" und ist
maximal 5 Zeichen lang? - Dateiname: SEARCH14
- die Lösung gibt's
hier
- Wessen Studenten-Nachname führt als drittes Zeichen ein "e" und ist genau
5 Zeichen lang? - Dateiname: SEARCH15
- die Lösung gibt's
hier
- Welche der erfassten Studenten wurden am 14.12.1979 geboren - Achtung:
Daten in Doppelkreuz und immer vollständig - also: #08.08.1986#?
-
Dateiname: SEARCH16 - die Lösung gibt's
hier
- Welche der erfassten Studenten wurden im Zeitraum von 07.12.1977 bis
23.05.1979 geboren - Achtung: Daten in Doppelkreuz und immer vollständig -
also: #08.08.1986#? - Dateiname: SEARCH17
- die Lösung gibt's
hier
- Welche der erfassten Studenten wurden im Jahr 1979 geboren - Achtung: Daten
in Doppelkreuz und immer vollständig - also: #08.08.1986#?
-
Dateiname: SEARCH18 - die Lösung gibt's
hier
- Welche der erfassten Studenten wurden am 13.9. geboren - Achtung: Daten
in Doppelkreuz und immer vollständig oder unter Verwendung entsprechender
JOKER und/oder WILDCARDs, jedoch ohne "#" angeben - also: 08.08.#?
-
Dateiname: SEARCH19 - die
Lösung gibt's hier
- Welche der erfassten Studenten kommen aus Berlin und haben keine
Fahrerlaubnis? - Dateiname: SEARCH20 - die
Lösung gibt's hier
- Welche der erfassten Studenten bekommen kein Bafög? - Dateiname: SEARCH21
- die Lösung gibt's
hier
- Welche der erfassten Studenten haben ihre Website noch nicht aktiviert? - Dateiname:
SEARCH22 und anders herum SEARCH22a
- die Lösung gibt's
hier
- Wer bekommt mehr als 320,-€ Bafög? - Dateiname: SEARCH23
- die Lösung gibt's
hier
- Wessen Bafög beträgt zwischen 320,-€ und 380,-€?- Dateiname: SEARCH24
- die Lösung gibt's
hier
- Wer von den eingeschriebenen Studenten aus München hat bei einem
Professor Vorlesung, der weniger als 4000,-€ Einkommen hat? Achtung:
hier muss wirklich das ERM hinzugezogen werden, um zu ermitteln, welche
Entities an der Referenz beteiligt sind!
- Dateiname: SEARCH25 - die
Lösung gibt's hier
- Wo wohnt Prof. Lan Z. Elot und wie viel Gehalt bezieht er im Monat? - Dateiname: SEARCH26
- die Lösung gibt's
hier
- Welche Professoren haben einen 5 Zeichen langen
Nachnamen - anzuzeigen sind Titel, Vorname, Zusatz und Nachname? - Dateiname: SEARCH27
- die Lösung gibt's
hier
- Welche Studenten sind verheiratet und nicht vorbestraft oder kommen aus
München - anzuzeigen sind Titel, Vorname, Zusatz und Nachname? Achtung:
hier muss wirklich logisch gedacht werden werden, um zu ermitteln, welche Bedingungen
wie gelten - man kann sich ja die Suchkriterien mit in den VIEW ziehen! - Dateiname: SEARCH28
verändere das ODER München zum UND München - vergleiche! - Dateiname: SEARCH28a
- die Lösung gibt's
hier
- Welche weiblichen Studenten sind verheiratet, nicht vorbestraft und nicht
größer als 1,73 m - anzuzeigen sind Titel, Vorname, Zusatz und Nachname? - Dateiname: SEARCH29
- die Lösung gibt's
hier
- Welche weiblichen Studenten sind alleinerziehend, nicht vorbestraft aber
größer als 1,73 m - anzuzeigen sind Titel, Vorname, Zusatz und Nachname? - Dateiname: SEARCH30
- die Lösung gibt's
hier
- Welche alleinerziehenden weiblichen Studenten haben ihre Website aktiviert
- anzuzeigen sind Titel, Vorname, Zusatz und Nachname? - Dateiname: SEARCH31
- die Lösung gibt's
hier
- Anzuzeigen ist das Bafög aller männlichen Studenten, welche vorbestraft
sind - anzuzeigen sind Titel, Vorname, Zusatz und Nachname? - Dateiname: SEARCH32
- die Lösung gibt's
hier
- Anzuzeigen ist die Immatrikulationsnummer aller nicht vorbestraften weiblichen Studenten,
deren Geburtsdatum zwischen dem 11. und 19. eines Monats liegt! - Dateiname: SEARCH33
- die Lösung gibt's
hier
- Gesucht sind die Studenten, welche als drittes Zeichen im Nachnamen
"a", "e", "d" "f" oder "k"
führen! - Dateiname: SEARCH34 - die Lösung gibt's
hier
- Gesucht sind die Studenten, welche als drittes Zeichen im Nachnamen nicht
"g", "b", "n" "d" oder "r"
führen! - Dateiname: SEARCH35 - die Lösung gibt's
hier
|
 |
|
4. Komplexe
Suchedingungen mit Vorrangregelung in der WHERE-Klausel (Search-Conditions) |
 |
 |
 |
 |
Komplexe Searchconditions
ergeben sich bei mehr als einer ungleichen logischen Verknüpfungen von
Suchkriterien
|
 |
Wir haben sprachliche Probleme mit den logischen Operatoren:
- so geben wir an, nach Studenten zu suchen, die nicht aus München
oder nicht aus Berlin kommen, meinen doch aber Studenten, die nicht
aus Berlin und nicht aus München kommen
- mit den beiden Aussagen erreicht man aber einander vollkommen
entgegengesetzte Ergebnisse - und das liegt daran, das wir
umgangssprachlich die Fragezeile von links nach rechts abarbeiten -
die Datenbank aber nicht
|
 |
die allgemeine Searchcondition lautet: WHERE <search
condition> (true oder false) OPERATOR <search
condition> (true oder false)
|
 |
Höchste Wichtung
(wird zuerst abgearbeitet) |
Wichtung nach
Not und vor OR und XOR |
Wichtung nach
Not und AND, aber vor XOR |
Niedrigste
Wichtung (wird zuletzt abgearbeitet) |
Logisches
NOT(Nicht) |
Logisches AND
(Und) |
Logisches OR
(Oder) |
Logisches XOR (Exclusiv-Oder) |
Bedingung |
Logisches
Ergebnis |
false
(falsch) |
true
(wahr) |
|
Bedinung 1 |
Bedingung 2 |
Logisches Ergebnis |
false (falsch) |
false (falsch) |
false (falsch) |
false (falsch) |
true (wahr) |
false (falsch) |
true (wahr) |
false (falsch) |
false (falsch) |
true
(wahr) |
true
(wahr) |
true
(wahr) |
|
Bedinung
1 |
Bedingung
2 |
Logisches
Ergebnis |
false
(falsch) |
false
(falsch) |
false
(falsch) |
false
(falsch) |
true (wahr) |
true (wahr) |
true (wahr) |
false
(falsch) |
true (wahr) |
true (wahr) |
true (wahr) |
true (wahr) |
|
Bedinung
1 |
Bedingung
2 |
Logisches
Ergebnis |
false
(falsch) |
false
(falsch) |
false
(falsch) |
false
(falsch) |
true
(wahr) |
true
(wahr) |
true
(wahr) |
false
(falsch) |
true
(wahr) |
true
(wahr) |
true
(wahr) |
false
(falsch) |
|
|
 |
die logischen Aussagen können mit dem Negator (auch getrennt!)
verknüpft werden und oder durch Klammersetzung in ihrer Wichtung
entsprechend gesetzt werden
|
 |
mehrere Searchconditions können geschachtelt und/oder gefolgt werden
- darüber entscheiden die Fragestellung und die logischen Operatoren mit
ihrer Wichtung zueinander (das ist die Reihenfolge der Abarbeitung - siehe
logische Tabellen oben)
|
 |
das hat natürlich 'ne enge Bindung zur Bool'schen Aussagen-Logik sowie
auch zu den de Morgan'schen Additionstheoremen
|
 |
- beachten Sie die Prioritäten der logischen
Funktionen: NOT AND OR XOR oder
Klammerung
- insbesondere OR-Bedingungen nach einer
AND-Klausel müssen extra geklammert werden, da aufgrund
der Vorrangautomatik der AND-Ausdruck zuerst ausgewertet
und anschließend mit OR verknüpft wird (Vergleiche
dazu Aufgabe 14 - falsche Klammersetzung führt zu
falschem Ergebnis!!!)
- in der ACCESS-Entwurfsansicht müssen
die OR-Bedingungen dann in eine Zeile geschrieben, in SQL
zusätzlich geklammert werden
|
Aufgabenfeld komplexe Selektion mit Positiv- und
Negativlisten sowie Vorrangautomatik
- Wer von den eingeschriebenen Studenten aus München hat bei einem
Professor Vorlesung, der mehr als 4000,-€ Einkommen hat, der in der
Universitätsstadt wohnt oder aus Berlin kommt? -
Dateiname: COMPLEX01 - die
Lösung gibt's hier
- Wie viel Bafög haben die Studenten, die entweder aus Berlin oder aus
Potsdam kommen, jedoch kein eigenes Fahrzeug angemeldet haben (die
persönlichen Daten der Studenten werden ebenfalls benötigt!)? -
Dateiname: COMPLEX02 - die
Lösung gibt's hier
- Wer der eingeschriebenen Studenten kommt nicht aus München oder Potsdam,
hat ein eigenes Auto und bezieht zusätzlich noch Kindergeld? -
Dateiname: COMPLEX03 - die
Lösung gibt's hier
- Wie viel Kindergeld bekommen die Studenten, die entweder aus Berlin
oder aus München kommen, gleichzeitig keine Nebenwohnung haben und im Jahr
1978 geboren wurden? -
Dateiname: COMPLEX04 - die
Lösung gibt's hier
- Welche Studenten kommen aus Berlin und haben ein Hobby, welches nicht
Angeln oder Schiffsmodellbau ist? -
Dateiname: COMPLEX05 - die
Lösung gibt's hier
- Welche Studenten kommen nicht aus Berlin oder Potsdam, haben zwischen als
300,- € und 600,-€ Bafög und kein Fahrzeug oder bei Herrn G. Brechen
Vorlesung? -
Dateiname: COMPLEX06 - die
Lösung gibt's hier
- Welche Studenten beziehen kein Bafög oder haben keine Fahrerlaubnis und
kommen aus Berlin oder München? -
Dateiname: COMPLEX07 - die
Lösung gibt's hier
- Welche Studenten kommen nicht aus Rostock und nicht aus Berlin? -
Dateiname: COMPLEX08 - die
Lösung gibt's hier
|
 |
|
5. Indirekte
Abfragen mit komplexen Bedingungen sowie
Vorrangregelung in der WHERE-Klausel (Search-Conditions) |
 |
 |
 |
Aufgabenfeld Selektion mit indirekter
Suchbedingung
- Wer von den Studenten ist Übergewichtig (als Übergewichtig gelten:
Männer ab 18 Jahre mit mehr als 75 kg und Frauen ab 18 Jahre mit mehr als
65 kg Gewicht)? -
Dateiname: INDIREKT01 - die
Lösung gibt's hier
- Welche männlichen Studenten sind für ihre Größe zu dick (das sind
Männer zwischen 1,5 und 1,65 m mit mehr als 60 kg, zwischen 1,65 und
1,75 m mit mehr als 70 kg, zwischen 1,75 und 1,85 m mit mehr als 80
kg, zwischen 1,85 und 1,905 m mit mehr als 90 kg und zwischen 1,95 und
2,0 m mit mehr als 100 kg)? -
Dateiname: INDIREKT02 - die
Lösung gibt's hier
- Welche weiblichen Studenten sind für ihr Gewicht zu klein (das sind Frauen zwischen 1,5 und 1,65 m mit mehr als 55 kg, zwischen 1,65 und
1,75 m mit mehr als 65 kg, zwischen 1,75 und 1,85 m mit mehr als 75
kg, zwischen 1,85 und 1,95 m mit mehr als 85 kg und zwischen 1,95 und
2,0 m mit mehr als 95 kg)? - Dateiname: INDIREKT03 - die
Lösung gibt's hier
- Welche Studenten kommen für die uni-interne Webpublikation in Frage (das
sind Männer mit mehr als 20 Jahren, einer Mailadresse sowie einer aktiven
Website und Frauen über 19 Jahren, einer Mailadresse sowie einer aktiven
Website)? -
Dateiname: INDIREKT04 - die
Lösung gibt's hier
- Welche Studenten kommen für die Basketballmannschaft in Frage (das
sind Männer mit mehr als 1,90 m und Frauen mit mehr als 1,75
Körpergröße)? -
Dateiname: INDIREKT05 - die
Lösung gibt's hier
|
 |
|
Aufgabenfeld IN-Prädikat - nicht mit ODER-Verknüpfung zu
lösen!
- Wer kommt aus München, Hannover, Leipzig, Potsdam, Rostock und Berlin? -
Dateiname: IN01 - die
Lösung gibt's hier
- Welche Studenten kommen nicht aus Berlin, Leipzig und München und sind größer als
1,80 m?: IN02 - die
Lösung gibt's hier
- Welche Studenten kommen aus Berlin, Rostock, Potsdam und München, sind größer als
1,80 m
und haben mehr als 320,-€ Bafög? -
Dateiname: IN03 - die
Lösung gibt's hier
- Wie viel Kindergeld bekommen die Studenten, die nicht aus Berlin,
Rostock und aus München kommen, gleichzeitig keine Nebenwohnung haben und
sind im Jahr 1978 geboren wurden -
Dateiname: IN04 - die
Lösung gibt's hier
- Welche Studenten verbergen sich hinter den Immatrikulationsnummern:
21C0841B, 52C0585A, 21C0484B, 21C0771A, 24C0832A, 26C0816A, 27C0539A? -
Dateiname: IN05 - die
Lösung gibt's hier
|
7. Das
Mengenprädikat BETWEEN (gekoppelt mit IN-Prädikat sowie Searchconditions) |
 |
 |
 |
Aufgabenfeld zum BETWEEN-Prädikat
- Wer von den eingeschriebenen Studenten und Professoren hat einen
Nachnamen, dessen Anfangsbuchstabe im Bereich zwischen "M" und
"R" liegt? -
Dateiname: BETWEEN01 - die
Lösung gibt's hier
- Wessen Note der aufgeführten Studenten im Fach Datenbanken liegt
zwischen 1,3 und 3,3? -
Dateiname: BETWEEN02 - die
Lösung gibt's hier
- Wer der eingeschriebenen Studenten kommt nicht aus München, Leipzig,
Rostock, Marburg oder Potsdam,
hat ein eigenes Auto, bezieht zusätzlich noch Kindergeld sowie ein Bafög
zwischen 700,- und 800,- €? -
Dateiname: BETWEEN03 - die
Lösung gibt's hier
- Welche der aufgeführten Professoren haben ein Einkommen zwischen 5500,-
und 6300,-€ ? -
Dateiname: BETWEEN04 - die
Lösung gibt's hier
- Welche Studenten, deren Immatrikulationsnummer zwischen 22 und 56 beginnt
kommen aus München? -
Dateiname: BETWEEN05 - die
Lösung gibt's hier
- Welche Vorlesung, die mit den Nummern11 bis 65 beginnt, findet am
Donnerstag statt? -
Dateiname: BETWEEN06 - die
Lösung gibt's hier
|
 |
|
8. JOINS
in der FROM Klausel |
 |
 |
 |
 |
JOINs sind der Hammer der
Datenbankabfrage schlechthin. Dabei verhalten sie sich unauffällig und
treten streng genommen unter ACCESS bei sauber gestalteten ERM nur auf
ausdrücklichen Wunsch hin in Erscheinung, da alles automatisch läuft,
wenn es denn kann. Kann es aber nur, wenn die Spielregeln der
Schlüsselkonzepte, Integrität sowie auch der SQL selbst korrekt
eingehalten werden.
|
 |
|
 |
die allgemeine Searchcondition lautet: FROM <table_1>
,<table_2>, ... ,<table_n>
|
 |
mehrere Seachconditions können als Positiv- oder Negativliste
aufgebaut werden - darüber entscheidet der Zweck und der NOT-Operator
|
 |
- beachten Sie die Prioritäten der logischen
Funktionen: NOT AND OR XOR oder Klammerung
- insbesondere OR-Bedingungen nach einer
AND-Klausel müssen extra geklammert werden, da aufgrund
der Vorrangautomatik der AND-Ausdruck zuerst ausgewertet
und anschließend mit OR verknüpft wird (Vergleiche
dazu Aufgabe 14 - falsche Klammersetzung führt zu
falschem Ergebnis!!!)
- in der ACCESS-Entwurfsansicht müssen die OR-Bedingungen dann in eine
Zeile geschrieben, in SQL zusätzlich geklammert werden
|
 |
allgemein: FROM <tabelle_1>
JOIN <tabelle_2>
INNER-Join oder auch Natürlicher Verbund
... ist die
Standard-Verbindung über Fremdschlüssel! Jedem Tupel des einen Entity ist
genau ein Tupel des anderen Enity zugeordnet
AUTO-JOIN Selbstbezug einer Tabelle
OUTER-Join Natürlicher Verbund
- Left-OUTER-JOIN
- Right-OUTER-JOIN
- UNION-Operationen
Union-Operator
SQL-spezifische
Abfragebefehle ermöglichen die Erstellung einiger spezieller
Arten von SQL-Abfragen. Weil diese Abfragetypen nicht adäquat im
Entwurfsfenster dargestellt werden können, weigert sich ACCESS
bei derartigen Abfragen von vornherein die Entwurfsansicht zu
aktivieren.
Gespeicherte UNION-Abfragen (Vereinigungsabfragen) werden durch
das unten dargestellte Symbol angegeben. UNION bedeutet in diesem
Falle, dass im zugehörigen Datenblatt in einem einzigen Feld
Daten dargestellt werden, die mehreren Tabellen entstammen.
|
Aufgabenfeld zum BETWEEN-Prädikat
- Wer von den eingeschriebenen Studenten und Professoren hat einen
Nachnamen, dessen Anfangsbuchstabe im Bereich zwischen "M" und
"R" liegt? -
Dateiname: JOIN01 - die
Lösung gibt's hier
- Wessen Note der aufgeführten Studenten im Fach Datenbanken liegt
zwischen 1,3 und 3,3? -
Dateiname: JOIN02 - die
Lösung gibt's hier
- Wer der eingeschriebenen Studenten kommt nicht aus München, Leipzig,
Rostock, Marburg oder Potsdam,
hat ein eigenes Auto, bezieht zusätzlich noch Kindergeld sowie ein Bafög
zwischen 700,- und 800,- €? -
Dateiname: JOIN03 - die
Lösung gibt's hier
- Welche der aufgeführten Professoren haben ein Einkommen zwischen 5500,-
und 6300,-€ ? -
Dateiname: JOIN04 - die
Lösung gibt's hier
- Welche Studenten, deren Immatrikulationsnummer zwischen 22 und 56 beginnt
kommen aus München? -
Dateiname: JOIN05 - die
Lösung gibt's hier
- Welche Vorlesung, die mit den Nummern11 bis 65 beginnt, findet am
Donnerstag statt? -
Dateiname: JOIN06 - die
Lösung gibt's hier
|
 |
|
 |
Berechnete Abfragen wenden die
bekannten mathematischen Operatoren auf eine Auswahl von Merkmalswerten
bzw. eine durch Selektion zusammengefasste Gruppe von Merkmalswerten an. Um eine sinnvolle
Projektion zu erhalten, ist mitunter eine Ausdrucksoperation erforderlich.
|
 |
die allgemeine Searchcondition lautet: SELECT <ausdruck> (operator
_1) <operation> (operator_2)
|
 |
Liste zulässiger Operatoren:
Addition
Subtraktion
Multiplikation
Division
Quadrat
Wurzel
Prozent
|
 |
die Berechnungsvorschriften müssen in der SQL-Ansicht formuliert werden
|
 |
Dezimaltrennzeichen ist in der SQL-Ansicht der Punkt - ansonsten gelten
die Standardoperatoren
|
 |
keine Maßangaben in der Berechnung mitführen
|
Aufgabenfeld berechnete Abfragen
- Anzuzeigen sind das verfügbare monatliche Einkommen der Studenten - das
sind Bafög zuzüglich Nebeneinkommen abzüglich Unterhaltszahlungen! -
Dateiname: RECHNUNG01 - die
Lösung gibt's hier
- Erstellen Sie eine Liste mit zu zahlenden Beitrag für das
"Studentenhilfswerk", der für alle Studenten mit positivem
Einkommen 1,8 % beträgt! -
Dateiname: RECHNUNG02 - die
Lösung gibt's hier
|
10. GROUP BY-Klausel
sowie ORDER BY -Klausel |
 |
 |
 |
Aufgabenfeld Gruppierung und Sortierung
- Anzuzeigen ist eine namentliche Liste aller Studenten sortiert nach
Geburtsdatum vom ältesten Studenten beginnen! -
Dateiname: GRUPPE01
- Erstellen Sie eine Liste aller Noten aller Studenten mit der
Fachbezeichnung des Faches "Datenbanknote:" als Merkmal! -
Dateiname: GRUPPE02
- Erstellen Sie eine Liste aller Noten aller Studenten mit der
Fachbezeichnung des Faches "Datenbanknote:" als Merkmal! -
Dateiname: GRUPPE03
- Erstellen Sie eine nach den Herkunftsorten absteigend organisierte Liste,
in welcher die Nachnamen jeweils alphabetisch aufsteigend organisiert sind -
Dateiname: GRUPPE04
- Erstellen Sie eine Liste, in welcher die Nachnamen aller Studenten aus
Berlin alphabetisch absteigend organisiert sind -
Dateiname: GRUPPE05
|
11. Aggregierende
Funktionen (Statistik) |
 |
 |
 |
Aufgabenfeld Aggregatfunktionen (auch als
statistische Funktionen bezeichnet)
- Wie hoch ist das durchschnittliche Bafög aller Studenten? -
Dateiname: FUNCT01
- Wie hoch ist das durchschnittliche Bafög aller Studenten, die aus
München kommen? -
Dateiname: FUNCT02
- Wie viele Studenten, die aus München kommen besuchen die Vorlesung "Schaltkreisentwurf"? -
Dateiname: FUNCT03
- Wie viel beträgt die höchste Miete? -
Dateiname: FUNCTION04
- Wie viele Studenten, die aus München kommen haben ihre Praktika nicht
bestanden? -
Dateiname: FUNCT05
- Wie viele Studenten stammen jeweils aus dem gleichen Ort? -
Dateiname: FUNCT06
- Wie viele Männer unter den Studenten sind Fußballfans? -
Dateiname: FUNCT07
- Wie viele weibliche Studenten haben Boxen als Hobby? -
Dateiname: FUNCT08
|
 |
Sollen zusätzliche
Bedingungen auf eine numerische Funktion angewandt werden, so ist hierfür
die HAVING-Klause zuständig
|
 |
die allgemeine Searchcondition lautet: WHERE <search
condition> (true oder false)
|
Aufgabenfeld Aggregierende Funktionen
- Wie viel Euro beträgt das durchschnittliche BAFÖG aller Studenten? -
Dateiname: HAVING01 - die
Lösung gibt's hier
- Wer von den Studenten hat das höchste BAFÖG? -
Dateiname: HAVING02 - die
Lösung gibt's hier
- Wer von den Studenten hat die meisten Hobbies? -
Dateiname: HAVING03 - die
Lösung gibt's hier
- Wie viele der eingeschriebenen Studenten gehen Schwimmen als Hobby nach? -
Dateiname: HAVING04 - die Lösung gibt's
hier
- Welchen Hobbies wird am meisten nachgegangen! -
Dateiname: HAVING05 - die Lösung gibt's
hier
- Wie viel Studenten gehen Rudern und Robotertechnik als
Hobby nach? - Dateiname: HAVING06 - die Lösung gibt's
hier
- Wie viel Studenten gehen Rudern oder Robotertechnik als
Hobby nach? -
Dateiname: HAVING07 - die Lösung gibt's
hier
- Welchem Hobby wird überhaupt nicht nachgegangen? - Dateiname: AGGREGAT08
- die Lösung gibt's
hier
- Welche Studenten haben mehr als zwei Hobbies? - Dateiname: HAVING09
- die Lösung gibt's
hier
- Welches sind die drei Lieblingshobbies aller Studenten? - Dateiname: HAVING10
- die Lösung gibt's
hier
- Wie viele aller Studenten gehen dem Hobby mit der Nummer K7785 nach? - Dateiname:
HAVING11 - die Lösung gibt's
hier
- Wie viele männliche und wie viele weibliche Studenten gehen dem Hobby
"Schauspielerei" nach? (Achtung: das sind zwei Abfragen!!!) - Dateiname:
HAVING12 - die Lösung gibt's
hier
- Wie viele Hobbies werden insgesamt von allen registrierten Studenten
betrieben? - Dateiname: HAVING13 - die Lösung gibt's
hier
- Wie viele weibliche Studenten ohne eigenes Fahrzeug gehen gern Wandern? - Dateiname:
HAVING14 - die Lösung gibt's
hier
- Wie viele männlliche Studenten mit eigenem Fahrzeug, welche gern Wandern
gehen haben im Fach Datenbanken eine Not schlechter 3,6? - Dateiname: HAVING15
- die Lösung gibt's
hier
- Wer hat die meisten Hobbies? - Dateiname: HAVING16
- die Lösung gibt's
hier
- Wie viele nicht aus München stammende Studenten haben Elektronik als
Hobby: HAVING17 - die Lösung gibt's
hier
- Welchem Hobby wird am meisten nachgegangen? - Dateiname: HAVING18
- die Lösung gibt's
hier
- Welches Hobby ist das beliebteste unter den männlichen Studenten? - Dateiname:
HAVING19 - die Lösung gibt's
hier
- Gibt es mehr als 100 Fußball begeisterte Studenten? - Dateiname: HAVING20
- die Lösung gibt's
hier
|
Aggregierende (zusammenfassende) Funktionen
HAVING <function>
- nur im Zusammenhang mit
der Gruppierungsfunktion anwendbar
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
13. Quantifizierende
Prädikate |
 |
 |
 |
 |
Legt fest, ob und wenn ja, wie
viel mal ein Zieldatensatz in die Projektion einbezogen wird. Auch kann
ermittelt werden, ob überhaupt ein solcher existiert
|
 |
ALL
DISTINCT
ANY
SOME
EXISTS
|
 |
|
 |
Subqueries sind Abfragen auf
ein bereits bestehendes Abfrageergebnis - eben Unterabfragen, und diese in
einer einzigen Abfrage formuliert - sozusagen ein SELECT FROM WHERE nach
einem SELECT FROM WHERE
|
 |
|
 |
Hierbei wird die
Zielprojektion auf eine durchaus gültige Abfrage erst dann ausgeführt,
wenn eine jeweils zu setzende Ausgangsbedingung erfüllt ist
|
 |
|
... dieser Text wurde nach den
Regeln irgendeiner Rechtschreibreform verfasst - ich hab' irgendwann einmal
beschlossen, an diesem Zirkus nicht mehr teilzunehmen ;-)
„Dieses Land braucht eine Steuerreform, dieses Land
braucht eine Rentenreform - wir schreiben Schiffahrt mit drei „f“!“
Diddi Hallervorden, dt. Komiker und Kabarettist |
