Forberedelse til SQL-interview · Lektion

Primærnøgler, fremmednøgler og begrænsninger

Forklar nøgler, entydighed og referentiel integritet, sådan som en interviewer forventer at høre det

Lektion 3 af 413 trin

Primærnøgler, fremmednøgler og begrænsninger er en gratis Forberedelse til SQL-interview-lektion på CoddyKit. Dette er lektion 3 af 4. Du kan læse hele lektionen gratis nedenfor — og derefter øve dig praktisk i browseren med en indbygget kodeeditor og en AI-vejleder, der er tilgængelig døgnet rundt. Den er en del af læringsforløbet i Forberedelse til SQL-interview, og dine fremskridt synkroniseres på tværs af nettet og CoddyKit-appen. Forberedelse til SQL-interview-kurset indeholder 4 lektioner i alt.

Hvorfor nøgler altid kommer op

Efter definitionen af SQL går interviewere videre til nøgler og begrænsninger. Det, der binder dem sammen, er integritet: Regler, som databasen håndhæver, så ugyldige data ikke kan indsættes.

Hvad en primærnøgle er

En primærnøgle identificerer hver række entydigt. Den er altid unik og NOT NULL, og en tabel har højst én. Sig det klart for at få point.

CREATE TABLE customers (
  id INTEGER PRIMARY KEY,
  email VARCHAR(255) NOT NULL,
  name VARCHAR(100)
);

Naturlige kontra surrogatnøgler

Rigtige data eller et genereret tal? En naturlig nøgle bruger eksisterende entydige data; en surrogatnøgle er et genereret id. De fleste teams foretrækker surrogatnøgler, fordi de er stabile.

Sammensatte primærnøgler

En primærnøgle kan strække sig over mere end én kolonne og kaldes så en sammensat nøgle. Du ser dem i forbindelsestabeller, hvor to fremmednøgler tilsammen identificerer hver række.

CREATE TABLE enrollments (
  student_id INTEGER,
  course_id INTEGER,
  enrolled_on DATE,
  PRIMARY KEY (student_id, course_id)
);

Primærnøgle kontra unik begrænsning

Et garanteret spørgsmål: primærnøgle kontra unik begrænsning. Begge håndhæver entydighed, men en tabel har én primærnøgle (NOT NULL) og mange unikke begrænsninger (som hver især tillader en NULL).

CREATE TABLE users (
  id INTEGER PRIMARY KEY,
  email VARCHAR(255) UNIQUE,
  username VARCHAR(50) UNIQUE
);

Hvad en fremmednøgle er

En fremmednøgle refererer til en anden tabels primærnøgle og håndhæver referentiel integritet: Du kan ikke tilføje en underordnet række, der peger på en overordnet række, som ikke findes.

CREATE TABLE orders (
  id INTEGER PRIMARY KEY,
  customer_id INTEGER REFERENCES customers(id),
  amount NUMERIC(10,2)
);

Referentielle handlinger: ON DELETE / ON UPDATE

"Hvad sker der med ordrer, hvis kunden slettes?" Det er en referentiel handling: RESTRICT blokerer det (standardindstillingen), CASCADE sletter underordnede rækker, og SET NULL nulstiller nøglen.

CREATE TABLE order_items (
  id INTEGER PRIMARY KEY,
  order_id INTEGER REFERENCES orders(id) ON DELETE CASCADE
);

NOT NULL, CHECK og DEFAULT

Tre yderligere begrænsninger fuldender integriteten: NOT NULL forbyder manglende værdier, CHECK håndhæver en regel som stock >= 0, og DEFAULT leverer en reserveværdi.

CREATE TABLE products (
  id INTEGER PRIMARY KEY,
  price NUMERIC(10,2) NOT NULL DEFAULT 0,
  stock INTEGER CHECK (stock >= 0)
);

Gennemgået eksempel: Design med integritet

Lad os udforme et biblioteks lånetabel. Koden nedenfor bruger to fremmednøgler, en afleveringsdato, der ikke må være NULL, og en unik regel, så en bog ikke kan udlånes to gange på samme tid.

CREATE TABLE loans (
  id INTEGER PRIMARY KEY,
  book_id INTEGER NOT NULL REFERENCES books(id),
  member_id INTEGER NOT NULL REFERENCES members(id),
  due_date DATE NOT NULL,
  returned BOOLEAN DEFAULT false
);

Sådan taler du om integritet

Nævn de tre former for integritet for at vise dybde: entitetsintegritet fra primærnøgler, referentiel integritet fra fremmednøgler og domæneintegritet fra NOT NULL, CHECK og datatyper.

Tilføjelse af begrænsninger til en eksisterende tabel

Bliver du bedt om at tilføje begrænsninger til en eksisterende tabel? Brug ALTER TABLE ... ADD CONSTRAINT. En vigtig detalje er, at det kan mislykkes, hvis de nuværende rækker allerede overtræder den nye regel.

ALTER TABLE orders
  ADD CONSTRAINT fk_orders_customer
  FOREIGN KEY (customer_id) REFERENCES customers(id);

Hurtigt tjek

Skeln mellem en primærnøgle og en unik begrænsning.

Opsummering

Opsummering: En primærnøgle er unik og NOT NULL, og der er én pr. tabel; en unik begrænsning tillader en NULL, og du kan have mange; en fremmednøgle håndhæver referentiel integritet.

Gratis at komme i gang

Lær SQL med en AI-underviser — gratis

Skriv og kør rigtig kode i din browser, få øjeblikkelig hjælp fra en AI-underviser døgnet rundt, og fortsæt, hvor du slap, på web eller i appen.

Kurser
30
Lektioner
120

Ofte stillede spørgsmål

Er lektionen “Primærnøgler, fremmednøgler og begrænsninger” gratis?

Ja — hele teksten til “Primærnøgler, fremmednøgler og begrænsninger” kan læses gratis her på nettet. Hvis du vil øve dig interaktivt med en indbygget kodeeditor og en AI-vejleder døgnet rundt og få adgang til resten af Forberedelse til SQL-interview-kurset, skal du opgradere til CoddyKit PRO. Forberedelse til SQL-interview-kurset indeholder 4 lektioner i alt.

Hvad lærer jeg i “Primærnøgler, fremmednøgler og begrænsninger”?

Forklar nøgler, entydighed og referentiel integritet, sådan som en interviewer forventer at høre det Du øver dig i Forberedelse til SQL-interview med praktisk kode, som du kører direkte i browseren, og en AI-vejleder døgnet rundt besvarer dine spørgsmål, mens du arbejder dig gennem lektionen.

Skal jeg have erfaring for at begynde på Forberedelse til SQL-interview?

Der kræves ingen tidligere erfaring. Forberedelse til SQL-interview på CoddyKit er tilrettelagt for både begyndere og øvede, så du kan starte her eller fra begyndelsen og lære i dit eget tempo. Dette er lektion 3 af 4.

Hvor lang tid tager lektionen “Primærnøgler, fremmednøgler og begrænsninger”?

De fleste CoddyKit-lektioner tager cirka 5–10 minutter. Hver lektion er kort og interaktiv, så du gør løbende fremskridt og kan fortsætte, hvor du slap – på både web og app.

Kan jeg skrive og køre kode i denne Forberedelse til SQL-interview-lektion?

Ja. Alle Forberedelse til SQL-interview-lektioner har en indbygget kodeeditor, så du kan skrive og køre rigtig kode direkte i din browser og få øjeblikkelig feedback fra AI – uden lokal opsætning.

Alle lektioner i dette kursus

  1. Hvad er SQL, og hvorfor spørger interviewere om det
  2. Logisk rækkefølge for udførelse af forespørgsler
  3. Primærnøgler, fremmednøgler og begrænsninger
  4. Læsning af et skema under pres
← Tilbage til Forberedelse til SQL-interview