Datenabfragetechniken in MySQL unter effizienter Verwendung von SELECT Statement

Einschränken von Abfrageergebnissen mit LIMIT

In SQL dient der Befehl LIMIT dazu, die Menge der angezeigten Daten aus den Abfrageergebnissen zu begrenzen. LIMIT ist besonders nützlich, wenn wir nur eine bestimmte Datenmenge aus einer Tabelle abrufen möchten, z. B. die Anzeige einer Stichprobe oder nur der ersten Daten aus einem großen Abfrageergebnis.

LIMIT wird verwendet, indem die gewünschte Datenmenge nach dem Keyword angegeben wird. Wenn auf LIMIT eine einzelne Zahl folgt, ruft MySQL mehrere Datenzeilen ab, die von der ersten Zeile bis zur angegebenen Zahl reichen.

Das folgende Beispiel zeigt, wie Sie LIMIT verwenden, um die ersten 5 Daten aus der Spalte prod_name in der Tabelle “products” abzurufen:

SELECT prod_name FROM products LIMIT 5;

Dann zeigt das Ergebnis dieser Abfrage nur die ersten 5 Zeilen an:

| prod_name     |
|---------------|
| 0.5 ton anvil |
| 1 ton anvil   |
| 2 ton anvil   |
| Oil can       |
| Fuses         |

Verwendung von LIMIT und OFFSET bei der Datenerfassung

Wir können die Anzahl der abgerufenen Zeilen begrenzen und auch bestimmen, aus welchen Zeilen die Daten abgerufen werden, indem wir OFFSET verwenden. In MySQL wird OFFSET in Verbindung mit LIMIT geschrieben, um den Startpunkt des Datenabrufs zu bestimmen. Beispiele:

SELECT prod_name FROM products LIMIT 5 OFFSET  5;

Diese Abfrage ruft 5 Datenzeilen ab, beginnend mit der 6. Zeile.

Es gibt auch andere Möglichkeiten, LIMIT zu schreiben, indem OFFSET zwei Ziffern nach LIMIT verwenden, z. B.:

SELECT prod_name FROM products LIMIT 5,  5;

Diese Schreibweise hat die gleiche Bedeutung, nämlich 5 Zeilen ab der 6. Zeile zu nehmen, wobei die erste Zahl (5) OFFSET und die zweite Zahl (5) die zu nehmende Datenmenge ist.

Vorteile von LIMIT und OFFSET

  • LIMIT ohne OFFSET erleichtert es uns, einige erste Daten aus den Abfrageergebnissen abzurufen.
  • Die Kombination aus LIMIT und OFFSET ist besonders nützlich für In-App-Dateneinstellungen, wie z. B. Seitenaufrufe (*Paginierung*), bei denen jede Seite die gleiche Datenmenge benötigt, aber von unterschiedlichen Positionen aus startet.

Erfassung einzigartiger Daten mit DISTINCT

In SQL werden DISTINCT Befehle im SELECT Statement verwendet, um Daten ohne Duplizierung zu erhalten. Wenn in einer Spalte dieselben Daten vorhanden sind und wir nur unterschiedliche Werte anzeigen möchten, stellt DISTINCT sicher, dass jeder Wert einmal in den Abfrageergebnissen angezeigt wird.

DISTINCT wird nach dem Schlüsselwort SELECT und vor dem Namen der Spalte platziert, die Sie abrufen möchten. Dieser Befehl weist MySQL an, nur die eindeutigen Daten aus dieser Spalte anzuzeigen und Zeilen mit demselben Wert zu löschen.

Die Syntax für die Verwendung DISTINCT lautet wie folgt:

SELECT DISTINCT column_name FROM table_name;
  • DISTINCT: Weist SQL an, eindeutige Werte in den angegebenen Spalten anzuzeigen.
  • column_name: Der Name der Spalte, aus der Sie Daten eindeutig abrufen möchten.
  • FROM: Gibt die Tabelle an, aus der die Daten stammen.

Zum Beispiel möchten wir eindeutige Daten aus den vend_id Spalten in der products Tabelle abrufen. Wenn ohne Verwendung von DISTINCT mehrere Produkte desselben Anbieters vorhanden sind, wird jede Anbieter-ID mehrmals in den Abfrageergebnissen angezeigt. Mit DISTINCT können wir sicherstellen, dass die Ergebnisse jede Anbieter-ID nur einmal anzeigen.

Beispiele sind wie folgt:

SELECT DISTINCT vend_id FROM products;

Wenn die Produkttabelle Daten wie diese enthält:

| vend_id |
|---------|
| 1001    |
| 1001    |
| 1002    |
| 1003    |
| 1003    |
| 1003    |
| 1004    |

Die Ergebnisse der Abfrage zeigen nur die eindeutige Anbieter-ID an, sodass sie wie folgt aussieht:

| vend_id |
|---------|
| 1001    |
| 1002    |
| 1003    |
| 1004    |

Wichtige Hinweise

  • DISTINCT gilt für die Kombination von Spalten, die in der Abfrage ausgewählt sind. Wenn mehr als eine Spalte mit DISTINCT verwendet wird, stellt SQL sicher, dass die Kombination der Spalten eindeutig ist.
  • DISTINCT entfernt nur Duplikate aus den angegebenen Spalten und wirkt sich nicht auf andere Spalten in der Tabelle aus.

Neueste Artikel