23rd Jun 2022 5 Leseminuten Was ist der Unterschied zwischen UNIQUE und DISTINCT in SQL? Martyna Sławińska Data Engineering Inhaltsverzeichnis Das DISTINCT-Schlüsselwort in SQL Das UNIQUE-Schlüsselwort in SQL Alles zusammenfügen: UNIQUE vs. DISTINCT in SQL In unserem Alltag verwenden wir die Wörter unique und distinct austauschbar. In SQL spielen diese Begriffe jedoch eine ganz andere Rolle. Lassen Sie uns herausfinden, was an ihnen so unterschiedlich ist und wie wir sie in SQL verwenden können. Obwohl die Wörter unique und distinct Synonyme sind, decken sie in SQL sehr unterschiedliche Dinge ab. Das Schlüsselwort UNIQUE spielt in SQL die Rolle einer Datenbankbeschränkung; es stellt sicher, dass in einer bestimmten Spalte oder einem Satz von Spalten keine doppelten Werte gespeichert sind. Andererseits wird das Schlüsselwort DISTINCT in der Anweisung SELECT verwendet, um eindeutige Zeilen aus einer Tabelle zu holen. Der beste Ort, um etwas über SQL und Datenbanken zu lernen, ist LearnSQL.de. Es handelt sich um eine Online-Plattform, die Ihnen helfen soll, alle Datenbankthemen zu beherrschen. Sie bietet über 30 SQL-Kurse, darunter einen umfassenden SQL von A bis Z Track mit dem kompletten interaktiven SQL-Lernpfad oder Creating Database Structure, der Sie über Datenbankeinschränkungen wie UNIQUE unterrichtet. Schauen wir uns die beiden Schlüsselwörter UNIQUE und DISTINCT in SQL genauer an. Das DISTINCT-Schlüsselwort in SQL Das Schlüsselwort DISTINCT in SQL wird zusammen mit der Anweisung SELECT verwendet. Durch die Verwendung von SELECT, unmittelbar gefolgt vom Schlüsselwort DISTINCT, werden alle doppelten Zeilen aus der Ergebnismenge entfernt. Schauen wir uns ein Beispiel für DISTINCT in Aktion an. Wir erhalten die Cars Tabelle, die die Marken- und Modellinformationen für einige Autos enthält: IdBrandModelProductionYear AQ16AudiQ72011 FK19FordKuga2019 JC07JeepCherokee2012 JW15JeepWrangler2015 TS14TeslaModel S2014 TY20TeslaModel Y2020 Führen wir eine einfache SELECT -Anweisung aus, um alle Automarken zu erhalten, die nach 2011 hergestellt wurden: SELECT Brand FROM Cars WHERE ProductionYear > 2011; Das Ergebnis der obigen Abfrage lautet wie folgt. Brand Ford Jeep Jeep Tesla Tesla Wie Sie sehen können, haben wir doppelte Werte für Jeep und Tesla. Was, wenn wir einen einzelnen Datensatz für jeden Wert benötigen? Wir verwenden das Schlüsselwort DISTINCT: SELECT DISTINCT Brand FROM Cars WHERE ProductionYear > 2011; Und das Ergebnis ist... Brand Ford Jeep Tesla Jetzt sehen Sie, wie einfach und bequem es ist, das Schlüsselwort DISTINCT zu verwenden. Wenn Sie einen tieferen Einblick in das Schlüsselwort DISTINCT in SQL erhalten möchten, lesen Sie unseren Artikel Was ist die Rolle von DISTINCT in SQL? Das UNIQUE-Schlüsselwort in SQL Das Schlüsselwort UNIQUE in SQL kennzeichnet eine der Datenbankbeschränkungen. Durch die Verwendung der Einschränkung UNIQUE für eine Spalte oder einen Satz von Spalten können Sie verhindern, dass doppelte Werte in dieser Spalte oder diesem Satz gespeichert werden (d. h. die Kombination von Spaltenwerten muss eindeutig sein, obwohl jeder Wert mehrmals in derselben Spalte vorkommen kann). Schauen wir uns die UNIQUE Einschränkung in Aktion an. Wir erstellen eine Person Tabelle, die den Namen, die Sozialversicherungsnummer und die Nationalität einer Person speichert. CREATE TABLE Person ( RowId INTEGER PRIMARY KEY, FirstName varchar(50), LastName varchar(50), SSN varchar(20) UNIQUE, Nationality varchar(30) ); In diesem Fall darf die SSN-Spalte nur nicht-duplizierende Werte speichern; daher gibt es ein UNIQUE -Schlüsselwort in der Definition dieser Spalte, das ihr die UNIQUE-Beschränkung auferlegt. Weitere Übungen zur Tabellenerstellung und zum Datenbankdesign finden Sie in unserem Track zur Erstellung von Datenbankstrukturen. Er umfasst die Grundlagen der Tabellenerstellung, SQL-Datentypen, Beschränkungen und mehr. Und um einen Einblick in den Track zu bekommen, lesen Sie diesen Artikel. Fügen wir nun einige Werte in die Person Tabelle ein. INSERT INTO Person VALUES (1, 'John', 'Black', '321456987123', 'American'); INSERT INTO Person VALUES (2, 'Isabella', 'Sanchez', '987456345123', 'Spanish'); INSERT INTO Person VALUES (3, 'Klaus', 'Schmidt', '987456345123', 'German'); Wir erhalten einen Fehler bei der dritten INSERT Anweisung. Und warum? Weil eine UNIQUE Einschränkung für die Spalte SSN definiert wurde; daher kann derselbe Wert nicht zweimal in der Spalte SSN erscheinen. Sowohl Isabella als auch Klaus haben denselben SSN Wert, daher erhalten wir eine Fehlermeldung. Wir haben uns nicht an die Regeln gehalten, die durch die UNIQUE -Beschränkung festgelegt wurden. Wenn wir die letzte INSERT -Anweisung in... ändern. INSERT INTO Person VALUES (3, 'Klaus', 'Schmidt', '876456345123', 'German'); ... es wird in die Tabelle aufgenommen. Nach dem Ausführen aller drei INSERT Anweisungen, einschließlich der korrigierten dritten Anweisung, sieht die Person sieht die Tabelle wie folgt aus: RowIdFirstNameLastNameSSNNationality 1JohnBlack321456987123American 2IsabellaSanchez987456345123Spanish 3KlausSchmidt876456345123German Die UNIQUE -Beschränkung verhindert, dass INSERTs oder UPDATEs in einer Tabelle zu doppelten Werten in der Spalte oder dem Satz von Spalten führen, die die Beschränkung implementieren. Die nachstehende Tabelle verletzt also die UNIQUE -Beschränkung, die für die Spalte SSN gilt... RowIdFirstNameLastNameSSNNationality 1JohnBlack321456987123American 2IsabellaSanchez987456345123Spanish 3KlausSchmidt987456345123German ...und diese Tabelle befolgt die UNIQUE -Beschränkung für die SSN -Spalte. RowIdFirstNameLastNameSSNNationality 1JohnBlack321456987123American 2IsabellaSanchez987456345123Spanish 3KlausSchmidt876456345123German Sie können die UNIQUE Einschränkung während der Tabellenerstellung definieren, wie hier gezeigt wurde, oder nachdem die Tabelle erstellt wurde. Die UNIQUE Einschränkung kann auch später geändert oder entfernt werden. Wie das geht, erfahren Sie im Artikel What Is a Unique Constraint in SQL? Wir bieten auch einen interaktiven Kurs über SQL-Beschränkungen an, um Ihnen zu helfen, die verschiedenen Beschränkungen, die SQL zur Verfügung stellt, zu verstehen. Alles zusammenfügen: UNIQUE vs. DISTINCT in SQL Wir haben die Schlüsselwörter UNIQUE und DISTINCT definiert. Aber was sind die tatsächlichen Unterschiede zwischen ihnen? Das SchlüsselwortUNIQUE kennzeichnet eine Datenbankbeschränkung und wird bei der Tabellenerstellung oder später für eine bestimmte Spalte oder einen Satz von Spalten definiert. Das Schlüsselwort DISTINCT wird verwendet, wenn die Ergebnismenge aus der Datenbank abgerufen wird. Es folgt direkt auf dasSchlüsselwortSELECT , wenn wir sicherstellen wollen, dass alle Zeilen der Ergebnismenge eindeutige Werte oder einen eindeutigen Satz von Werten enthalten. Wir wissen, dass es immer gut ist, so viel praktische Erfahrung wie möglich zu sammeln, deshalb haben wir ein SQL-Übungssatz vorbereitet, mit dem Sie die verschiedenen Funktionen von SQL erlernen und üben können. Um sich selbst zu motivieren, schauen Sie sich unseren Artikel über die SQL-Übungssatz. Viel Erfolg! Tags: Data Engineering