Intervjufrågor för SQL-utvecklare: Vanliga SQL-intervjufrågor och svar- Del 3

Vilka typer av joins har du använt i SQL, och förklara hur de fungerar?

Svar:

  • INNER JOIN: Returnerar rader med matchande data från båda tabellerna.
  • LEFT JOIN: Returnerar alla rader från den vänstra tabellen och matchande rader från den högra tabellen.
  • RIGHT JOIN: Returnerar alla rader från den högra tabellen och matchande rader från den vänstra tabellen.
  • FULL JOIN: Returnerar alla rader från båda tabellerna, inklusive icke-matchande rader.

 

Förklara ACID-koncepten i SQL och deras roll i transaktionshantering

Svar: ACID står för Atomicity, Consistency, Isolation, Durability. Dessa är viktiga egenskaper i transaktionshantering i SQL:

  • Atomicity säkerställer att en transaktion antingen behandlas helt eller inte alls.
  • Consistency säkerställer att data måste följa definierade regler, begränsningar och villkor.
  • Isolation säkerställer att samtidiga transaktioner inte stör varandra.
  • Durability säkerställer att när en transaktion är slutförd, sparas ändringarna i databasen säkert och permanent.

 

Vad är skillnaden mellan ROW_NUMBER(), RANK(), DENSE_RANK() funktioner i SQL?

Svar: ROW_NUMBER(), RANK(), DENSE_RANK() används alla för att numrera rader i ett frågeresultat, men de har följande skillnader:

  • ROW_NUMBER(): Tilldelar kontinuerliga nummer till rader i frågeresultatet, utan att ta hänsyn till dubbletter.
  • RANK(): Tilldelar siffror till rader i frågeresultatet och hoppar över nästa nummer vid oavgjort.
  • DENSE_RANK(): Tilldelar nummer till rader i frågeresultatet och hoppar inte över nästa nummer vid oavgjort.

 

Hur man använder window functions i SQL, och ge ett exempel.

Svar: Window functions tillåt att utföra beräkningar på en uppsättning relaterade rader utan att ändra huvudfrågans resultat. Till exempel kan vi använda fönsterfunktioner för att beräkna löpande summor eller hämta topp N rader inom en resultatuppsättning.

SELECT ProductID, UnitPrice,   
       SUM(UnitPrice) OVER(ORDER BY ProductID) AS RunningTotal  
FROM Products;  

 

Hur man använder reguljära uttryck i SQL för mönstermatchning

Svar: Reguljära uttryck i SQL används för komplexa textmönstersökningar. De används ofta med LIKE operatören eller funktioner som REGEXP_LIKE(i Oracle) eller REGEXP_MATCHES(i PostgreSQL).

SELECT * FROM Employees WHERE LastName LIKE '%son%';

 

Hur man använder JSON-funktioner i SQL för att arbeta med JSON-data

Svar: JSON-funktioner i SQL gör det möjligt att fråga, infoga, uppdatera och ta bort data i JSON-format i databasen.

Till exempel kan vi använda funktioner som JSON_VALUE, JSON_QUERY, JSON_MODIFY(i SQL Server), eller operatorer som ->, ->>, #>, #>>, etc.(i PostgreSQL) för att manipulera JSON-egenskaper.

SELECT JSON_VALUE(CustomerInfo, '$.Name') AS CustomerName  
FROM Customers;  

 

Avancerade tekniker för SQL-frågeoptimering och inställning av databasprestanda

Svar: För att optimera SQL-frågor och databasprestanda kan vi använda tekniker som:

  • Använda index för ofta frågade kolumner.
  • Optimering JOIN och WHERE klausuler för effektiv datahämtning.
  • Använda fönsterfunktioner och paginering vid behov.
  • Undviker SELECT * för att bara hämta nödvändiga kolumner.
  • Använda frågetips i vissa fall.
  • Säkerställa normalisering av data och ta bort dubbletter.
  • Använda prestandaövervakningsverktyg för att spåra och finjustera databasen.

 

Förklara hur man använder SET operationer (UNION, INTERSECT, EXCEPT) i SQL

Svar: SET operationer (UNION, INTERSECT, EXCEPT) används för att kombinera och manipulera resultatuppsättningar av olika frågor.

  • UNION: Kombinerar resultaten av två eller flera frågor till en enda datamängd och tar bort dubbletter.
  • INTERSECT: Returnerar rader som visas i båda frågeresultatuppsättningarna.
  • EXCEPT: Returnerar rader som visas i den första frågeresultatuppsättningen men inte i den andra.

 

Hur man använder frågefunktioner som LEAD, LAG, FIRST_VALUE, LAST_VALUE i SQL

Svar: Frågefunktioner som LEAD, LAG, FIRST_VALUE, LAST_VALUE används för att hämta värden från relaterade rader inom samma frågeresultat.

  • LEAD: Hämtar värdet för en kolumn från nästa rad i frågeresultatet.
  • LAG: Hämtar värdet för en kolumn från föregående rad i frågeresultatet.
  • FIRST_VALUE: Hämtar det första värdet i en kolumn i frågeresultatet.
  • LAST_VALUE: Hämtar det sista värdet i en kolumn i frågeresultatet.