Bevor wir uns mit der Theorie von Datenbanken beschäftigen, schreiben wir zuerst einfache SQL-Abfragen. So bekommen wir einen ersten Eindruck davon, wie Datenbanken funktionieren.
SQL steht für Structured Query Language und wird genutzt, um Daten in einer Datenbank zu speichern, abzurufen, zu ändern oder zu löschen.
Nimm an, du bist der Administrator der Unternehmensdatenbank Northwind. Mit der Sprache SQL willst du die in diesem Unternehmen gespeicherten Daten analysieren und auswerten.
Du nutzt den Online-SQL-Editor von W3Schools, um auf die
Datenbank zuzugreifen. Du erstellst SQL-Abfragen, um wichtige Informationen aus der Datenbank zu erhalten.
Beispiel 1
Es sollen alle Datensätze (Zeilen) der Tabelle Customers
angezeigt werden.
SELECT *
FROM Customers;
Aufgabe 1
Erstelle eine Abfrage, mit der alle Datensätze der Tabelle Products
angezeigt werden.
Beispiel 2
Es sollen von den Kunden nur CustomerID
, CustomerName
und City
angezeigt werden:
SELECT CustomerID, CustomerName, City
FROM Customers;
Beispiel 3
Das Ergebnis soll nach City
sortiert werden:
SELECT CustomerID, CustomerName, City
FROM Customers
ORDER BY City;
Beispiel 4
Um absteigend zu sortieren:
SELECT CustomerID, CustomerName, City
FROM Customers
ORDER BY City DESC;
Descending bedeutet absteigend, ascending bedeutet aufsteigend.
Aufgabe 2
Erstelle eine Abfrage, die ProductName
und Price
aller Produkte anzeigt.
Aufgabe 3
Erstelle eine Abfrage, die die Ausgabe aus Aufgabe 2 nach Price
absteigend sortiert.
Beispiel 5
Es sollen alle Produkte angezeigt werden, deren Preis größer als 30 ist.
SELECT ProductName, Price
FROM Products
WHERE Price > 30;
Beispiel 6
Es sollen nur die Kunden angezeigt werden, die in London wohnen:
SELECT CustomerName, City
FROM Customers
WHERE City = "London";
Wenn man nach Texten sucht, müssen diese Texte in Anführungsstrichen stehen! Also "London"
und NICHT London
.
Aufgabe 4
Erstelle eine Abfrage, die alle Produkte mit einem Preis von mindestens 90 anzeigt.
Aufgabe 5
Erstelle eine Abfrage, die alle Kunden aus Madrid anzeigt.
Beispiel 7
Um alle Kunden anzuzeigen, deren Name mit Ma beginnt, verwendet man das %
-Zeichen als Platzhalter. Da nur ähnliche Datensätze gesucht werden, kann das Gleichheitszeichen =
nicht verwendet werden. Stattdessen nutzt man das Schlüsselwort LIKE
:
SELECT *
FROM Customers
WHERE CustomerName LIKE "Ma%";
Aufgabe 6
Erstelle eine Abfrage, die alle Kunden anzeigt, deren Name mit A beginnt.
Aufgabe 7
Erstelle eine Abfrage, die alle Kunden anzeigt, deren Name nn enthält.
Beispiel 8
Es sollen alle Kunden aus Deutschland oder Frankreich angezeigt werden:
SELECT *
FROM Customers
WHERE Country = "Germany" OR Country = "France";
Beispiel 9
Es sollen alle Kunden angezeigt werden, die aus Deutschland kommen und deren Name mit D beginnt:
SELECT *
FROM Customers
WHERE Country = "Germany" AND CustomerName LIKE "D%";
Aufgabe 8
Erstelle eine Abfrage, die alle Kategorien mit der CategoryID 2, 4 oder 6 anzeigt.
Aufgabe 9
Erstelle eine Abfrage, die alle Mitarbeiter anzeigt, deren EmployeeID zwischen 1 und 4 liegt.
In dieser Datenbank wird das US-Format für Datumswerte verwendet:
MM/DD/YYYY
→ z. B. 7/4/1996
(4. Juli 1996).
Es gibt jedoch auch andere Formate wie YYYY-MM-DD
oder DD/MM/YYYY
, die je nach Datenbank-System unterschiedlich sein können.
Beispiel 10
Es sollen alle Bestellungen aus dem Jahr 1997 angezeigt werden:
SELECT OrderID, CustomerID, OrderDate
FROM Orders
WHERE YEAR(OrderDate) = 1997;
Die Funktion YEAR(OrderDate)
extrahiert das Jahr aus dem Datumswert in der Spalte OrderDate
.
Damit können alle Bestellungen aus einem bestimmten Jahr gefiltert werden.
Aufgabe 10
Erstelle eine Abfrage, die alle Bestellungen aus dem Dezember 1996 anzeigt.
Operator | Bedeutung |
---|---|
= |
Gleichheit |
<> oder != |
Ungleichheit |
> |
Größer als |
< |
Kleiner als |
>= |
Größer oder gleich |
<= |
Kleiner oder gleich |
LIKE |
Suche nach Mustern |
AND |
Beide Bedingungen müssen erfüllt sein |
OR |
Mindestens eine Bedingung muss erfüllt sein |
Du nutzt jetzt diesen Editor, um auf die terra1-Datenbank zuzugreifen.
Klicke auf Datenbankschema ein-/ausblenden, um die Struktur der Datenbank anzuzeigen.
Die terra1-Datenbank wurde speziell für den Informatikunterricht entwickelt und enthält geografische Informationen zu Ländern, Städten, Flüssen und Bergen.
Gib nur die SQL-Abfragen an, nicht die Ergebnisse.
Aufgabe 11
Schreibe SQL-Befehle, um:
a) Alle Orte in Frankreich auszugeben.
b) Alle Orte in Deutschland auszugeben, mit Name, Länge und Breite.
Aufgabe 12
a) Gib alle Länder aus. Zeige Name, Einwohner und Hauptstadt an. Sortiere nach Einwohner absteigend.
b) Gib alle Länder in Europa aus. Zeige nur die Namen.
Aufgabe 13
a) Welche Länder haben zwischen 10 und 100 Mio. Einwohner? Sortiere nach Einwohner absteigend.
b) Welche Länder haben Arm oder Bein im Namen?
c) Gibt es Orte, die Arm oder Bein im Namen haben?
Aufgabe 14
Welche Länder liegen in Asien oder Australien?