MySQL primaire sleutel

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 om NULL naar primaire-sleutelkolommen in te voegen of bij te werken, zal resulteren in een fout. Merk op dat MySQL impliciet een NOT 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

Leave a Reply

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *