SQL primaire sleutel: een primaire sleutel maken en toevoegen aan een bestaande tabel

โšก Slimme samenvatting

Een primaire sleutel in SQL Server is een kolom of een set kolommen waarvan de waarden elke rij in een tabel uniek identificeren. Elke tabel heeft รฉรฉn primaire sleutel en de kolommen ervan mogen nooit NULL zijn.

  • ๐Ÿ”‘ Wat is een primaire sleutel? Een primaire sleutel bestaat uit een of meer kolommen waarvan de waarden uniek zijn en die elke rij in een tabel identificeren.
  • ???? Basisregels: Een tabel staat slechts รฉรฉn primaire sleutel toe, elke waarde moet uniek zijn en geen enkele sleutelkolom mag de waarde NULL bevatten.
  • ๏ธ Twee aanmaakmethoden: Zowel de tabelontwerper in SQL Server Management Studio als de T-SQL CREATE TABLE-instructie definiรซren een primaire sleutel.
  • ๐Ÿงฑ BEPERKINGSclausule: Binnen de CREATE TABLE-clausule benoemt de CONSTRAINT โ€ฆ PRIMARY KEY-clausule de sleutel en geeft de kolom(men) op die bij de sleutel horen.
  • โž• Toevoegen aan een bestaande tabel: De opdracht ALTER TABLE โ€ฆ ADD CONSTRAINT voegt een primaire sleutel toe aan de NOT NULL-kolommen van een bestaande tabel.
  • ๐Ÿงฉ Samengestelde sleutel: Een primaire sleutel kan tot 16 kolommen combineren en zo een samengestelde sleutel vormen die uniek is binnen de hele dataset.

Primaire sleutel in SQL Server: Hoe maak je een primaire sleutel aan en voeg je er een toe aan een bestaande tabel?

Wat is primaire sleutel in SQL?

Een primaire sleutel in SQL Server Een primaire sleutel is een veld, of een combinatie van velden, waarmee een record uniek wordt geรฏdentificeerd. Het is een kolom of een set kolommen waarin elke waarde uniek is. Met andere woorden, geen twee rijen kunnen dezelfde primaire sleutelwaarde hebben.

Regels voor primaire sleutel

  • Elke tabel kan slechts รฉรฉn primaire sleutel hebben.
  • Alle waarden zijn uniek en de primaire sleutelwaarde kan elke rij uniek identificeren.
  • Het systeem staat niet toe dat een rij wordt ingevoegd waarvan de primaire sleutelwaarde al in de tabel aanwezig is.
  • Een primaire sleutel mag niet NULL zijn.

Het onderstaande diagram vat alle bovenstaande punten over de primaire sleutel van SQL samen.

Diagram dat de regels voor primaire sleutels in SQL samenvat: unieke waarden, รฉรฉn per tabel en niet NULL.

Hoe u een primaire sleutel in SQL Server maakt

Je kunt een primaire sleutel op twee manieren aanmaken:

Laten we elke methode in detail bekijken.

SQL Server Management Studio

Stap 1) Klik met de rechtermuisknop op de tabelnaam en klik Design.

Klik met de rechtermuisknop op de tabel en kies 'Ontwerp' in SQL Server Management Studio.

Stap 2) Klik met de rechtermuisknop op de kolomnaam en klik Primaire sleutel instellen.

Klik met de rechtermuisknop op de kolom en kies 'Primaire sleutel instellen in tabelontwerper'.

Resultaat: Course_Id is nu een primaire sleutel, aangegeven met een sleutelpictogram naast de kolom.

De kolom Course_Id, gemarkeerd met een sleutelpictogram, is de primaire sleutel.

T-SQL: Een primaire sleutel aanmaken tijdens het maken van een nieuwe tabel

Hieronder staat de syntaxis voor maak een tabel met een primaire sleutel uit T-SQL.

Syntax:

CREATE TABLE <Table_Name>
(
Column1 datatype,
Column2 datatype,CONSTRAINT <Name> PRIMARY KEY (Column name)
.
);

Hier geeft CONSTRAINT de sleutel aan, PRIMARY KEY markeert de kolom die uniek moet blijven, en elke kolom heeft ook een data type.

Laten we een tabel maken met รฉรฉn kolom als primaire SQL-sleutel.

Query:

CREATE TABLE COURSE_TSQL_PK 
(Course_ID Int not Null,
 Course_name Varchar(20)
 CONSTRAINT PK PRIMARY KEY (Course_ID)	
)

Stap 1) Voer de query uit door te klikken Uitvoeren.

De CREATE TABLE-query uitvoeren die de primaire sleutel Course_ID definieert.

Resultaat: Course_Id is nu een primaire sleutel in de tabel COURSE_TSQL_PK.

Tabel COURSE_TSQL_PK waarin Course_ID is ingesteld als primaire sleutel.

Voorbeeld: Laten we eens kijken of het mogelijk is om meerdere records met hetzelfde cursus-ID in te voeren.

Stap 1) Voeg vier rijen in met verschillende Course_ID-waarden.

Insert into COURSE_TSQL_PK values (1,'SQL');
Insert into COURSE_TSQL_PK values (2,'Python');
Insert into COURSE_TSQL_PK values (3,'SQL');
Insert into COURSE_TSQL_PK values (4,'C');

Stap 2) Controleer of alle gegevens succesvol zijn ingevoerd door de SELECT-query uit te voeren.

Het resultaat van de SELECT-query toont vier rijen met verschillende Course_ID-waarden.

Opmerking: U kunt dubbele waarden invoegen in een kolom die geen primaire sleutel is.

Stap 3) Laten we nu proberen een nieuw record in te voegen met een bestaande Course_ID, die de primaire sleutel is.

Insert into COURSE_TSQL_PK values (4,'JAVA');

Resultaat: Het systeem staat het invoegen van de nieuwe waarde niet toe, omdat de waarde 4 al bestaat in de kolom Course_ID, wat een primaire sleutel is.

Foutmelding: een dubbele primaire sleutelwaarde voor Course_ID wordt afgewezen.

Hoe kan ik een primaire sleutel toevoegen aan een bestaande tabel in SQL?

Nu gaan we bekijken hoe je een primaire sleutel toevoegt aan een bestaande tabel in SQL.

Je kunt de ALTER-instructie gebruiken om een โ€‹โ€‹primaire sleutel te maken. Een primaire sleutel kan echter alleen worden gemaakt op kolommen die zijn gedefinieerd als NOT NULL. Je kunt geen primaire sleutel maken op een kolom die NULL-waarden toestaat; als een kolom momenteel NULL-waarden toestaat, moet je deze eerst wijzigen naar NOT NULL, of de tabel verwijderen en opnieuw aanmaken.

Hier is de syntaxis:

ALTER TABLE tableName
ADD CONSTRAINT constraintName PRIMARY KEY (column_1, column_2, ... column_n);

Bijvoorbeeld:

ALTER TABLE students
ADD CONSTRAINT students_pk PRIMARY KEY (admission);

ALTER TABLE-instructie waarmee een primaire sleutelbeperking met de naam students_pk wordt toegevoegd

We hebben een beperking voor de primaire sleutel toegevoegd aan een reeds bestaande tabel. De beperking is toegevoegd aan de toelatingskolom en heeft de naam studenten_pk gekregen.

Interessante feiten!

  • Een primaire sleutel kan een combinatie zijn van meerdere kolommen. Deze combinatie staat bekend als de samengestelde primaire sleutel.
  • Een primaire sleutel kan maximaal 16 kolommen bevatten.

Veelgestelde vragen

Beide methoden vereisen uniciteit. Een tabel staat slechts รฉรฉn primaire sleutel toe en de kolommen ervan mogen geen NULL-waarde bevatten. Een tabel kan meerdere unieke sleutels bevatten en een unieke kolom mag รฉรฉn NULL-waarde accepteren. Primaire sleutels definiรซren meestal de belangrijkste rij-identificatie.

Ja. SQL Server maakt automatisch een unieke index aan om de primaire sleutel af te dwingen. Standaard is deze index geclusterd, waardoor de rijen fysiek worden geordend. U kunt in plaats daarvan NONCLUSTERED specificeren als een andere kolom al een geclusterde index heeft.

Een samengestelde primaire sleutel combineert twee of meer kolommen, zodat hun waarden samen uniek zijn, zelfs als elke kolom afzonderlijk herhaald wordt. SQL Server staat toe dat een primaire sleutel maximaal 16 kolommen omvat en een totale sleutellengte van 900 bytes heeft.

Een primaire sleutel identificeert elke rij binnen de betreffende tabel uniek en staat nooit NULL-waarden toe. vreemde sleutel Slaat waarden op die moeten overeenkomen met een primaire of unieke sleutel in een andere tabel, waardoor een relatie tussen de twee tabellen ontstaat.

Voer de volgende opdracht uit: ALTER TABLE table_name DROP CONSTRAINT constraint_name. U moet de naam van de constraint weten; deze vindt u in sys.key_constraints. Verwijder de constraint.ping De primaire sleutel verwijdert tevens de bijbehorende unieke index en alle externe sleutels die ernaar verwijzen.

Een IDENTITY-kolom die automatisch getallen genereert, is een populaire surrogaat primaire sleutel omdat deze smal, stabiel en nooit NULL blijft. Kies in plaats daarvan alleen voor een natuurlijke sleutel wanneer een bestaande kolom, zoals een productcode, al gegarandeerd uniek is.

Ja. GitHub-copiloot Je kunt CREATE TABLE-instructies en PRIMARY KEY-beperkingen schrijven op basis van prompts in natuurlijke taal en geschikte sleutelkolommen voorstellen. Controleer altijd de gegenereerde sleutels, gegevenstypen en null-waarden, en test het script voordat je het in productie uitvoert.

AI- en machine learning-tools analyseren voorbeeldgegevens en querypatronen om te bepalen welke kolom(men) de primaire sleutel moeten zijn, markeren kandidaatsleutels die duplicaten of NULL-waarden bevatten en stellen alternatieve sleutels voor. De ontwikkelaar bevestigt elke aanbeveling voordat deze wordt toegepast.

Vat dit bericht samen met: