Benutzer-Werkzeuge

Webseiten-Werkzeuge


db:sql

SQL - Structured Query Language

SQL ist eine standardisierte Datenbanksprache zur Definition, Abfrage und Manipulation von Daten in relationalen Datenbanken. Sie wird von allen relationalen Datenbanksystemen unterstützt. SQL ist eine sehr komplexe Sprache und geht deutlich über die Möglichkeiten der Relationenalgebra hinaus.

Wir lernen SQL anhand des interaktiven SQL-Tutorials, das der Leistungskurs Informatik 2002/04 als Anwendungsprojekt entwickelt hat. Es steht auf diesen beiden Servern zur Verfügung:

Der schulserver.hessen.de unterbricht aufgrund erhöhter Sicherheitseinstellungen manchmal die Verbindung. Er hat auch Probleme mit dem Suchoperator %.

Ihr lernt selbstständig und eigenverantwortlich anhand der Lektionen und Übungen. Damit das auch gut klappt, richtet ihr euch nach folgender Anleitung:

  • Zur Verfolgung eures eigenen Lernprozesses dokumentiert ihr nach jeder Stunde euren Lernfortschritt, Erfahrungen und Fragen im Lernjournal des Moodlekurses.
  • Damit ihr nach dieser Einheit gut auf das Gelernte zurückgreifen könnt (wichtig für Klausuren und Prüfungen), erstellt ihr begleitend eine eigene Mindmap. Beispiele findet ihr im SQL-Tutorial. Als Mindmap-Software nehmt ihr XMind (OS X Version).
  • Aufgaben und Lösungen der Übungslektionen stellt ihr in einem Textdokument zusammen.

Abfrage einer rekursiven Beziehung

Das SQL-Tutorial enthält keine rekursiven Beziehungen. Daher folgen hier zwei Beispiele für entsprechende SQL-Abfragen.

a) Für die rekursive Beziehung ist_Vorgesetzter_von mit der Relation Mitarbeiter(Personalnummer, Nachname, Vorname, ↑VorgesetztenPersonalnummer) sollen die Mitarbeiter, die den Vorgesetzten Paul Schmidt haben, bestimmt werden.

SELECT A.Vorname, A.Nachname
FROM Mitarbeiter A, Mitarbeiter B 
WHERE A.VorgesetztenPersonalnummer = B.Personalnummer
  AND B.Vorname = 'Paul' AND B.Nachname = 'Schmidt'
 

b) Es soll eine Relation mit Nachname und Vorname aller Mitarbeiter erzeugt werden, die zu jedem Mitarbeiter auch Nachname und Vorname des Vorgesetzten enthält.

SELECT A.Vorname, A.Nachname, B.Vorname, B.Nachname
FROM Mitarbeiter A, Mitarbeiter B 
WHERE A.VorgesetztenPersonalnummer = B.Personalnummer

Rekursive Abfragen über alle Vorgesetztenstufen hinweg, z.B. Anzeige aller Mitarbeiter mit dem direkten oder indirekten Vorgesetzten Paul Schmidt, überschreiten das Schulniveau.

db/sql.txt · Zuletzt geändert: 2017/05/13 12:00 von roehner