Benutzer-Werkzeuge

Webseiten-Werkzeuge


jg9:selectsimple:start

Einfache Select-Anweisungen

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'

Aufgabe 1

Erstelle je eine select-Anweisung, die mit Hilfe der Terra-Datenbank die folgenden Fragen beantwortet:

  • a) Welche Flüsse (Name, Meer, Laenge) sind länger als 1000 km?
  • b) Welche Länder haben weniger als 10 Millionen Einwohner?
    Tipp: Versuche erst einmal herauszufinden, welche Einheit die Werte in der Spalte Einwohner haben.
  • c) Welche Länder (Name, Einwohner) liegen in Europa?

Zeichenketten-Vergleiche mit Wildcards

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:

  • Das Zeichen % steht für beliebig viele (d.h. eventuell auch 0) beliebige Zeichen.
  • Das 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%';

Aufgabe 2:

Erstelle select-Anweisungen, die die folgenden Fragen beantworten:

  • a) Welche Städte (Name, Einwohnerzahl) haben Namen, die auf stadt enden?
  • b) Welche Flüsse (Name, Laenge) haben Namen, deren vorletzter Buchstabe ein a ist?

Verknüpfung von Bedingungen

Mit den Operatoren and und or kann man Bedingungen verknüpfen, mit dem Operator not kann man eine Bedingung negieren:

  • Bedingung1 and Bedingung2
    … hat genau dann den Wert true, wenn sowohl Bedingung1 als auch Bedingung2 den Wert true hat.
  • Bedingung1 or Bedingung2
    … hat genau dann den Wert true, wenn mindestens eine der beiden Bedingungen den Wert true hat.
  • not Bedingung1
    … hat genau dann den Wert true, wenn Bedingung1 den Wert false hat.

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%';

Aufgabe 3

Erstelle select-Anweisungen, die die folgenden Fragen beantworten:

  • a) Welche Städte, deren Name mit I beginnt, haben mehr als 100000 Einwohner?
  • b) Welche Flüsse haben einen Namen, der mit u oder r endet?
  • c) Welche Kontinente haben einen Namen, der nicht auf a endet?
jg9/selectsimple/start.txt · Zuletzt geändert: von Martin Pabst

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki