Ich benutze MySQL-Datenbank. Ich habe eine Verwechslung zwischen Primärschlüssel und eindeutigem Schlüssel.
Bitte helfen Sie mir, wo ich einen primären und eindeutigen Schlüssel erstellen soll. Ich meine, in welcher Situation erstellen wir einen eindeutigen Schlüssel oder Primärschlüssel.
PRIMARY KEY = UNIQUE KEY + Not Null CONSTRAINT
Antworten:
Primärschlüssel:
NULL
- zB fügt MySQL hinzuNOT NULL
Einzigartiger Schlüssel:
NULL
Werte habenNULL
; Mehrere Zeilen könnenNULL
Werte haben und werden daher möglicherweise nicht als "eindeutig" betrachtet.quelle
Eindeutiger Schlüssel (UK) : Dies ist eine Spalte oder eine Gruppe von Spalten, die eine Eindeutigkeit in einer Zeile identifizieren können.
Primärschlüssel (PK) : Dies ist auch eine Spalte oder eine Gruppe von Spalten, die eine Eindeutigkeit in einer Zeile identifizieren können.
Der Primärschlüssel ist also nur ein anderer Name für einen eindeutigen Schlüssel, aber die Standardimplementierung in SQL Server unterscheidet sich für einen Primärschlüssel und einen eindeutigen Schlüssel.
Standardmäßig:
Es hängt wirklich davon ab, was Ihr Ziel ist, wenn Sie entscheiden, ob Sie ein UK oder ein PK erstellen möchten. Es folgt eine Analogie wie "Wenn es ein Team von drei Personen gibt, sind alle Peers, aber es wird einen von ihnen geben, der zwei Peers sein wird: PK und UK haben eine ähnliche Beziehung." Ich würde vorschlagen, diesen Artikel zu lesen: Das Beispiel des Autors scheint möglicherweise nicht geeignet zu sein, aber versuchen Sie, sich einen Überblick zu verschaffen.
http://tsqltips.blogspot.com/2012/06/difference-between-unique-key-and.html
quelle
[table_name]_pkey
der Tabelle eine neue Spalte (mit Standardname ) hinzugefügt wird (ich habe gehört, dass dies als Ersatzschlüssel bezeichnet wird). Quelle: postgresqltutorial.com/postgresql-primary-key Ich bin neu in all dem, daher würde ich mich über ein sachkundigeres Poster freuen , um auf die Nuancen hinzuweisen, die ich verpasst habe.Für eine Organisation oder ein Unternehmen gibt es so viele physische Entitäten (wie Personen, Ressourcen, Maschinen usw.) und virtuelle Entitäten (ihre Aufgaben, Transaktionen, Aktivitäten). In der Regel muss das Unternehmen Informationen dieser Geschäftseinheiten aufzeichnen und verarbeiten. Diese Geschäftseinheiten werden innerhalb einer gesamten Geschäftsdomäne durch einen Schlüssel identifiziert.
Gemäß RDBMS-Perspektive ist der Schlüssel (auch als Kandidatenschlüssel bezeichnet) ein Wert oder eine Reihe von Werten, die eine Entität eindeutig identifizieren.
Für eine DB-Tabelle sind so viele Schlüssel vorhanden, dass sie möglicherweise für den Primärschlüssel geeignet sind. Damit werden alle Schlüssel, Primärschlüssel, eindeutigen Schlüssel usw. gemeinsam als Kandidatenschlüssel bezeichnet. Der DBA hat jedoch einen Schlüssel aus dem Kandidatenschlüssel für die Suche nach Datensätzen ausgewählt, der als Primärschlüssel bezeichnet wird.
Unterschied zwischen Primärschlüssel und Eindeutiger Schlüssel
1. Verhalten: Der Primärschlüssel wird verwendet, um eine Zeile (einen Datensatz) in einer Tabelle zu identifizieren, während der Eindeutige Schlüssel dazu dient, doppelte Werte in einer Spalte zu verhindern (mit Ausnahme eines Null-Eintrags).
2. Indizierung: Standardmäßig erstellt die SQL-Engine einen Clustered-Index für den Primärschlüssel, falls nicht vorhanden, und einen Nicht-Clustered-Index für den eindeutigen Schlüssel.
3. Nullbarkeit: Der Primärschlüssel enthält keine Nullwerte, während der Eindeutige Schlüssel dies kann.
4. Existenz: Eine Tabelle kann höchstens einen Primärschlüssel haben, aber mehrere eindeutige Schlüssel.
5. Änderbarkeit: Sie können Primärwerte nicht ändern oder löschen, Unique-Key-Werte jedoch.
Für weitere Informationen und Beispiele:
http://dotnetauthorities.blogspot.in/2013/11/Microsoft-SQL-Server-Training-Online-Learning-Classes-Integrity-Constraints-PrimaryKey-Unique-Key_27.html
quelle
Ein Primärschlüssel muss eindeutig sein.
Ein eindeutiger Schlüssel muss nicht der Primärschlüssel sein - siehe Kandidatenschlüssel .
Das heißt, es kann mehr als eine Kombination von Spalten in einer Tabelle geben, die eine Zeile eindeutig identifizieren können - nur eine davon kann als Primärschlüssel ausgewählt werden. Die anderen, obwohl einzigartig, sind Kandidatenschlüssel.
quelle
Detaillierte Informationen finden Sie unter:
http://www.dotnet-tricks.com/Tutorial/sqlserver/V2bS260912-Difference-between-Primary-Key-and-Unique-Key.html
quelle
Ein Primärschlüssel hat die Semantik, die Zeile einer Datenbank zu identifizieren. Daher kann es für eine bestimmte Tabelle nur einen Primärschlüssel geben, während es viele eindeutige Schlüssel geben kann.
Aus dem gleichen Grund kann ein Primärschlüssel auch nicht NULL sein (zumindest in Oracle, bei anderen Datenbanken nicht sicher).
Da es die Zeile identifiziert, sollte es sich niemals ändern. Das Ändern des Primärschlüssels kann ernsthafte Schmerzen und wahrscheinlich ewige Verdammnis verursachen.
In den meisten Fällen möchten Sie daher eine künstliche ID für den Primärschlüssel, die nur zur Identifizierung einzelner Zeilen in der Tabelle verwendet wird.
Eindeutige Tasten hingegen können sich beliebig ändern.
quelle
Ein Primärschlüssel ist ein eindeutiger Schlüssel.
Jede Tabelle muss höchstens EINEN Primärschlüssel haben, kann jedoch mehrere eindeutige Schlüssel haben. Ein Primärschlüssel wird verwendet, um eine Tabellenzeile eindeutig zu identifizieren. Ein Primärschlüssel kann nicht sein,
NULL
da erNULL
kein Wert ist.quelle
quelle
Ich weiß, dass diese Frage mehrere Jahre alt ist, aber ich möchte eine Antwort darauf geben und erklären, warum und nicht wie
Zweck des Primärschlüssels : So identifizieren Sie eine Zeile in einer Datenbank eindeutig => Eine Zeile repräsentiert eine einzelne Instanz des von der Tabelle modellierten Entitätstyps. Ein Primärschlüssel erzwingt die Integrität einer Entität, AKA Entity Integrity. Der Primärschlüssel wäre ein Clustered-Index, dh er definiert die Reihenfolge, in der Daten physisch in einer Tabelle gespeichert werden.
Zweck des eindeutigen Schlüssels : Ok, mit dem Primärschlüssel haben wir eine Möglichkeit, eine Zeile eindeutig zu identifizieren. Aber ich habe ein Geschäftsbedürfnis, so dass eine andere Spalte / eine Reihe von Spalten eindeutige Werte haben sollte. Nun, technisch gesehen kann diese Spalte (n) eindeutig ein Kandidat sein, um die Integrität von Entitäten durchzusetzen. Nach allem, was wir wissen, kann diese Spalte Daten enthalten, die von einer externen Organisation stammen und bei denen ich Zweifel daran habe, dass sie einzigartig sind. Ich kann nicht darauf vertrauen, dass es die Integrität der Entität gewährleistet. Ich mache es einfach zu einem einzigartigen Schlüssel, um meine Geschäftsanforderungen zu erfüllen.
Los geht's!
quelle
Wenn Ihr Datenbankdesign so ist, dass kein Fremdschlüssel benötigt wird, können Sie den eindeutigen Schlüssel verwenden ( denken Sie jedoch daran, dass der eindeutige Schlüssel einen einzelnen Nullwert zulässt ).
Wenn Sie in der Datenbank einen Fremdschlüssel anfordern, haben Sie keine andere Wahl, als den Primärschlüssel zu verwenden.
Um den Unterschied zwischen eindeutigem und Primärschlüssel zu sehen, besuchen Sie hier
quelle
1) Primärschlüssel in der Spalte, der in der Tabelle nicht null sein darf und den Sie als Fremdschlüssel in einer anderen Tabelle zum Erstellen einer Beziehung verwenden
2) eindeutiger Schlüssel in der Tabelle, bei dem es keinen Einfluss auf die Tabelle oder die gesamte Datenbank hat, ob Sie die Null für die bestimmte Spalte wie Snacks im Restaurant verwenden. Möglicherweise nehmen Sie keine Snacks in einem Restaurant
quelle
Unterschied zwischen Primärschlüssel und Eindeutiger Schlüssel
Beide
Primary key
undUnique Key
werden verwendet, um eine Zeile in einer Tabelle eindeutig zu definieren.Primary Key
erstellt einclustered index
von der Spalte, während aUnique creates an unclustered index of the column
.A Primary Key
nicht erlaubtNULL value
, jedocha Unique Key
nicht erlaubtone NULL value
.quelle
Einfach Primärschlüssel ist eindeutig und kann nicht null sein, eindeutig kann null sein und darf nicht eindeutig sein.
quelle
may not be unique
bedeutet hier?Primärschlüssel
Der Hauptzweck des Primärschlüssels besteht darin, ein Mittel zum Identifizieren jedes Datensatzes in der Tabelle bereitzustellen.
Der Primärschlüssel bietet eine Möglichkeit, die Zeile mithilfe von Daten in der Zeile zu identifizieren. Ein Primärschlüssel kann auf einer oder mehreren Spalten basieren, z. B. Vor- und Nachname. In vielen Designs ist der Primärschlüssel jedoch eine automatisch generierte Nummer aus einer Identitätsspalte.
Ein Primärschlüssel hat folgende Eigenschaften:
Einzigartige Schlüssel
Ein eindeutiger Schlüssel wird auch als eindeutige Einschränkung bezeichnet. Eine eindeutige Einschränkung kann verwendet werden, um sicherzustellen, dass Zeilen innerhalb der Datenbank eindeutig sind.
Tun wir das nicht schon mit dem Primärschlüssel? Ja, das tun wir, aber eine Tabelle kann mehrere Sätze von Spalten enthalten, die eindeutig sein sollen.
In SQL Server weist der eindeutige Schlüssel die folgenden Merkmale auf:
Quelle: hier
quelle
Die Hauptmerkmale eines Primärschlüssels sind:
Es muss für jede Datenzeile einen eindeutigen Wert enthalten. Es darf keine Nullwerte enthalten. Nur ein Primärschlüssel in einer Tabelle.
Die Hauptmerkmale eines eindeutigen Schlüssels sind:
Es kann auch einen eindeutigen Wert für jede Datenzeile enthalten.
Es kann auch Nullwerte enthalten.
Mehrere eindeutige Schlüssel in einer Tabelle.
quelle