SQL Erste Schritte

Auswählen von Zeilen

Zur Auswahl von spezifischen Zeilen aus einer Tabelle geben Sie nach der Anweisung SELECT mit einer Klausel WHERE die Bedingung bzw. die Bedingungen an, die eine Zeile erfüllen muß, um ausgewählt zu werden. Ein Kriterium für die Auswahl von Zeilen aus einer Tabelle wird als Suchbedingung bezeichnet.

Eine Suchbedingung besteht aus einem oder mehreren Prädikaten. Ein Prädikat gibt eine Bedingung an, die für eine Zeile wahr oder falsch (bzw. unbekannt) ist. Zur Angabe von Bedingungen in der Klausel WHERE können Sie die folgenden Prädikate BASIC verwenden:
Prädikat Funktion
x = y x ist gleich y
x <> y x ist ungleich y
x < y x ist kleiner als y
x > y x ist größer als y
x <= y x ist kleiner-gleich y
x >= y x ist größer-gleich y
IS NULL/IS NOT NULL prüft auf Nullwerte

Beim Erstellen von Suchbedingungen müssen Sie darauf achten, daß Rechenoperationen nur für numerische Datentypen und Vergleiche nur zwischen kompatiblen Datentypen durchgeführt werden. Beispielsweise können Sie Zeichenfolgen nicht mit Zahlen vergleichen.

Wenn Sie Zeilen anhand eines Zeichenwerts auswählen, muß dieser Wert in einfache Anführungszeichen gesetzt werden (z. B. WHERE JOB = 'Clerk'), und jeder Zeichenwert muß exakt so eingegeben werden, wie er in der Datenbank vorhanden ist. Besteht der in der Datenbank enthaltene Datenwert aus Kleinbuchstaben, werden keine Zeilen ausgewählt, wenn Sie ihn in Großbuchstaben eingeben. Bei der Auswahl von Zeilen anhand eines numerischen Werts darf dieser Wert nicht in Anführungszeichen gesetzt werden (Beispiel: WHERE DEPT = 20).

Im folgenden Beispiel werden nur die Zeilen für die Abteilung 20 aus der Tabelle STAFF ausgewählt:

     SELECT DEPT, NAME, JOB
        FROM STAFF
        WHERE DEPT = 20

Diese Anweisung erzeugt das folgende Ergebnis:

      DEPT   NAME      JOB  
      ------ --------- -----
          20 Sanders   Mgr  
          20 Pernal    Sales
          20 James     Clerk
          20 Sneider   Clerk

Im nächsten Beispiel wird der Operator AND eingesetzt, um mehr als eine Bedingung anzugeben. Sie können beliebig viele Bedingungen angeben. Das folgende Beispiel wählt die Sachbearbeiter ('Clerk') der Abteilung 20 aus der Tabelle STAFF aus:

   
     SELECT DEPT, NAME, JOB
        FROM STAFF
        WHERE JOB = 'Clerk'
        AND DEPT = 20

Diese Anweisung erzeugt das folgende Ergebnis:

     DEPT   NAME      JOB  
     ------ --------- -----
         20 James     Clerk
         20 Sneider   Clerk
 

Ein Nullwert tritt auf, wenn kein Wert eingegeben wird und die Spalte keinen Standardwert unterstützt. Er kann außerdem auftreten, wenn der Wert ausdrücklich auf Null gesetzt ist. Ein Nullwert kann nur in Spalten auftreten, die für die Unterstützung von Nullwerten definiert sind. Das Definieren und Unterstützen von Nullwerten in Tabellen wird im Abschnitt Erstellen von Tabellen erörtert.

Mit den Prädikaten IS NULL und IS NOT NULL können Sie überprüfen, ob ein Nullwert vorhanden ist.

Die folgende Anweisung listet die Mitarbeiter auf, deren Provision (Spalte COMM) nicht bekannt ist:

     SELECT ID, NAME
        FROM STAFF
        WHERE COMM IS NULL

Diese Anweisung erzeugt das folgende Ergebnis:

     ID     NAME     
     ------ ---------
         10 Sanders  
         30 Marenghi 
         50 Hanes    
        100 Plotz    
        140 Fraye    
        160 Molinare 
        210 Lu       
        240 Daniels  
        260 Jones    
        270 Lea      
        290 Quill    
        

Ein Wert 0 (Null) ist nicht dasselbe wie ein Nullwert. Die folgende Anweisung wählt alle Mitarbeiter aus, deren Provision die Höhe 0 (Null) aufweist:

     SELECT ID, NAME
        FROM STAFF
        WHERE COMM = 0
     

Da die Beispieltabelle in der Spalte COMM keine Werte 0 enthält, ist die zurückgegebene Ergebnismenge leer.

Im nächsten Beispiel werden alle Zeilen in der Tabelle STAFF ausgewählt, deren Wert in der Spalte YEARS größer als 9 ist:

     SELECT NAME, SALARY, YEARS
        FROM STAFF
        WHERE YEARS > 9
     

Diese Anweisung erzeugt das folgende Ergebnis:

     NAME      SALARY    YEARS 
     --------- --------- ------
     Hanes      20659.80     10
     Lu         20010.00     10
     Jones      21234.00     12
     Quill      19818.00     10
     Graham     21000.00     13


[ Seitenanfang | Vorherige Seite | Nächste Seite | Inhaltsverzeichnis | Index ]