Zum Hauptinhalt springen

Wählen Sie aus, wie der distinct-Operator funktioniert: Funktionsweise und Anwendungsbeispiele.

Der DISTINCT-Operator ist einer der wichtigsten und gebräuchlichsten SQL-Anweisungen. Es wird verwendet, um eindeutige Werte in einem von der Abfrage zurückgegebenen Resultset zu filtern. Die DISTINCT-Anweisung arbeitet mit der SELECT-Anweisung zusammen und ermöglicht die Auswahl eindeutiger Werte aus Spalten oder Spaltenkombinationen.

Der DISTINCT-Operator ist ziemlich einfach: Er überprüft beim Ausführen einer Abfrage jede Zeile im Resultset und löscht alle doppelten Zeilen. Es bleibt nur eine eindeutige Zeile für jeden eindeutigen Spaltenwert oder jede in der Abfrage angegebene Spaltenkombination übrig.

Ein Beispiel für die Verwendung des Operators DISTINCT könnte eine Datenbankabfrage sein, die eine Liste eindeutiger Länder aus einer Tabelle mit Kundendaten zurückgibt. In diesem Fall können wir mit dem Operator DISTINCT eine Liste aller eindeutigen Werte aus der Spalte abrufen, die den Namen des Landes enthält. Eine solche Abfrage kann beispielsweise nützlich sein, um Statistiken über die Länder zu erstellen, aus denen unsere Kunden stammen.

Was ist der distinct-Operator und wie funktioniert er

In SQL wird der DISTINCT-Operator verwendet, um doppelte Werte aus dem Resultdataset zu entfernen. Es können nur eindeutige Werte für die angegebenen Spalten in einer Tabelle oder einem Abfrageergebnis abgerufen werden.

Die DISTINCT-Anweisung wird im SELECT-Befehl verwendet, und nach dem SELECT-Schlüsselwort wird die Spalte oder Spalte angegeben, für die die Wiederholungen entfernt werden sollen:

AnfrageErgebnis
SELECT DISTINCT name FROM products;Wir erhalten eine Liste eindeutiger Namen in der Spalte "name" der Tabelle "products".
SELECT DISTINCT city, country FROM customers;Wir erhalten eine Liste der einzigartigen Kombinationen von Städten und Ländern in der Tabelle "customers".

Der DISTINCT-Operator kann nicht nur auf Tabellenspalten, sondern auch auf Ausdrücke und Funktionen angewendet werden:

AnfrageErgebnis
SELECT DISTINCT UPPER(name) FROM products;Wir erhalten eine Liste eindeutiger Namen in Großbuchstaben in der Spalte "name" der Tabelle "products".
SELECT DISTINCT COUNT(*) FROM orders;Wir erhalten die Anzahl der eindeutigen Bestellungen in der Tabelle "Bestellungen".

Der DISTINCT-Operator ist nützlich, wenn Sie nur eindeutige Werte ohne Wiederholungen abrufen möchten. Es kann verwendet werden, um verschiedene analytische Operationen durchzuführen, Daten zu vergleichen und zu aggregieren.

Funktionsweise des distinct-Operators

Mit dem Operator distinct werden Duplikate aus dem Resultdataset entfernt, wenn Sie eine Datenbankabfrage ausführen. Es analysiert die Werte in der angegebenen Spalte und gibt nur eindeutige Werte zurück.

Der distinct-Operator funktioniert wie folgt:

  1. Der distinct-Operator ruft das Resultset aus der Abfrage ab.
  2. Der Operator analysiert die Werte in der angegebenen Spalte und findet alle eindeutigen Werte.
  3. Im Resultdataset werden nur eindeutige Werte zurückgegeben.

Der distinct-Operator kann in verschiedenen Situationen verwendet werden, in denen nur eindeutige Werte aus Spalten oder Spalten abgerufen werden sollen.

Angenommen, wir haben eine Tabelle "Studenten" mit den Spalten "Vorname", "Nachname" und "Alter". Wir können den distinct-Operator verwenden, um eine Liste der eindeutigen Namen der Studenten zu erhalten:

SELECT DISTINCT ИмяFROM Студенты;

Als Ergebnis erhalten wir nur eindeutige Namen von Studenten, keine Duplikate.

Distinct-Anweisung in SQL

Der DISTINCT-Operator in SQL wird verwendet, um eindeutige Werte aus einer Spalte oder einem Satz von Spalten in einer Datenbanktabelle auszuwählen.

Die Funktionsweise des DISTINCT-Operators besteht darin, dass Duplikate aus den Abfrageergebnissen entfernt werden. Wenn die Abfrage mehrere identische Werte enthält, wählt der DISTINCT-Operator nur einen eindeutigen Wert aus und schließt alle Duplikate aus. Es gilt sowohl für eine einzelne Spalte als auch für mehrere Spalten.

Beispiel für die Verwendung des DISTINCT-Operators:

SELECT DISTINCT полеFROM таблица;

Dabei ist "Feld" der Name der Spalte, aus der eindeutige Werte ausgewählt werden sollen, und "Tabelle" ist der Name der Tabelle, in der sich die Spalte befindet.

Wenn Sie beispielsweise eine Tabelle "employees" mit einer Spalte "department" haben, die doppelte Werte enthält, können Sie in der folgenden Abfrage nur eindeutige Werte auswählen:

SELECT DISTINCT departmentFROM employees;

Wenn diese Abfrage ausgeführt wird, werden nur eindeutige Werte aus der Spalte "department" der Tabelle "employees" zurückgegeben, und alle doppelten Werte werden ausgeschlossen.

Beispiele für die Verwendung des distinct-Operators

Mit dem Operator distinct können Sie eindeutige Werte aus einer Spalte oder einem Satz von Spalten in einer Datenbanktabelle auswählen. Es hilft, Duplikate zu vermeiden und nur eindeutige Werte als Abfrageergebnis bereitzustellen.

Betrachten Sie einige Beispiele für die Verwendung des distinct-Operators:

Ein BeispielDie Beschreibung
Beispiel 1Ruft eindeutige Benutzernamen aus der Tabelle "users" ab.
Beispiel 2Zählt die Anzahl der eindeutigen Bestellungen in der Tabelle "Bestellungen".
Beispiel 3Eine Auswahl der einzigartigen Städte, in denen Kunden wohnen, finden Sie in der Tabelle "customers".
Beispiel 4Berechnet das durchschnittliche Gehalt der Mitarbeiter, ohne doppelte Werte.

Der Operator distinct hat eine breite Palette von Anwendungen und kann in verschiedenen Kontexten verwendet werden, um eindeutige Daten aus einer Datenbank abzurufen. Im Allgemeinen wird es in Kombination mit anderen Anweisungen wie SELECT, COUNT, AVG usw. verwendet.

Beispiel für die Verwendung des distinct-Operators in einer SELECT-Abfrage

Der DISTINCT-Operator wird in SELECT-Abfragen verwendet, um eindeutige Werte aus einer bestimmten Spalte oder einer Kombination von Spalten in einer Datenbanktabelle auszuwählen. Um das Prinzip des DISTINCT-Operators besser zu verstehen, betrachten wir das folgende Beispiel:

Angenommen, wir haben eine Tabelle "Mitarbeiter" mit mehreren Spalten, einschließlich "Nachname" und "Abteilung". Und wir möchten eine Liste aller einzigartigen Abteilungen unseres Unternehmens erhalten.

Dazu können wir eine Abfrage wie folgt schreiben:

SELECT DISTINCT Отдел FROM Сотрудники;

Diese Abfrage gibt nur eindeutige Werte für die Spalte "Abteilung" zurück, wobei doppelte Werte ignoriert werden. Auf diese Weise erhalten wir eine Liste aller Abteilungen ohne Duplikate.

Wenn beispielsweise die Tabelle "Mitarbeiter" die folgenden Datensätze enthält:

+------+--------+| Фамилия | Отдел |+------+--------+| Иванов | IT || Петров | HR || Сидоров | IT || Смирнов | HR || Козлов | Sales || Иванов | IT |+------+--------+

Dann wird das Ergebnis der Abfrageausführung sein:

+--------+| Отдел |+--------+| IT || HR || Sales |+--------+

Wie im Beispiel ersichtlich ist, werden mit der DISTINCT-Anweisung nur die eindeutigen Werte der Spalte "Division" ohne Wiederholungen abgerufen.

Beispiel für die Verwendung des distinct-Operators in einer INSERT-Abfrage

Der DISTINCT-Operator in SQL wird verwendet, um Duplikate aus dem Abfrageergebnis zu entfernen. Es wird hauptsächlich beim Ausführen von SELECT-Abfragen verwendet, um eindeutige Werte aus einer Spalte oder einer Kombination von Spalten abzurufen. Es kann jedoch auch in INSERT-Abfragen verwendet werden.

Betrachten Sie ein Beispiel für die Verwendung des DISTINCT-Operators in einer INSERT-Abfrage:

  1. Erstellen Sie eine Tabelle "customers" mit zwei Spalten: "id" und "name".
  2. Fügen Sie mehrere Datenzeilen mit Duplikaten in die Spalte "name" ein.
  3. Führen Sie eine INSERT-Abfrage mit dem Operator DISTINCT aus, um nur eindeutige Werte in die Tabelle "customers" einzufügen.
CREATE TABLE customers (id INT,name VARCHAR(50));INSERT INTO customers (name)SELECT DISTINCT nameFROM original_customers;

In diesem Beispiel erstellen wir eine Tabelle "customers" mit zwei Spalten: "id" und "name". Dann fügen wir mehrere Datenzeilen mit Duplikaten in die Spalte "name" aus einer anderen Tabelle "original_customers" ein. Dann führen wir eine INSERT-Abfrage mit dem DISTINCT-Operator aus und wählen nur eindeutige Werte aus der Spalte "name" der Tabelle "original_customers" aus, die in die Tabelle "customers" eingefügt werden sollen. Dies ermöglicht es uns, Duplikate aus der resultierenden Tabelle auszuschließen.

Beispiel für die Verwendung des distinct-Operators in einer UPDATE-Anforderung

Mit der distinct-Anweisung in einer UPDATE-Abfrage können Sie Werte in einer Tabellenspalte nur für eindeutige Datensätze aktualisieren. Dies kann nützlich sein, wenn Sie nur bestimmte eindeutige Werte aktualisieren oder vermeiden möchten, dass bereits geänderte Datensätze erneut aktualisiert werden.

Betrachten Sie ein Beispiel für die Verwendung des distinct-Operators in einer UPDATE-Abfrage:

Tabelle "Benutzer"
idnameagephone
1John281234567890
2Jane220987654321
3John359876543210
4David310123456789

Nehmen wir an, wir haben eine Tabelle "users" mit Informationen über Benutzer. Wir möchten das Alter aller eindeutigen Benutzer aktualisieren, deren Name "John" lautet. Verwenden Sie den distinct-Operator, um nur den ersten Datensatz mit dem Namen "John" zu aktualisieren.

UPDATE users SET age = 30 WHERE name = 'John' AND DISTINCT id FROM users WHERE name = 'John' LIMIT 1);

Tabelle "Benutzer" nach Ausführung der Abfrage:

Tabelle "Benutzer"
idnameagephone
1John301234567890
2Jane220987654321
3John359876543210
4David310123456789

Als Ergebnis der Abfrage wurde nur der erste Datensatz mit dem Namen "John" aktualisiert, und der Alterswert wurde auf 30 geändert.

Beispiel für die Verwendung des distinct-Operators in einer DELETE-Abfrage

Mit der DISTINCT-Anweisung in einer DELETE-Abfrage können Sie nur eindeutige Datensätze aus einer Tabelle entfernen, wobei alle doppelten Zeilen ausgeschlossen werden. Es wird zusammen mit dem Wort DELETE und dem Schlüsselwort FROM verwendet.

Betrachten Sie ein Beispiel für die Verwendung des DISTINCT-Operators in einer DELETE-Abfrage:

idnameage
1John25
2John25
3Anna30
4Anna30

Angenommen, die obige Tabelle enthält Informationen über Personen. Um alle doppelten Einträge mit demselben Namen und Alter zu entfernen, können wir die folgende Abfrage verwenden:

DELETE FROM peopleWHERE (name, age) NOT IN (SELECT DISTINCT name, ageFROM people)

Nach Abschluss dieser Abfrage werden die Zeilen mit ID 2 und 4 gelöscht, da sie die Zeilen mit id 1 und 3 vollständig duplizieren.

Das Ergebnis ist die folgende Tabelle:

idnameage
1John25
3Anna30

Die Tabelle enthält jetzt nur noch eindeutige Einträge ohne Wiederholungen.