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.
Verwenden qualifizierter Spaltennamen
Die Verwendung von fully qualified column names (im Format table.column) in SQL hat mehrere wichtige Vorteile, insbesondere beim Abrufen von Daten aus Tabellen, die Spalten mit demselben Namen enthalten können.
Im Folgenden sind einige der Vorteile der Verwendung vollqualifizierter Spaltennamen aufgeführt:
- Mit dem Format table.column geben Sie an, aus welcher Tabelle die Spalte stammt. Dies ist besonders nützlich, wenn Sie mit mehreren Tabellen in einer einzigen Abfrage arbeiten, z. B. wenn Sie JOIN ausführen. Diese Klarheit verringert die Verwirrung darüber, auf welche Spalte verwiesen wird.
- Wenn zwei oder mehr Tabellen vorhanden sind, die Spalten mit demselben Namen enthalten, können durch die Verwendung vollqualifizierter Spaltennamen Konflikte vermieden werden. Wenn Sie z. B. products und orders Tabellen haben, die jeweils prod_id Spalten haben, können Sie products.prod_id und orders.prod_id verwenden, um zwischen den beiden zu unterscheiden.
- Durch das Einbeziehen von Tabellennamen in Spaltenverweise wird SQL-Code von anderen Entwicklern oder in Zukunft von ihnen selbst leichter zu verstehen und zu pflegen. Dies hilft bei der kontinuierlichen Dokumentation und Entwicklung.
Schlussfolgerung
Das Erlernen von SELECT-Anweisungen in MySQL ist für die ordnungsgemäße und sichere Verwaltung von Daten unerlässlich. Mit der Möglichkeit, bestimmte Daten abzurufen, der Flexibilität bei der Auswahl von Spalten, der Übersichtlichkeit und der Verbesserung der Leistung können Sie die Effizienz und Qualität Ihrer Projekte verbessern. Das Befolgen von Best Practices, wie z. B. die Verwendung vollständiger Spaltennamen und konsistenter Formatierung, ist auch für die Dokumentation und Problembehandlung in SQL-Code von Vorteil.