Daten abfragen und filtern

SQLiteBeginner
Jetzt üben

Einführung

In diesem Lab lernen Sie, wie Sie Daten in einer SQLite-Datenbank abfragen und filtern. Dieses praktische Lab ist für Anfänger konzipiert und führt Sie in grundlegende SQL-Techniken ein. Sie lernen, wie Sie Daten mit der WHERE-Klausel filtern, Muster mit LIKE abgleichen, Ergebnisse mit ORDER BY sortieren und die Anzahl der Ergebnisse mit LIMIT begrenzen. Am Ende dieses Labs werden Sie in der Lage sein, spezifische Daten effizient aus einer Datenbank abzurufen.

Mit SQLite verbinden und Daten anzeigen

In diesem ersten Schritt stellen Sie eine Verbindung zu einer SQLite-Datenbank namens employees.db her und zeigen die Daten innerhalb der Tabelle staff an. Dies ermöglicht es Ihnen, die Daten zu verstehen, mit denen Sie arbeiten werden.

  1. Öffnen Sie ein Terminal in der LabEx VM-Umgebung. Das Standardverzeichnis ist /home/labex/project.

  2. Verbinden Sie sich mit der employees.db-Datenbank mit dem sqlite3-Befehlszeilentool:

    sqlite3 employees.db
    

    Dieser Befehl öffnet die SQLite-Shell, die durch die sqlite>-Eingabeaufforderung angezeigt wird.

  3. Zeigen Sie die Daten in der Tabelle staff an. Führen Sie den folgenden SQL-Befehl aus:

    SELECT * FROM staff;
    

    Dieser Befehl wählt alle Spalten (*) aus der Tabelle staff aus und zeigt die Ergebnisse an. Sie sollten die folgende Ausgabe sehen:

    1|Alice|HR
    2|Bob|IT
    3|Charlie|HR
    4|David|IT
    5|Eve|Marketing
    6|Frank|IT
    

    Diese Ausgabe zeigt die id, den name (Namen) und das department (die Abteilung) für jeden Mitarbeiter in der Tabelle staff.

  4. Um die SQLite-Shell zu verlassen, geben Sie Folgendes ein:

    .quit
    

    WICHTIG: Stellen Sie sicher, dass Sie .quit ausführen, bevor Sie auf die Schaltfläche "Continue" (Weiter) klicken. Andernfalls kann der Schritt nicht verifiziert werden, da der SQLite-Verlauf nicht aufgezeichnet wird.

Daten mit der WHERE-Klausel filtern

Die WHERE-Klausel ermöglicht es Ihnen, Daten basierend auf bestimmten Bedingungen zu filtern. Sie können sie verwenden, um nur die Zeilen abzurufen, die Ihre Kriterien erfüllen.

  1. Verbinden Sie sich mit der employees.db-Datenbank:

    sqlite3 employees.db
    
  2. Um nur Mitarbeiter aus der HR-Abteilung (Personalabteilung) abzurufen, verwenden Sie den folgenden SQL-Befehl:

    SELECT * FROM staff WHERE department = 'HR';
    

    Dieser Befehl wählt alle Spalten aus der Tabelle staff aus, schließt aber nur Zeilen ein, in denen die Spalte department gleich HR ist. Die Ausgabe wird sein:

    1|Alice|HR
    3|Charlie|HR
    
  3. Lassen Sie uns nun Mitarbeiter mit einer id größer als 3 finden:

    SELECT * FROM staff WHERE id > 3;
    

    Dieser Befehl wählt alle Spalten aus der Tabelle staff aus, schließt aber nur Zeilen ein, in denen die Spalte id größer als 3 ist. Die Ausgabe wird sein:

    4|David|IT
    5|Eve|Marketing
    6|Frank|IT
    
  4. Beenden Sie die SQLite-Shell:

    .quit
    

    WICHTIG: Stellen Sie sicher, dass Sie .quit ausführen, bevor Sie auf die Schaltfläche "Continue" (Weiter) klicken. Andernfalls kann der Schritt nicht verifiziert werden, da der SQLite-Verlauf nicht aufgezeichnet wird.

Mustervergleich mit dem LIKE-Operator

Der LIKE-Operator wird für den Mustervergleich (pattern matching) verwendet. Er ist hilfreich, wenn Sie Daten finden möchten, die einem bestimmten Muster entsprechen, und nicht einem exakten Wert. Sie verwenden Platzhalter (wildcards) wie % (null oder mehr Zeichen) und _ (ein einzelnes Zeichen).

  1. Verbinden Sie sich mit der employees.db-Datenbank:

    sqlite3 employees.db
    
  2. Um Mitarbeiter zu finden, deren Namen mit A beginnen, verwenden Sie den folgenden Befehl:

    SELECT * FROM staff WHERE name LIKE 'A%';
    

    Dieser Befehl wählt alle Spalten aus der Tabelle staff aus, schließt aber nur Zeilen ein, in denen die Spalte name mit A beginnt. Der Platzhalter % entspricht null oder mehr Zeichen. Die Ausgabe wird sein:

    1|Alice|HR
    
  3. Um Mitarbeiter zu finden, deren Namen den Buchstaben i enthalten, verwenden Sie:

    SELECT * FROM staff WHERE name LIKE '%i%';
    

    Dieser Befehl wählt alle Spalten aus der Tabelle staff aus, schließt aber nur Zeilen ein, in denen die Spalte name den Buchstaben i enthält. Die Ausgabe wird sein:

    1|Alice|HR
    3|Charlie|HR
    4|David|IT
    
  4. Beenden Sie die SQLite-Shell:

    .quit
    

Daten mit der ORDER BY-Klausel sortieren

Die ORDER BY-Klausel ermöglicht es Ihnen, die Ergebnisse Ihrer Abfrage zu sortieren. Sie können in aufsteigender (Standard) oder absteigender Reihenfolge sortieren.

  1. Verbinden Sie sich mit der employees.db-Datenbank:

    sqlite3 employees.db
    
  2. Um die Daten alphabetisch nach name in aufsteigender Reihenfolge zu sortieren, verwenden Sie:

    SELECT * FROM staff ORDER BY name;
    

    Dieser Befehl wählt alle Spalten aus der Tabelle staff aus und sortiert die Ergebnisse nach der Spalte name in aufsteigender Reihenfolge (A bis Z). Die Ausgabe wird sein:

    1|Alice|HR
    2|Bob|IT
    3|Charlie|HR
    4|David|IT
    5|Eve|Marketing
    6|Frank|IT
    
  3. Um nach name in absteigender Reihenfolge zu sortieren, verwenden Sie:

    SELECT * FROM staff ORDER BY name DESC;
    

    Dieser Befehl wählt alle Spalten aus der Tabelle staff aus und sortiert die Ergebnisse nach der Spalte name in absteigender Reihenfolge (Z bis A). Die Ausgabe wird sein:

    6|Frank|IT
    5|Eve|Marketing
    4|David|IT
    3|Charlie|HR
    2|Bob|IT
    1|Alice|HR
    
  4. Beenden Sie die SQLite-Shell:

    .quit
    

Ergebnisse mit der LIMIT-Klausel begrenzen

Die LIMIT-Klausel beschränkt die Anzahl der Zeilen, die von einer Abfrage zurückgegeben werden. Dies ist nützlich, wenn Sie nur eine Teilmenge (subset) der Daten benötigen.

  1. Verbinden Sie sich mit der employees.db-Datenbank:

    sqlite3 employees.db
    
  2. Um nur die ersten 3 Zeilen aus der Tabelle staff abzurufen, verwenden Sie:

    SELECT * FROM staff LIMIT 3;
    

    Dieser Befehl wählt alle Spalten aus der Tabelle staff aus und begrenzt die Ergebnisse auf die ersten 3 Zeilen. Die Ausgabe wird sein:

    1|Alice|HR
    2|Bob|IT
    3|Charlie|HR
    
  3. Kombinieren Sie LIMIT mit ORDER BY, um die ersten 2 Mitarbeiter, sortiert nach name in absteigender Reihenfolge, zu erhalten:

    SELECT * FROM staff ORDER BY name DESC LIMIT 2;
    

    Dieser Befehl wählt alle Spalten aus der Tabelle staff aus, sortiert die Ergebnisse nach der Spalte name in absteigender Reihenfolge und begrenzt die Ergebnisse auf die ersten 2 Zeilen. Die Ausgabe wird sein:

    6|Frank|IT
    5|Eve|Marketing
    
  4. Beenden Sie die SQLite-Shell:

    .quit
    

Zusammenfassung

In diesem Lab haben Sie gelernt, wie man Daten in einer SQLite-Datenbank abfragt und filtert. Sie haben sich mit einer Datenbank verbunden, Daten mit der WHERE-Klausel gefiltert, Muster mit dem LIKE-Operator abgeglichen, Ergebnisse mit ORDER BY sortiert und die Anzahl der zurückgegebenen Zeilen mit LIMIT begrenzt. Diese Techniken vermitteln Ihnen die grundlegenden Fähigkeiten, um Daten effektiv abzurufen und zu organisieren.