sql >> Database >  >> RDS >> Database

Primaire SQL-sleutel

Een veld dat unieke gegevens in een tabel bevat, wordt een PRIMARY KEY (PK) genoemd. Dit betekent dat een PRIMARY KEY-veld unieke gegevens in de tabel moet bevatten.

  • Een PRIMAIRE SLEUTEL-veld bevat waarden op elke rij.
  • PRIMARY KEY-veld mag geen lege tekenreeks bevatten.
  • PRIMAIRE SLEUTEL-gegevens worden in de loop van de tijd nooit gewijzigd.
  • Een tabel kan slechts uit één PRIMAIRE SLEUTEL bestaan, die uit één of meerdere velden in de tabel kan bestaan. Als er meer dan één kolom wordt gebruikt als PRIMAIRE SLEUTEL van de tabel, staan ​​ze bekend als de Samengestelde sleutel in de tabel.
  • Er zullen geen dubbele records zijn voor een PRIMAIRE SLEUTEL.
  • Als een veld is ingesteld als PRIMAIRE SLEUTEL in de tabel, mag dat veld de waarden van hetzelfde veld niet meer dan één keer in de tabel bevatten.

We hebben bijvoorbeeld een Student-tabel in de database. De tabel bevat 4 velden Student_Id, Student_Name, Phone_Number en Email. Student_Id en e-mail is de PRIMAIRE SLEUTEL in de tabel Student. Er is slechts één PRIMAIRE SLEUTEL, maar deze kan enkele of meerdere velden in de tabel hebben, zoals we hierboven vertelden. De gegevens van één student zijn al aanwezig in de tabel, maar dezelfde student voegt zijn gegevens opnieuw toe met hetzelfde e-mailadres. Terwijl de student gegevens invoert, verschijnt er een pop-up met het bericht "E-mail bestaat al". Het wordt weergegeven omdat E-mail al in de tabel bestaat en het e-mailveld de PRIMAIRE SLEUTEL is en de PRIMAIRE SLEUTEL geen dubbele waarden kan bevatten.

PRIMAIRE SLEUTEL maken op SQL TABLE

De volgende SQL-query maakt een PRIMAIRE SLEUTEL in het veld Employee_Id wanneer de tabel 'Employee' wordt gemaakt.

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

De bovenstaande query heeft PRIMARY KEY gedefinieerd voor het veld Employee_Id. We kunnen de sleutelnaam vermelden achter de veldnaam en het gegevenstype. De bovenstaande query is de enige manier waarop we Employee_Id als PRIMAIRE SLEUTEL kunnen maken.

Om te controleren of onze PRIMARY KEY met succes is gedefinieerd of niet, kunnen we het DESC-commando gebruiken gevolgd door de naam van de Employee-tabel.

DESC-medewerker;

Velden Type Null Sleutel Standaard Extra
Employee_Id Int(11) NEE PRI NULL
Naam werknemer Varchar(40) NEE NULL
Salaris Int(11) NEE NULL
Afdeling Varchar(40) JA NULL
Stad Varchar(40) JA NULL

Het sleutelveld PRI wordt vermeld voor de rij Employee_Id, wat betekent dat Employee_Id met succes is gedefinieerd als de PRIMARY KEY.

Voordelen van het gebruik van PRIMARY KEY in de tabel:

  1. Snelle toegang tot de gegevens uit de tabel.
  2. Dubbele waarden zijn niet toegestaan ​​in de PRIMARY KEY-velden.

Een andere manier om een ​​PRIMAIRE SLEUTEL te maken

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 dezelfde query als hierboven moeten we NOT NULL vermelden voor de veldnaam, die is gemaakt als de PRIMARY KEY, en aan het einde moeten we het PRIMARY KEY trefwoord en de veldnaam tussen haakjes schrijven, net zoals hierboven vraag.

Maak een PRIMARY KEY-beperking voor de velden als de tabel al bestaat

Gebruik de volgende zoekopdracht:

ALTER TABLE Employee ADD PRIMARY KEY(Employee_Id);

Met behulp van de ALTER TABLE-query om PRIMARY KEY te definiëren, is het PRIMARY KEY-veld al gedeclareerd met de beperking NOT NULL.

SQL PRIMAIRE SLEUTEL op meerdere kolommen

De volgende SQL-query maakt een PRIMAIRE SLEUTEL op meer dan één kolom wanneer de 'Student'-tabel wordt gemaakt.

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));

In het voorbeeld wordt slechts één PRIMAIRE SLEUTEL gemaakt op Student_Id en Email.

Om te controleren of onze PRIMARY KEY met succes is gedefinieerd of niet, kunnen we het DESC-commando gebruiken, gevolgd door de naam van de Student-tabel.

DESC Student;
Velden Type Null Sleutel Standaard Extra
Student_Id Int(11) NEE PRI NULL
Naam leerling Varchar(40) JA NULL
Afdeling Varchar(40) JA NULL
Telefoonnummer Int(10) JA NULL
E-mail Varchar(100) NEE PRI NULL

Zoals we kunnen zien voor de rij Student_Id en E-mail, wordt de sleutelvelden PRI vermeld, wat betekent dat Student_Id en E-mail met succes zijn gedefinieerd als PRIMAIRE SLEUTEL.

We zullen nu SHOW CREATE TABLE uitvoeren gevolgd door de naam van de studententafel, die de studententafel zal beschrijven.

SHOW CREATE TABLE Student;

In de bovenstaande uitvoer kunnen we zien dat er slechts één PRIMAIRE SLEUTEL is gemaakt, en tussen haakjes wordt de naam van het veld genoemd, die wordt gemaakt als een PRIMAIRE SLEUTEL tijdens het maken van de tabel.

Stel dat we de PRIMARY KEY-beperking uit de studententabel willen verwijderen. We zullen de volgende query gebruiken om de PRIMARY KEY-beperking te verwijderen:

ALTER TABLE Student DROP PRIMARY KEY;

Om te controleren of onze PRIMARY KEY met succes is verwijderd of niet, gebruiken we het DESC-commando gevolgd door de naam van de Student-tabel.

DESC Student;
Velden Type Null Sleutel Standaard Extra
Student_Id Int(11) NEE NULL
Naam leerling Varchar(40) JA NULL
Afdeling Varchar(40) JA NULL
Telefoonnummer Int(10) JA NULL
E-mail Varchar(100) NEE NULL


  1. Is er een alternatief voor TOP in MySQL?

  2. Hoe u het huidige Auto_Increment-volgnummer voor MySQL / MariaDB-tabel kunt krijgen

  3. Update met Join-query in Oracle

  4. ORA-00947 Niet genoeg waarden bij het globaal declareren van het type