SQL Datenbankabfragen – SQL

SQL ist eine Datenbankabfragesprache, mit der Daten aus einer Datenbank ausgelesen bzw abgefragt werden können. SQL ist der relationalen Algebra sehr ähnlich. Es gibt einige typische Befehle die immer wieder auftauchen. Ich gebe hier eine grobe Übersicht über die gängigen SQL Abfrageoperatoren.

Mengenoperationen

Es gibt folgende Mengenoperatoren, die relativ üblich in der SQL Abfragesprache sind.

  • UNION (Vereinigung)
  • EXCEPT oder MINUS für Differenz
  • INTERSECT für die Schnittmenge

Falls das Schlüsselwort „ALL“ nicht gegeben ist, werden Duplicate herausgefiltert.

Beispiel für UNION

(SELECT Vorname, Titel FROM aerzte) UNION (SELECT Name,Vorname FROM patienten)

Der „LIKE“ Operator

Neben dem LIKE Operator gibt es natürlich auch das Gegenteil, den „NOT LIKE“ Operator. Den Ausdruck kann man folgender maßen aufbauen:

SELECT Name, Vorname FROM Patienten WHERE Name LIKE "m%"

Gibt nun alle Patienten aus, die den Nachnamen mit „m“ beginnend sind.
% steht für beliebig viele Buchstaben vor oder nach dem Ausdruck & _ steht für genau einen Buchstaben.

Der „IN“ Operator

Mit dem „IN“ Operator kann man prüfen, ob ein Wert in einer Menge enthalten ist. Beispiel:

SELECT * FROM Petienten WHERE Name IN ("Müller", "Meier", "Schmidt")

Der „BETWEEN“ Operator

Der „BETWEEN“ Operator filtert Ergebnisse außerhalb eines bestimmten Wertebereiches aus.

SELECT * FROM Petienten WHERE Datum BETWEEN "2014-12-01" AND "2014-11-01"

Der „CASE“ Operator

Der „CASE“ Operator ist ähnlich einer IF-Abfrage und erstellt eine neue Spalte mit dem Ergebnis der Bedingung.

SELECT Name, Vorname, CASE 
                             WHEN EXISTS (SELECT * FROM termine as T
                                                   WHERE T.PatNr = P.PatNr AND Datum = "2014-04-01")
                             THEN "Ja" ELSE "Nein" 
                         END
   FROM Patienten as P

Die Aggregatfunktionen

Aggregatfunktionen können nicht in der WHERE Klausel stehen. Aggregatfunktionen müssen immer hinter dem SELECT stehen, in der Attributliste. Ausnahme ist GROUP BY, welches ans Ende angehangen wird.

  • MAX() -> Gibt das Maximum aus
  • MIN() -> Minimum
  • SUM() -> Summe der Werte
  • AVG() -> Durchschnitt der Werte
  • Beliebteste Funktion: COUNT
  • GROUP BY -> Gruppiert Tupel

Auswertungsreihenfolge von SQL Statements

Select PLZ, Ort, count(*) AS Zahl
FROM Patienten
WHERE geschlecht = "m"
GROUP BY plz
HAVING zahl>1
ORDER BY plz DESC
LIMIT 3
  1. FROM: 1 Große Relation aus allen Kreuzprodukten & Verbünden
    WHERE: Selektiert einzelne Tupel nach Spalteninhalt
    SELECT: Liefert Spalten und erstellt eventuell neue Spalten durch „COUNT()“ etc
  2. GROUP BY: Gruppiert die Ergebnisse
  3. HAVING: Sortiert die Ergebnisse die der Bedingung nicht entsprechen aus
  4. SELECT: Schmeißt alle Spalten weg, die nicht gefordert sind
  5. ORDER BY: Alles wir durch sortiert
    LIMIT: Es werden nur eine bestimmte Anzahl an Ergebnisse ausgegeben

Geschachtelte SQL Anfragen

SELECT Name, Vorname 
FROM Patienten 
WHERE PatNr 
IN (
    SELECT PatNr 
    FROM Termine 
    WHERE Datum="2014-04-01"
)

Abfragen können somit beliebig tief geschachtelt werden. Diese Abfrage würde alle Patienten ausgeben, die am 1.4.2014 einen Termin in der Arztpraxis haben.

 

Marvin Sengera

Marvin Sengera

Hey! Ich bin Marvin Sengera, Inhaber der Internetagentur "Binärfabrik" aus Paderborn. Ich habe mein Bachelorstudium Informatik mit Schwerpunkt Industriespionage an der Hochschule Hamm Lippstadt abgeschlossen und absolviere derzeit meinen Master in Fachrichtung "Technical Entrepreneurship and Innovation". Ich beschäftige mich rund um die Themen Informatik, Innovation & Unternehmensgründung.

Das könnte Dich auch interessieren …

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.