Mester SQL-intervjuet: 20 vanlige spørsmål og svar

Structured Query Language (SQL) er et standardisert programmeringsspråk som benyttes av databaseadministratorer og dataanalytikere for å foreta søk i databaser. Språket er utbredt i programmeringskontekster for nettsider, applikasjoner og en rekke andre plattformer.

Det brukes til å aksessere og manipulere data i en database. Dette inkluderer opprettelse og endring av tabeller og kolonner, samt uthenting av data ved hjelp av SQL-kommandoer.

Dette innlegget har til hensikt å gi deg innsikt dersom du er på jakt etter spørsmål og svar som kan være nyttige i forberedelsene til et SQL-intervju. I en jobbintervjuprosess for stillinger som dataingeniør, dataanalytiker, databaseadministrator, og lignende, bør du forvente å møte følgende spørsmål.

Hva er de essensielle SQL-kommandoene?

Noen av de mest grunnleggende SQL-kommandoene inkluderer:

  • SELECT – Henter data fra en database.
  • CREATE TABLE – Etablerer en ny tabell.
  • DELETE – Fjerner data fra en database.
  • INSERT INTO – Legger til nye data i en database.
  • ALTER DATABASE – Endrer en database.
  • CREATE DATABASE – Oppretter en ny database.
  • UPDATE – Oppdaterer data i en database.

Hva er de fire sentrale SQL-setningene?

SQL-setninger kategoriseres i følgende hovedgrupper:

  • Data Definition Language (DDL) setninger
  • Data Manipulation Language (DML) setninger
  • Data Control Language (DCL) setninger
  • Transaction Control Language (TCL) setninger

Hva er funksjonen til en primærnøkkel i SQL?

En primærnøkkel er en kolonne (eller sett av kolonner) som tjener til å unikt identifisere hver rad i en database. Primærnøkler spiller en fundamental rolle i SQL-databaser. De gir hver rad i en databasetabell en unik identifikator. En primærnøkkel kan bestå av ett eller flere felt, og det kan kun eksistere én primærnøkkel per tabell.

Hva er SQL-datatyper?

En datatype er et attributt som definerer hvilken type data et objekt kan lagre, slik som binære strenger, numeriske verdier, tekstdata, finansielle data, dato- og tidsdata, med mer.

I SQL er datatyper inndelt i følgende hovedkategorier:

  • Eksakte tall
  • Omtrentlige tall
  • Dato og klokkeslett
  • Tegnstrenger
  • Unicode tegnstrenger
  • Binære strenger

Hvor lagres brukernavn og passord i SQL Server?

Brukernavn og passord lagres i SQL-tabellene `sys.server_principals` og `sys.sql_logins`, henholdsvis. Passord lagres ikke i klartekst.

Hva er SQL-injeksjon?

SQL-injeksjonsangrep representerer en av de mest utbredte formene for cyberangrep i dag. Disse angrepene gir ondsinnede aktører tilgang til data ved å manipulere en applikasjons database. Dette kan medføre alvorlige konsekvenser, fra økonomiske tap til tap av sensitiv informasjon. Det beste forsvaret mot SQL-injeksjonsangrep er å forhindre dem fra å skje i utgangspunktet.

Hva er en trigger i SQL, og hvilke typer finnes det?

En trigger er en spesiell type lagret prosedyre som automatisk utføres når en hendelse inntreffer i databaseserveren. Triggere benyttes for å evaluere data før eller etter datamanipulering ved bruk av DDL- og DML-setninger.

Det finnes tre hovedtyper triggere: LOGON, DDL og DML.

  • LOGON-triggere: Disse trigges når en bruker initierer en påloggingshendelse.
  • DDL-triggere: Disse utløses når en DDL-kommando, som CREATE, ALTER eller DROP, utføres.
  • DML-triggere: Disse aktiveres når en DML-kommando endrer data. Eksempler inkluderer INSERT, UPDATE og DELETE.

Hvordan skiller du mellom funksjoner som opererer på én rad kontra flere rader?

Enkelt-radsfunksjoner kan operere på en enkelt rad i en tabell om gangen. De bearbeider en rad og returnerer bare ett resultat. Lengde- og konverteringsfunksjoner for tekst er eksempler på enkelt-radsfunksjoner.

Flere-radsfunksjoner kan påvirke flere rader i en tabell samtidig. De kalles også gruppefunksjoner og bearbeider flere rader før de returnerer en enkelt verdi.

Hva er databasenormalisering, og hva er de fire hovedformene i SQL?

Databasenormalisering er en prosess hvor data organiseres med tanke på raskere tilgang og redusert dataredundans. Under normalisering organiseres kolonner og tabeller i en database for å sikre at alle avhengigheter opprettholdes korrekt via databaseintegritetsbegrensninger.

De fire normaliseringsformene er:

  • Første normalform (1 NF)
  • Andre normalform (2 NF)
  • Tredje normalform (3 NF)
  • Boyce-Codd normalform, også kjent som fjerde normalform (BCNF eller 4 NF)

Hva er indekser og begrensninger i SQL?

Indekser er et sentralt konsept i SQL. De gjør det mulig å raskt finne spesifikke rader i store databaser. De bidrar også til å håndheve begrensninger, som er regler som definerer hvordan databasen skal oppføre seg når visse vilkår er oppfylt.

Indekser benyttes for å forbedre ytelsen til spørringer ved å øke hastigheten på datasøk i tabeller. De bidrar også til å øke lesbarheten til data.

Begrensninger brukes for å begrense hvilke typer data som kan legges inn i en tabell. Dette sikrer nøyaktigheten og påliteligheten til data. Hvis det oppstår et brudd mellom begrensningen og en dataoperasjon, avbrytes operasjonen.

Hvilke SQL-begrensninger er mest brukt?

Vanlige SQL-begrensninger inkluderer:

  • CREATE INDEX: Denne kommandoen sørger for at indekser opprettes for tabeller for å lette datahenting.
  • FREMMEDNØKKEL (FOREIGN KEY): En fremmednøkkel brukes for å koble tabeller med lignende attributter.
  • STANDARD (DEFAULT): Gir en standardverdi for felt i en kolonne dersom ingen annen verdi er spesifisert.
  • UNIK (UNIQUE): Spesifiserer at hver verdi i en kolonne må være distinkt.
  • PRIMÆRNØKKEL (PRIMARY KEY): En tabells primærnøkkel identifiserer hver rad i tabellen.
  • IKKE NULL (NOT NULL): Sikrer at NULL-verdier ikke aksepteres i kolonner.
  • SJEKK (CHECK): Sikrer at hvert kolonnefelt samsvarer med en forhåndsdefinert betingelse.

Er NULL lik 0 i SQL?

En NULL-verdi i SQL indikerer en verdi som enten ikke er tilgjengelig eller ikke er tildelt. Et mellomrom (» «) eller null (0) er ikke det samme som NULL. Du kan ikke sammenligne NULL-verdien med andre verdier ved hjelp av sammenligningsoperatorer, slik som «=» eller «>», siden den ikke kan være lik eller ulik noen annen verdi.

Hvordan forebygger man SQL-injeksjonsangrep?

I tillegg til kontinuerlig skanning og penetrasjonstesting, er sikkerhetsmetoder som inndatavalidering, rensing, forberedte setninger og parameteriserte SQL-spørringer sentrale for å forhindre SQL-injeksjonsangrep. Raske forsvarsmekanismer, som en brannmur, vil også bidra til å beskytte SQL-databasen.

Hva er Dynamic SQL, og når kan det benyttes?

Dynamisk SQL er en funksjon som lar deg endre spørringer dynamisk under kjøring, basert på en eller flere kriterier, inkludert gjeldende dato, tid eller andre vilkår.

Du kan benytte dynamisk SQL for å endre spørringer på meningsfulle måter. Dette kan være nyttig for å nå spesifikke mål, eller for å forbedre dine programmeringsferdigheter. Enten du utvikler en ny applikasjon, forbedrer en eksisterende database eller legger til funksjonalitet for datavarehus i produksjonssystemet ditt, kan Dynamic SQL brukes til å løse mange ulike oppgaver.

Hvilke typer nøkler finnes i SQL?

Primærnøkkel: Hver rad eller post i en databasetabell er unikt identifisert av et felt som kalles primærnøkkel. Verdien i primærnøkkelen må være unik. Primærnøkkelfelt tillater ikke NULL-verdier. Det kan kun være én primærnøkkel per tabell, og den kan bestå av ett eller flere felt.

Fremmednøkkel: Et felt eller en gruppe felt i en tabell som er relatert til primærnøkkelen i en annen tabell, kalles en fremmednøkkel. Tabeller med primærnøkler kalles overordnede tabeller, mens tabeller med fremmednøkler kalles underordnede tabeller.

Supernøkkel: En supernøkkel er en nøkkel eller et sett med nøkler som bidrar til å identifisere oppføringer i en tabell. Selv om ikke alle attributter er nødvendige for å identifisere en oppføring, kan en supernøkkel inneholde en eller flere av dem.

Kandidatnøkkel: En kandidatnøkkel er et undersett av supernøkler som kan benyttes for å identifisere oppføringer i en database basert på en eller flere attributter. I motsetning til en supernøkkel, må alle attributtene i en kandidatnøkkel være nyttige for å identifisere oppføringer.

Sammensatt nøkkel: En sammensatt nøkkel er en kombinasjon av to eller flere kolonner i en tabell som brukes for å unikt identifisere rader i en tabell. En sammensatt nøkkel er en primærnøkkel kombinert med et annet attributt eller kolonne.

Hvilke typer indekser finnes i SQL?

Følgende er ulike typer indekser i SQL:

  • Hash-indeks
  • Minneoptimalisert ikke-klustret indeks
  • Klustret indeks
  • Ikke-klustret indeks
  • Unik indeks
  • Kolonnebutikkindeks
  • Indeks med inkluderte kolonner
  • Indeks på beregnede kolonner
  • Filtrert indeks
  • Romlig indeks
  • XML-indeks
  • Fulltekstindeks

Hva menes med bufferpool, og hva er fordelene?

I SQL refereres en bufferpool også til som et bufferlager. En bufferpool kan benyttes av alle ressurser for å lagre sine bufrede datasider. Når du konfigurerer en SQL Server-instans, kan størrelsen på bufferpoolen spesifiseres. Størrelsen på en bufferpool avgjør hvor mange sider den kan lagre.

Følgende er fordelene med en bufferpool:

  • Forbedret I/O-ytelse
  • Økt transaksjonsgjennomstrømning
  • Redusert I/O-latens
  • Forbedret leseytelse

Hva menes med avhengighet, og hvilke ulike typer avhengigheter finnes det?

Når et objekt refereres til ved navn i en SQL-setning som finnes i et annet objekt, etableres en avhengighet mellom disse to objektene. Begrepet «referert enhet» henviser til et objekt som vises i et SQL-uttrykk, mens «refererende enhet» refererer til et objekt som inneholder et SQL-uttrykk.

Følgende er de forskjellige typene avhengigheter i SQL:

  • Funksjonell avhengighet
  • Fullt funksjonell avhengighet
  • Flerverdiavhengighet
  • Transitiv avhengighet
  • Delvis avhengighet

Hva er SQL-koblinger, og hvilke er de mest brukte?

Koblinger (joins) er en fundamental del av dataoperasjoner i SQL. De gjør det mulig å kombinere to eller flere tabeller for å generere en enkelt tabell som kan benyttes for dataanalyse. De tilbyr også en metode for å filtrere resultater basert på kriterier i en enkelt tabell, noe som kan være nyttig når du skal finne spesifikke rader eller kolonner i en stor tabell.

Det er fire hovedtyper av JOINs i SQL: INNER JOIN, OUTER JOIN, CROSS JOIN og SELF JOIN.

Hva er settoperatorene i SQL?

Data fra en eller flere tabeller av samme type kan kombineres ved hjelp av settoperatoren. SQL-sett og SQL-koblingsoperatorer har likheter, men det finnes viktige forskjeller. SQL-settoperatorer kombinerer poster fra ulike spørringer, mens SQL-koblinger kombinerer kolonner fra forskjellige tabeller. Sammensatte SQL-spørringer er de som inkluderer settoperasjoner.

Konklusjon

Forhåpentligvis gir disse SQL-intervjuspørsmålene deg en oversikt over hva du kan forvente i en intervjusituasjon. Det er viktig med mer erfaring i SQL-miljøet for å lykkes i et SQL-intervju. Dette kan oppnås ved å studere SQL grundig. For å evaluere viktige SQL-prinsipper, må du også øve på SQL-spørsmål og fortsette å lese.

Dersom du ønsker mer klarhet rundt SQL-spørringer, kan du besøke en SQL-juks for å få mer innsikt i SQL-setninger.

For å få praktisk erfaring med å utføre SQL-spørringer, kan du se nærmere på disse SQL-øvingsplattformene.