zurück

SQL - Abfragen

Öffne DB Online.
Hier wählst du die Datenbank Mitarbeiter aus. In dieser Datenbank machen wir unsere Abfragen und das sieht in etwas so aus:

SQL Beispielansicht

Jetzt tippe einfach die folgenden Zeilen ab, führe sie aus und überprüfe, ob du das gleiche Ergebnis bekommst.

  1. SELECT * FROM MITARBEITER;
    MitarbeiterNummerVornameNachnameStraßeGeschlechtPLZIDM_FITidangestelltentlassen
    1RolfHeiligHimmelwegm242025-06-202025-09-20
    2HedwigEuleFlugwegw432025-02-22null
    3ManuelSenfHauptstraßem332021-10-242025-01-20
    4ElenaTraumSchlafwegw252024-02-22null
    5HermannHerbstLange Gassem142027-02-22null
    6FelixFlavioFlache Gassem522020-02-22null
    7AmeliaAndersWeiter Wegw522024-11-132024-10-13
    8HansHochHohle Gassem212025-03-12null
    9SamiraSamsTalstrassew342025-03-052025-06-20
    10SonjaSaumSo ne Strassew452025-10-15null
    11CarolinChaseChallottenstrassew262025-10-01null
    12JohnJohnsonLange Strassem242023-10-08null
    13AnnaAndersWeiter Wegw122025-10-09null
    14HorstHermannWeiter Wegm532023-12-012024-11-13
    15HerbertHochHohegassem232025-10-01null
  2. SELECT Nachname FROM MITARBEITER;
    Nachname
    Heilig
    Eule
    Senf
    Traum
    Herbst
    Flavio
    Anders
    Hoch
    Sams
    Saum
    Chase
    Johnson
    Anders
    Hermann
    Hoch
  3. SELECT Vorname FROM MITARBEITER;
    Vorname
    Rolf
    Hedwig
    Manuel
    Elena
    Hermann
    Felix
    Amelia
    Hans
    Samira
    Sonja
    Carolin
    John
    Anna
    Horst
    Herbert
  4. SELECT * FROM MITARBEITER WHERE Nachname = 'Heilig';
    MitarbeiterNummerVornameNachnameStraßeGeschlechtPLZIDM_FITidangestelltentlassen
    1RolfHeiligHimmelwegm242025-06-202025-09-20
  5. SELECT * FROM Mitarbeiter where Vorname = 'Hans';
    MitarbeiterNummerVornameNachnameStraßeGeschlechtPLZIDM_FITidangestelltentlassen
    8HansHochHohle Gassem212025-03-12null
  6. SELECT * FROM Mitarbeiter WHERE Vorname <> 'Johann' ;

    MitarbeiterNummerVornameNachnameStraßeGeschlechtPLZIDM_FITidangestelltentlassen
    1RolfHeiligHimmelwegm242025-06-202025-09-20
    2HedwigEuleFlugwegw432025-02-22null
    3ManuelSenfHauptstraßem332021-10-242025-01-20
    4ElenaTraumSchlafwegw252024-02-22null
    5HermannHerbstLange Gassem142027-02-22null
    6FelixFlavioFlache Gassem522020-02-22null
    7AmeliaAndersWeiter Wegw522024-11-132024-10-13
    8HansHochHohle Gassem212025-03-12null
    9SamiraSamsTalstrassew342025-03-052025-06-20
    10SonjaSaumSo ne Strassew452025-10-15null
    11CarolinChaseChallottenstrassew262025-10-01null
    12JohnJohnsonLange Strassem242023-10-08null
    13AnnaAndersWeiter Wegw122025-10-09null
    14HorstHermannWeiter Wegm532023-12-012024-11-13
    15HerbertHochHohegassem232025-10-01null
    Gibt alle Mitarbeiter aus, weil keiner Johann heißt.
  7. SELECT * FROM FitnessStudio WHERE FitnessId>=3 AND FitnessId<=5;
    FitnessIdStudioNameStudioAdresseStudioPLZStudioFuerGeschlechtStudioGebuehrF_PLZid
    3BestForFitWeg in Frankfurt5697w1202
    4Krumbach1Rabenweg5555b103
    5Fit_MNFuchsgasse3657m604
  8. Warum funktioniert folgende Abfrage nicht?
    Berichtige sie und führe sie aus:
    SELECT * FROM FitneStudio WHERE FitnesId>=3;
    Jetzt sollte das Ergebnis folgendermaßen aussehen:
    FitnessIdStudioNameStudioAdresseStudioPLZStudioFuerGeschlechtStudioGebuehrF_PLZid
    3BestForFitWeg in Frankfurt5697w1202
    4Krumbach1Rabenweg5555b103
    5Fit_MNFuchsgasse3657m604
    6KRUBestOfGasse inKru3657b902
    7Fit_CoolWege3657m525
    8Fit_FunFitWeg5697b231
    9Krumbach2FittererWeg5555w781
  9. SELECT * FROM Mitarbeiter WHERE Vorname LIKE '%an%';
    MitarbeiterNummerVornameNachnameStraßeGeschlechtPLZIDM_FITidangestelltentlassen
    3ManuelSenfHauptstraßem332021-10-242025-01-20
    5HermannHerbstLange Gassem142027-02-22null
    8HansHochHohle Gassem212025-03-12null
    13AnnaAndersWeiter Wegw122025-10-09null

Nun folgen die Abfragen, die wir so ähnlich in Access bereits bearbeitet haben.
Speichere deine Abfragen nummeriert im Worddokument (09_LösungenSQL.docx), welches du in deinem Verzeichnis findest ab, du kannst sie später nochmal brauchen!

Abfrage 1: Gib alle weiblichen Kunden aus. Tabelle Kunden speichert das Geschlecht unter KGeschlecht.

SELECT * FROM Kunden WHERE KGeschlecht = 'w';

Abfrage 2: Gib alle männlichen Mitarbeiter aus. Speichere die Abfrage in der gleichen Word-Datei.

SELECT * FROM Mitarbeiter WHERE Geschlecht = 'm';

Abfrage 3: Gib alle Kunden aus, die ein Budget >50 haben (KBudget).

SELECT * FROM Kunden WHERE KBudget>50;

Die folgenden Abfragen sind mit AND/OR und ORDER BY

Abfrage 4.1: Gib alle Kunden aus, die ein Budget >50 und <90 haben (KBudget).

SELECT * FROM Kunden WHERE KBudget>50 AND KBudget<90;

Abfrage 4.2: Gib alle Kunden aus, die ein Budget >50 oder <90 haben (KBudget).

SELECT * FROM Kunden WHERE KBudget>50 OR KBudget<90;

Abfrage 4.3: Gib alle Kunden aus, die ein Budget <50 oder >90 haben (KBudget).

SELECT * FROM Kunden WHERE KBudget<50 OR KBudget>90;

Zwischenfrage:
Welchen Unterschied entdeckst du bei Abfrage 4.2 und 4.3?

Lösung:
Bei Aufgabe 4.2 werden alle ausgegeben, weil jeder Kunde entweder mehr als 50 oder weniger als 90 Budget hat.
Hier überschneiden sich die Abfragebereiche.
Bei Aufgabe 4.3 sind es Kunden die weniger als 50 und mehr als 90 beim KBudget eingetragen haben und somit fallen alle raus, die mehr als 50 und weniger als 90 haben.

Abfrage 5: Gib alle weiblichen Kunden aus und sortiere absteigend nach Kundenid. (ORDER BY)

SELECT * FROM Kunden WHERE KGeschlecht='w' order by Kundenid desc;

Abfrage 6: Gib alle männlichen Mitarbeiter aus und sortiere nach dem Nachnamen.

SELECT * FROM Kunden WHERE KGeschlecht='m' order by KNachname asc;