Database
 sql >> Datenbank >  >> RDS >> Database

SQL-Primärschlüssel

Ein Feld, das eindeutige Daten in einer Tabelle enthält, wird als PRIMARY KEY (PK) bezeichnet. Das bedeutet, dass ein PRIMARY KEY-Feld eindeutige Daten in der Tabelle enthalten muss.

  • Ein PRIMARY KEY-Feld enthält Werte in jeder Zeile.
  • PRIMARY KEY-Feld darf keine leere Zeichenfolge enthalten.
  • PRIMARY KEY-Daten werden im Laufe der Zeit nie geändert.
  • Eine Tabelle kann nur aus einem PRIMARY KEY bestehen, der aus einzelnen oder mehreren Feldern in der Tabelle bestehen kann. Wenn mehr als eine Spalte als PRIMARY KEY der Tabelle verwendet wird, werden sie als zusammengesetzter Schlüssel in der Tabelle bezeichnet.
  • Es gibt keine doppelten Datensätze für einen PRIMARY KEY.
  • Wenn ein Feld in der Tabelle als PRIMARY KEY festgelegt ist, darf dieses Feld die Werte desselben Felds nicht mehr als einmal in der Tabelle enthalten.

Zum Beispiel haben wir eine Student-Tabelle in der Datenbank. Die Tabelle enthält 4 Felder Student_Id, Student_Name, Phone_Number und Email. Student_Id und Email ist der PRIMARY KEY in der Student-Tabelle. Es gibt nur einen PRIMÄRSCHLÜSSEL, der jedoch, wie oben erwähnt, einzelne oder mehrere Felder in der Tabelle haben kann. Die Daten eines Schülers sind bereits in der Tabelle vorhanden, aber derselbe Schüler fügt seine Daten erneut mit derselben E-Mail-ID hinzu. Während der Schüler Details eingibt, wird in einem Popup-Fenster die Meldung „E-Mail existiert bereits“ angezeigt. Es wird angezeigt, weil E-Mail bereits in der Tabelle vorhanden war und das E-Mail-Feld der PRIMARY KEY ist und der PRIMARY KEY keine doppelten Werte enthalten darf.

Primärschlüssel auf SQL-Tabelle erstellen

Die folgende SQL-Abfrage erstellt einen PRIMARY KEY für das Feld „Employee_Id“, wenn die Tabelle „Employee“ erstellt wird.

CREATE TABLE Employee( Employee_Id int PRIMARY KEY, Employee_Name varchar(40) NOT NULL, Salary int NOT NULL, Department varchar(40), City varchar(40) );        

Die obige Abfrage hat PRIMARY KEY für das Feld Employee_Id definiert. Wir können den Schlüsselnamen nach dem Feldnamen und dem Datentyp erwähnen. Die obige Abfrage ist die einzige Möglichkeit, wie wir Employee_Id als PRIMARY KEY erstellen können.

Um zu überprüfen, ob unser PRIMARY KEY erfolgreich definiert wurde oder nicht, können wir den DESC-Befehl gefolgt vom Employee-Tabellennamen verwenden.

DESC-Mitarbeiter;

Felder Typ Null Schlüssel Standard Extra
Employee_Id Int(11) NEIN PRI NULL
Mitarbeiter_Name Varchar(40) NEIN NULL
Gehalt Int(11) NEIN NULL
Abteilung Varchar(40) JA NULL
Stadt Varchar(40) JA NULL

Das Schlüsselfeld PRI wird vor der Employee_Id-Zeile erwähnt, was bedeutet, dass Employee_Id erfolgreich als PRIMARY KEY definiert wurde.

Vorteile der Verwendung von PRIMARY KEY in der Tabelle:

  1. Schneller Zugriff auf die Daten aus der Tabelle.
  2. Doppelte Werte sind in den PRIMARY KEY-Feldern nicht erlaubt.

Eine andere Möglichkeit, einen PRIMARY KEY zu erstellen

CREATE TABLE Employee( Employee_Id int NOT NULL, Employee_Name varchar(40) NOT NULL, Salary int NOT NULL, Department varchar(40), City varchar(40), PRIMARY KEY(Employee_ID) );

In der gleichen Abfrage wie oben müssen wir NOT NULL vor dem Feldnamen erwähnen, der als PRIMARY KEY erstellt wird, und am Ende müssen wir das Schlüsselwort PRIMARY KEY und den Feldnamen in Klammern schreiben, genau wie oben Abfrage.

Erstellen Sie eine PRIMARY KEY-Einschränkung für die Felder, wenn die Tabelle bereits vorhanden ist

Verwenden Sie die folgende Abfrage:

ALTER TABLE Employee ADD PRIMARY KEY(Employee_Id);

Bei Verwendung der ALTER TABLE-Abfrage zum Definieren von PRIMARY KEY wurde das PRIMARY KEY-Feld bereits mit der Einschränkung NOT NULL deklariert.

SQL PRIMARY KEY auf mehreren Spalten

Die folgende SQL-Abfrage erstellt einen PRIMARY KEY für mehr als eine Spalte, wenn die 'Student'-Tabelle erstellt wird.

CREATE TABLE Student( Student_Id int NOT NULL, Student_Name varchar(40), Department varchar(40), Phone_Number int(10), Email varchar(100) NOT NULL, PRIMARY KEY(Student_ID, Email));

Nur ein PRIMARY KEY wird im Beispiel auf Student_Id und Email gemacht.

Um zu überprüfen, ob unser PRIMARY KEY erfolgreich definiert wurde oder nicht, können wir den DESC-Befehl gefolgt vom Student-Tabellennamen verwenden.

DESC Student;
Felder Typ Null Schlüssel Standard Extra
Student_ID Int(11) NEIN PRI NULL
Schüler_Name Varchar(40) JA NULL
Abteilung Varchar(40) JA NULL
Telefonnummer Int(10) JA NULL
E-Mail Varchar(100) NEIN PRI NULL

Wie wir vor der Zeile Student_Id und Email sehen können, werden die Schlüsselfelder PRI erwähnt, was bedeutet, dass Student_Id und Email erfolgreich als PRIMARY KEY definiert wurden.

Wir werden jetzt SHOW CREATE TABLE ausführen, gefolgt vom Namen der Student-Tabelle, der die Student-Tabelle beschreibt.

SHOW CREATE TABLE Student;

In der obigen Ausgabe können wir sehen, dass nur ein PRIMARY KEY erstellt wird, und in Klammern wird der Feldname erwähnt, der beim Erstellen der Tabelle als PRIMARY KEY erstellt wird.

Angenommen, wir möchten die PRIMARY KEY-Einschränkung aus der Schülertabelle entfernen. Wir werden die folgende Abfrage verwenden, um die PRIMARY KEY-Einschränkung zu löschen:

ALTER TABLE Student DROP PRIMARY KEY;

Um zu überprüfen, ob unser PRIMARY KEY erfolgreich entfernt wurde oder nicht, verwenden wir den DESC-Befehl, gefolgt vom Namen der Student-Tabelle.

DESC Student;
Felder Typ Null Schlüssel Standard Extra
Student_ID Int(11) NEIN NULL
Schüler_Name Varchar(40) JA NULL
Abteilung Varchar(40) JA NULL
Telefonnummer Int(10) JA NULL
E-Mail Varchar(100) NEIN NULL