CHEIE PRIMARĂ SQL: Creare și adăugare la un tabel existent

⚡ Rezumat inteligent

O cheie primară în SQL Server este o coloană sau un set de coloane ale căror valori identifică în mod unic fiecare rând dintr-un tabel. Fiecare tabel conține o cheie primară, iar coloanele sale nu trebuie să fie niciodată NULL.

  • 🔑 Ce este o cheie primară: O cheie primară este una sau mai multe coloane ale căror valori sunt unice și identifică fiecare rând dintr-un tabel.
  • 🚫 Reguli de bază: Un tabel permite o singură cheie primară, fiecare valoare trebuie să fie unică și nicio coloană a cheii nu poate conține NULL.
  • 🖱️ Două metode de creare: Atât SQL Server Management Studio Table Designer, cât și instrucțiunea T-SQL CREATE TABLE definesc o cheie primară.
  • 🧱 Clauza CONSTRAINT: În interiorul instrucțiunii CREATE TABLE, clauza CONSTRAINT … PRIMARY KEY denumește cheia și listează coloana sau coloanele acesteia.
  • Adăugați la un tabel existent: ALTER TABLE … ADD CONSTRAINT adaugă o cheie primară la coloanele NOT NULL ale unui tabel existent.
  • 🧩 Cheie compozită: O cheie primară poate combina până la 16 coloane, formând o cheie compozită unică în întregul set.

CHEIA PRIMARĂ SQL Server: Cum se creează și se adaugă la un tabel existent

Ce este cheia primară în SQL?

O cheie primară în SQL Server este un câmp sau o combinație de câmpuri care identifică o înregistrare în mod unic. Este o coloană sau un set de coloane în care fiecare valoare este unică. Cu alte cuvinte, nicio cheie primară nu poate avea două rânduri aceeași valoare.

Reguli pentru cheia primară

  • Fiecare tabel poate avea o singură cheie primară.
  • Toate valorile sunt unice, iar valoarea cheii primare poate identifica în mod unic fiecare rând.
  • Sistemul nu va permite inserarea unui rând a cărui valoare a cheii primare există deja în tabel.
  • O cheie primară nu poate fi NULL.

Diagrama de mai jos rezumă toate punctele de mai sus despre cheia primară SQL.

Diagramă care rezumă regulile cheii primare SQL: valori unice, una per tabel și nu NULL

Cum se creează cheia primară în SQL Server

Puteți crea o cheie primară în două moduri:

Să studiem fiecare metodă în detaliu.

SQL Server Management Studio

Pasul 1) Faceți clic dreapta pe numele tabelului și apoi faceți clic pe Design.

Faceți clic dreapta pe tabel și alegeți Proiectare în SQL Server Management Studio

Pasul 2) Faceți clic dreapta pe numele coloanei și faceți clic pe Setați cheia primară.

Faceți clic dreapta pe coloană și alegeți Setare cheie primară în Designer tabel

Rezultat: Course_Id este acum o cheie primară, indicată printr-o pictogramă cheie lângă coloană.

Coloana Course_Id marcată cu o pictogramă cheie drept cheie primară

T-SQL: Crearea unei chei primare la crearea unui tabel nou

Mai jos este sintaxa pentru creați un tabel cu o cheie primară din T-SQL.

Sintaxă:

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

Aici, CONSTRAINT denumește cheia, PRIMARY KEY marchează coloana care trebuie să rămână unică, iar fiecare coloană necesită și o tip de date.

Să creăm un tabel cu o coloană ca și cheie primară SQL.

Solicitare:

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

Pasul 1) Executați interogarea făcând clic pe Executa.

Executarea interogării CREATE TABLE care definește cheia primară Course_ID

Rezultat: Course_Id este acum o cheie primară în tabela COURSE_TSQL_PK.

Tabelul COURSE_TSQL_PK care afișează Course_ID setat ca și cheie primară

Exemplu: Să vedem dacă permite introducerea mai multor înregistrări cu același ID de curs.

Pasul 1) Introduceți patru rânduri cu valori diferite pentru Course_ID.

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

Pasul 2) Verificați dacă toate datele au fost introduse cu succes rulând interogarea SELECT.

Rezultatul interogării SELECT afișează patru rânduri cu valori distincte Course_ID

Notă: Puteți insera valori duplicate într-o coloană care nu este cu cheie primară.

Pasul 3) Acum să încercăm să inserăm o nouă înregistrare cu un ID_curs existent, care este cheia primară.

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

Rezultat: Sistemul nu permite inserarea noii valori, deoarece 4 există deja în coloana Course_ID, care este o cheie primară.

Mesaj de eroare privind respingerea unei valori cheie primare duplicate pentru Course_ID

Cum să adăugați cheia primară la tabelul existent în SQL?

Acum vom vedea cum se adaugă o cheie primară la un tabel existent în SQL.

Puteți utiliza instrucțiunea ALTER pentru a crea o cheie primară. Cu toate acestea, o cheie primară poate fi creată numai pe coloane definite ca NOT NULL. Nu puteți crea o cheie primară pe o coloană care permite valori NULL; dacă o coloană permite în prezent valori NULL, trebuie mai întâi să o modificați la NOT NULL sau să eliminați și să recreați tabelul.

Iată sintaxa:

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

De exemplu:

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

Instrucțiunea ALTER TABLE care adaugă o constrângere de cheie primară numită students_pk

Am adăugat o constrângere de cheie primară la un tabel deja existent. Constrângerea a fost adăugată pe coloana de admitere și i s-a atribuit numele student_pk.

Fapte interesante!

  • O cheie primară poate fi o combinație de mai multe coloane. Această combinație este cunoscută sub numele de cheie primară compozită.
  • O cheie primară poate avea maximum 16 coloane.

Întrebări frecvente

Ambele impun unicitatea. Un tabel permite o singură cheie primară, iar coloanele sale nu pot fi NULL. Un tabel poate conține mai multe chei unice, iar o coloană unică poate accepta o valoare NULL. Cheile primare definesc de obicei identificatorul rândului principal.

Da. SQL Server construiește automat un index unic pentru a impune cheia primară. În mod implicit, acest index este grupat în clustere, ceea ce ordonează fizic rândurile. Puteți specifica NONCLUSTERED în schimb atunci când o altă coloană conține deja indexul grupat în clustere.

O cheie primară compozită combină două sau mai multe coloane, astfel încât valorile lor sunt unice împreună, chiar și atunci când fiecare coloană se repetă individual. SQL Server permite ca o cheie primară să se întindă pe până la 16 coloane și o lungime totală a cheii de 900 de octeți.

O cheie primară identifică în mod unic fiecare rând din propriul tabel și nu permite niciodată valori NULL. cheie externă stochează valori care trebuie să corespundă unei chei primare sau unice dintr-un alt tabel, creând o relație între cele două tabele.

Executați ALTER TABLE nume_tabelă DROP CONSTRAINT nume_constrângere. Trebuie să cunoașteți numele constrângerii, pe care îl puteți găsi în sys.key_constraints. Dropping cheia primară elimină, de asemenea, indexul unic de suport și orice cheie externă care o face referire.

O coloană IDENTITY care generează automat numere este o cheie primară surogat populară, deoarece rămâne îngustă, stabilă și niciodată NULL. Alegeți o cheie naturală în schimb numai atunci când o coloană existentă, cum ar fi un cod de produs, este deja garantată ca fiind unică.

Da. Copilotul GitHub poate scrie instrucțiuni CREATE TABLE și constrângeri PRIMARY KEY din prompturi în limbaj natural și poate sugera coloane cheie adecvate. Verifică întotdeauna cheile generate, tipurile de date și nulabilitatea, apoi testează scriptul înainte de a-l rula în producție.

Instrumentele de inteligență artificială și învățare automată analizează date eșantion și modele de interogare pentru a recomanda ce coloană sau coloane ar trebui să fie cheia primară, pentru a semnala cheile candidate care conțin duplicate sau valori NULL și pentru a sugera chei surogat. Dezvoltatorul confirmă fiecare recomandare înainte de a o aplica.

Rezumați această postare cu: