Samenvatting: in deze tutorial leert u hoe u MySQL primaire sleutelbeperking gebruikt om de primaire sleutel voor een tabel te maken.
Inleiding tot MySQL primaire sleutel
Een primaire sleutel is een kolom of een reeks kolommen die elke rij in de tabel uniek identificeert. De primaire sleutel volgt deze regels:
- Een primaire sleutel moet unieke waarden bevatten. Als de primaire sleutel uit meerdere kolommen bestaat, moet de combinatie van waarden in deze kolommen uniek zijn.
- Een primaire sleutelkolom mag geen
NULL
waarden bevatten. Elke poging omNULL
naar primaire-sleutelkolommen in te voegen of bij te werken, zal resulteren in een fout. Merk op dat MySQL impliciet eenNOT NULL
beperking toevoegt aan primaire sleutelkolommen. - Een tabel kan één en slechts één primaire sleutel hebben.
Omdat MySQL sneller werkt met gehele getallen, moet het gegevenstype van de primaire sleutelkolom het gehele getal zijn, bijvoorbeeld INT,
BIGINT
. En u moet ervoor zorgen dat waardebereiken van het type integer voor de primaire sleutel voldoende zijn om alle mogelijke rijen van de tabel op te slaan.
Een primaire-sleutelkolom heeft vaak de AUTO_INCREMENT
attribuut dat automatisch een opeenvolgend geheel getal genereert telkens wanneer u een nieuwe rij in de tabel invoegt.
Wanneer u een primaire sleutel voor een tabel definieert, maakt MySQL automatisch een index met de naam PRIMARY
.
MySQL PRIMARY KEY voorbeelden
Met de PRIMARY KEY
beperking kun je een primaire sleutel van een tabel definiëren wanneer u een tabel maakt of wijzigt.
1) Definieer een PRIMARY KEY-beperking in CREATE TABLE
Doorgaans definieert u de primaire sleutel voor een tabel in de CREATE TABLE
statement.
Als de primaire sleutel één kolom heeft, kunt u de PRIMARY KEY
beperking als kolombeperking gebruiken:
Code language: SQL (Structured Query Language) (sql)
Als de primaire sleutel meer dan één kolom heeft, moet u de e PRIMARY KEY
beperking als een tabelbeperking.
In deze syntaxis scheid je kolommen in de column_list
door komma’s ( ,).
De PRIMARY KEY
tabelbeperking kan worden gebruikt wanneer de primaire sleutel één kolom heeft:
In het volgende voorbeeld wordt een tabel gemaakt met de naam users
wiens primaire sleutel de user_id
kolom is:
Deze instructie creëert de roles
tabel met de PRIMARY KEY
beperking als tabelbeperking:
Als de primaire sleutel uit meerdere kolommen bestaat, moet u deze aan het einde specificeren van de instructie CREATE TABLE
. U plaatst een door komma’s gescheiden lijst van primaire-sleutelkolommen tussen haakjes, gevolgd door de PRIMARY KEY
-zoekwoorden.
In het volgende voorbeeld wordt de user_roles
tabel waarvan de primaire sleutel uit twee kolommen bestaat: user_id
en role_id
. Het definieert de PRIMARY KEY
beperking als de tabelbeperking:
Merk op dat de instructie ook twee externe sleutelbeperkingen creëerde.
2) Definieer PRIMAIR KEY-beperkingen met ALTER TABLE
Als een tabel om de een of andere reden geen primaire sleutel heeft, kunt u de instructie ALTER TABLE
gebruiken om een primaire sleutel toe te voegen aan de tabel als volgt:
Code language: SQL (Structured Query Language) (sql)
Het volgende voorbeeld voegt de kolom id
toe aan de primaire sleutel.
Maak eerst de pkdemos
-tabel zonder een primaire sleutel.
Code language: SQL (Structured Query Language) (sql)
Voeg ten tweede een primaire sleutel tot de pkdemos
tabel met behulp van de ALTER TABLE
instructie:
Code language: SQL (Structured Query Language) (sql)
Als u een primaire sleutel toevoegt aan een tabel die al gegevens bevat. De gegevens in de kolom (men), die worden opgenomen in de primaire sleutel, moeten uniek zijn en niet NULL.
PRIMAIRE SLEUTEL vs. UNIEKE SLEUTEL vs. SLEUTEL
KEY
is het synoniem voor INDEX
. U gebruikt de KEY
wanneer u een index wilt maken voor een kolom of een reeks kolommen die niet het onderdeel is van een primaire sleutel of unieke sleutel.
Een UNIQUE
-index zorgt ervoor dat waarden in een kolom uniek moeten zijn. In tegenstelling tot de PRIMARY
index, staat MySQL NULL
waarden toe in de UNIQUE
index. Bovendien kan een tabel meerdere UNIQUE
indexen hebben.
Stel dat email
en username
van gebruikers in de users
-tabel moet uniek zijn.Om deze regels af te dwingen, kunt u UNIQUE
indexen definiëren voor de email
en username
kolommen als de volgende verklaring:
Voeg een UNIQUE
index toe voor de username
kolom:
Code language: SQL (Structured Query Language) (sql)
Voeg een UNIQUE
index toe voor de email
kolom:
Code language: SQL (Structured Query Language) (sql)
In deze tutorial heeft u geleerd hoe u een primaire sleutel voor een nieuwe tabel kunt maken of een primaire sleutel aan een bestaande tabel kunt toevoegen.
- Was deze tutorial nuttig?
- JaNee