GITTA-Logo
PDF Version of this document Search Help

Lesson Navigation IconAnfragesprache SQL

Unit Navigation IconSQL-Konzepte

Unit Navigation IconErstellen und Ändern von Tabellen

Unit Navigation IconDatenbankanfragen

LO Navigation IconSelect-From-Where

LO Navigation IconVerkettung von Bedingungen

LO Navigation IconVergleichs- und Mengenoperationen

LO Navigation IconArithmetische Operatoren

LO Navigation IconGeschachtelte Anfragen

LO Navigation IconVerbund

LO Navigation IconNicht relationale Konstrukte

LO Navigation IconMengenoperationen

LO Navigation IconZusammenfassung

LO Navigation IconÜbung „Datenbankanfragen“

Unit Navigation IconEinfügen, Löschen und Ändern

Unit Navigation IconLernkontrolle

Unit Navigation IconZusammenfassung

Unit Navigation IconLiteraturempfehlungen

Unit Navigation IconBibliographie

Unit Navigation IconMetadaten


GITTA/CartouCHe news:


Go to previous page Go to next page

Nicht relationale Konstrukte

„ORDER BY“-Klausel

SQL unterstützt auch Konstrukte, die mit der ursprünglichen relationalen Algebra wenig bis gar nichts zu tun haben. So besitzt eine Menge per Definition keine Ordnung. Mittels des Konstrukts „ORDER BY“ kann man jedoch eine Ordnung auf der Ergebnisrelation definieren. Die Schlüsselwörter „ASC“ und „DESC“ bezeichnen aufsteigende- resp. absteigende Anordung der Werte im Resultat. Wird keines dieser Schlüsselwörter angegeben, wird standardmässig aufsteigend sortiert.

ORDER BY Anfrage

Alle Kunden werden sortiert nach ihrem Namen (aufsteigend, wobei ASC als Standardeinstellung auch entfallen könnte) und ihrem Vornamen (absteigend, DESC) ausgegeben.

„GROUP BY“-Klausel

Gruppierungen („GROUP BY“-Klausel) dienen dazu, die Menge aller Tupel einer Relation nach bestimmten Kriterien in Teilmengen zu unterteilen, um für diese Teilmengen bestimmte Statistiken zu berechnen. Als Gruppierungskriterium dienen die Werte eines bestimmten Attributs. Alle Tupel, die für dieses Attribut den gleichen Wert besitzen, werden zu einer Gruppe zusammengefasst. Diese Gruppen können dann weiter bearbeitet werden (im Spezialfall auch durch eine weitere Gruppierung, um Gruppen von Gruppen zu bearbeiten etc.). Dazu dienen sogenannte Aggregatfunktionen, die nur auf numerische Attribute angewendet werden können. Folgende Aggregatfunktionen stehen üblicherweise zur Verfügung:

  • min zum Bestimmen des minimalen Werts eines Attributs
  • max zum Bestimmen des maximalen Werts eines Attributs
  • sum zum Berechnen der Summe der selektierten Werte eines Attributs
  • count zeigt die Anzahl der selektierten Werte eines Attributs (nicht der verschiedenen Werte!)
  • avg zum Berechnen des Mittelwertes aller selektierten Werte eines Attributs, wobei NULL-Werte nicht in die Berechnung einfliessen.
GROUP BY Anfrage

Mittels dieser Anfrage werden die Nummern aller Kunden bestimmt, die mit Kleinanzeigen (Preis des einzelnen Inserats weniger als 300 Franken) schon Inserate für mehr als 200 Franken in Auftrag gegeben haben. Bei der Bearbeitung dieser Anfrage wird erst die Restriktion berücksichtigt (A004 wird aussortiert), dann werden die verbliebenen Tupel gruppiert, und zum Schluss wird geprüft, welche Tupel, die Gruppen repräsentieren, tatsächlich ausgegeben werden sollen (die Gruppen der Kunden 002 und 005 werden aussortiert, da sie noch nicht das Limit erreicht haben).

Anfragen, die eine GROUP BY-Klausel enthalten, werden folgendermassen abgearbeitet. Zuerst wird die Bedingung im WHERE Teil ausgeführt, falls eine solche vorhanden ist. Danach wird nach den angegeben Spalten gruppiert. Mit der Bedingung im HAVING Teil der Anfrage kann anschliessend, falls nötig, noch eine Bedingung für die gruppierten Attributwerte angegeben werden. Auf Grund dieser Reihenfolge ist ersichtlich, dass die Bedingung im WHERE Teil der Anfrage keine Aggregatfunktionen enthalten kann, weil zu diesem Zeitpunkt noch gar nicht gruppiert wurde. Alle Attribute, die in der Anfrage vorkommen müssen aber trotzdem entweder in der GROUP BY-Klausel vorkommen oder in einer Aggregatfunktion stehen.

Top Go to previous page Go to next page