Primærnøkler, fremmednøkler og begrensninger
Forklar nøkler, unikhet og referanseintegritet slik intervjueren forventer å høre det.
Primærnøkler, fremmednøkler og begrensninger er en gratis leksjon i Forberedelse til SQL-intervju på CoddyKit. Dette er leksjon 3 av 4. Du kan lese hele leksjonen gratis nedenfor – og deretter øve praktisk i nettleseren med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Den er en del av læringsløpet i Forberedelse til SQL-intervju, og fremdriften din synkroniseres mellom nettet og CoddyKit-appen. Kurset i Forberedelse til SQL-intervju inneholder totalt 4 leksjoner.
Hvorfor nøkler alltid kommer opp
Etter at SQL er definert, går intervjuere videre til nøkler og begrensninger. Det som knytter dem sammen, er integritet: Regler som databasen håndhever, slik at ugyldige data ikke kan legges inn.
Hva en primærnøkkel er
En primærnøkkel identifiserer hver rad entydig. Den er alltid unik og NOT NULL, og en tabell har høyst én primærnøkkel. Si dette klart og presist for å få uttelling.
CREATE TABLE customers (
id INTEGER PRIMARY KEY,
email VARCHAR(255) NOT NULL,
name VARCHAR(100)
);Naturlige kontra surrogatnøkler
Reelle data eller et generert tall? En naturlig nøkkel bruker eksisterende, unike data, mens en surrogatnøkkel er en generert ID. De fleste team foretrekker surrogatnøkler fordi de er stabile.
Sammensatte primærnøkler
En primærnøkkel kan omfatte mer enn én kolonne og kalles da en sammensatt nøkkel. Du ser slike i koblingstabeller, der to fremmednøkler sammen identifiserer hver rad.
CREATE TABLE enrollments (
student_id INTEGER,
course_id INTEGER,
enrolled_on DATE,
PRIMARY KEY (student_id, course_id)
);Primærnøkkel kontra unikhetsbegrensning
Et spørsmål som nesten garantert kommer: primærnøkkel kontra unikhetsbegrensning. Begge håndhever unikhet, men en tabell har én primærnøkkel, som er NOT NULL, og mange unikhetsbegrensninger, som hver kan tillate en NULL-verdi.
CREATE TABLE users (
id INTEGER PRIMARY KEY,
email VARCHAR(255) UNIQUE,
username VARCHAR(50) UNIQUE
);Hva en fremmednøkkel er
En fremmednøkkel refererer til primærnøkkelen i en annen tabell og håndhever referanseintegritet: Du kan ikke legge til en underordnet rad som peker på en overordnet rad som ikke finnes.
CREATE TABLE orders (
id INTEGER PRIMARY KEY,
customer_id INTEGER REFERENCES customers(id),
amount NUMERIC(10,2)
);Referansehandlinger: ON DELETE / ON UPDATE
"Hva skjer med bestillinger hvis kunden slettes?" Det er en referansehandling: RESTRICT blokkerer slettingen (standardinnstillingen), CASCADE sletter underordnede rader, og SET NULL tømmer nøkkelen.
CREATE TABLE order_items (
id INTEGER PRIMARY KEY,
order_id INTEGER REFERENCES orders(id) ON DELETE CASCADE
);NOT NULL, CHECK og DEFAULT
Tre andre begrensninger fullfører integriteten: NOT NULL forbyr manglende verdier, CHECK håndhever en regel som stock >= 0, og DEFAULT angir en reserveverdi.
CREATE TABLE products (
id INTEGER PRIMARY KEY,
price NUMERIC(10,2) NOT NULL DEFAULT 0,
stock INTEGER CHECK (stock >= 0)
);Gjennomgått eksempel: Utforme med integritet
La oss utforme en tabell for utlån i et bibliotek. Koden nedenfor bruker to fremmednøkler, en forfallsdato som ikke kan være NULL, og en unik regel slik at en bok ikke kan lånes ut to ganger samtidig.
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
);Slik snakker du om integritet
Gi navn til de tre typene integritet for å vise dybdeforståelse: entitetsintegritet fra primærnøkler, referanseintegritet fra fremmednøkler og domeneintegritet fra NOT NULL, CHECK og datatyper.
Legge til begrensninger i en eksisterende tabell
Blir du bedt om å legge til begrensninger i en eksisterende tabell? Bruk ALTER TABLE ... ADD CONSTRAINT. Et viktig poeng er at dette kan mislykkes hvis eksisterende rader allerede bryter den nye regelen.
ALTER TABLE orders
ADD CONSTRAINT fk_orders_customer
FOREIGN KEY (customer_id) REFERENCES customers(id);Hurtigsjekk
Skill mellom en primærnøkkel og en unikhetsbegrensning.
Oppsummering
Oppsummering: En primærnøkkel er unik og NOT NULL, og det finnes én per tabell. En unikhetsbegrensning kan tillate en NULL-verdi, og du kan ha mange. En fremmednøkkel håndhever referanseintegritet.
Lær deg SQL med en AI-veileder – gratis
Skriv og kjør ekte kode i nettleseren, få umiddelbar hjelp fra en AI-veileder som er tilgjengelig døgnet rundt, og fortsett der du slapp – på nettet eller i appen.
- Kurs
- 30
- Leksjoner
- 120
Ofte stilte spørsmål
Er leksjonen «Primærnøkler, fremmednøkler og begrensninger» gratis?
Ja – hele teksten i «Primærnøkler, fremmednøkler og begrensninger» er gratis å lese her på nettet. For å øve interaktivt med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt, og for å låse opp resten av Forberedelse til SQL-intervju-kurset, kan du oppgradere til CoddyKit PRO. Kurset i Forberedelse til SQL-intervju inneholder totalt 4 leksjoner.
Hva lærer jeg i «Primærnøkler, fremmednøkler og begrensninger»?
Forklar nøkler, unikhet og referanseintegritet slik intervjueren forventer å høre det. Du øver på Forberedelse til SQL-intervju med praktisk kode som du kjører direkte i nettleseren, mens en AI-veileder som er tilgjengelig døgnet rundt, svarer på spørsmålene dine mens du jobber deg gjennom leksjonen.
Trenger jeg erfaring for å begynne med Forberedelse til SQL-intervju?
Ingen tidligere erfaring er nødvendig. Forberedelse til SQL-intervju på CoddyKit er lagt opp for både nybegynnere og viderekomne, så De kan begynne her eller helt fra start og lære i Deres eget tempo. Dette er leksjon 3 av 4.
Hvor lang tid tar leksjonen «Primærnøkler, fremmednøkler og begrensninger»?
De fleste CoddyKit-leksjoner tar omtrent 5–10 minutter. Hver leksjon er kort og interaktiv, slik at De gjør jevne fremskritt og kan fortsette akkurat der De slapp – både på nettet og i appen.
Kan jeg skrive og kjøre kode i denne Forberedelse til SQL-intervju-leksjonen?
Ja. Alle Forberedelse til SQL-intervju-leksjoner har en innebygd kodeeditor, slik at De kan skrive og kjøre ekte kode direkte i nettleseren og få umiddelbar tilbakemelding fra AI – uten lokal konfigurering.
Alle leksjonene i dette kurset
- Hva er SQL, og hvorfor spør intervjuere om det?
- Logisk rekkefølge for spørringskjøring
- Primærnøkler, fremmednøkler og begrensninger
- Lese et skjema under press