In den vorhergehenden Kapiteln haben wir Tabellen erstellt und mit Daten befüllt. Jetzt lernen wir, wie wir "Fragen" über eine Tabelle an die Datenbank stellen können. Dazu dient die Select-Anweisung.
Die Select-Anweisung ist folgendermaßen aufgebaut:
SELECT spalte1, spalte2, ... FROM tabelle WHERE Bedingung
Bedingung ist dabei eine Aussage, d.h. ein Term, dessen Wert true oder false ist.
Probiere die folgenden Anweisungen in der nachfolgenden Terra-Datenbank aus:
SELECT name FROM fluss; SELECT name, laenge FROM fluss; SELECT name, laenge FROM fluss WHERE meer = 'Nordsee'
Erstelle je eine select-Anweisung, die mit Hilfe der Terra-Datenbank die folgenden Fragen beantwortet:
Einwohner haben.
Oft möchte man beispielsweise eine Ergebnistabelle mit allen Städten, deren Name mit dem Zeichen A beginnt. Dies kann man erreichen, indem man nicht den Operator =, sondern den Operator like zum Vergleich zweier Zeichenketten verwendet. Dann gibt es nämlich zwei Wildcards genannte Spezialzeichen:
% steht für beliebig viele (d.h. eventuell auch 0) beliebige Zeichen._ steht für genau ein beliebiges Zeichen.
Beispiel 1: Alle Städte, deren Name mit dem Zeichen A beginnt:
SELECT name FROM ort WHERE name LIKE 'A%';
Beispiel 2: Alle Flüsse, deren zweiter Buchstabe ein o ist:
SELECT name FROM fluss WHERE name LIKE '_o%';
Erstelle select-Anweisungen, die die folgenden Fragen beantworten:
stadt enden?a ist?Mit den Operatoren and und or kann man Bedingungen verknüpfen, mit dem Operator not kann man eine Bedingung negieren:
Beispiele:
a) Alle Flüsse, die länger als 100 km sind und deren Name mit D beginnt:
SELECT name FROM fluss WHERE laenge > 100 AND name LIKE 'D%';
b) Alle Flüsse, deren Name mit P der D beginnt:
SELECT name FROM fluss WHERE name LIKE 'P%' OR name LIKE 'D%';
c) Alle flüsse, deren Name nicht mit D beginnt:
SELECT name FROM fluss WHERE NOT name LIKE 'D%';
Erstelle select-Anweisungen, die die folgenden Fragen beantworten:
I beginnt, haben mehr als 100000 Einwohner?u oder r endet?a endet?