Interviewspørgsmål til SQL-udviklere: Almindelige SQL-interview-spørgsmål og svar- del 3

Hvilke typer joins har du brugt i SQL, og forklar hvordan de virker?

Svar:

  • INNER JOIN: Returnerer rækker med matchende data fra begge tabeller.
  • LEFT JOIN: Returnerer alle rækker fra venstre tabel og matchende rækker fra højre tabel.
  • RIGHT JOIN: Returnerer alle rækker fra den højre tabel og matchende rækker fra den venstre tabel.
  • FULL JOIN: Returnerer alle rækker fra begge tabeller, inklusive ikke-matchende rækker.

 

Forklar ACID-begreberne i SQL og deres rolle i transaktionsstyring

Svar: ACID står for Atomicity, Consistency, Isolation, Durability. Disse er væsentlige egenskaber i transaktionsstyring i SQL:

  • Atomicity sikrer, at en transaktion enten behandles fuldt ud eller slet ikke behandles.
  • Consistency sikrer, at data skal overholde definerede regler, begrænsninger og betingelser.
  • Isolation sikrer, at samtidige transaktioner ikke forstyrrer hinanden.
  • Durability sikrer, at når en transaktion er gennemført, gemmes ændringerne i databasen sikkert og permanent.

 

Hvad er forskellen mellem ROW_NUMBER(), RANK(), DENSE_RANK() funktioner i SQL?

Svar: ROW_NUMBER(), RANK(), DENSE_RANK() bruges alle til at nummerere rækker i et forespørgselsresultat, men de har følgende forskelle:

  • ROW_NUMBER(): Tildeler kontinuerlige tal til rækker i forespørgselsresultatet uden at tage dubletter i betragtning.
  • RANK(): Tildeler tal til rækker i forespørgselsresultatet og springer det næste tal over i tilfælde af uafgjort.
  • DENSE_RANK(): Tildeler tal til rækker i forespørgselsresultatet og springer ikke det næste tal over i tilfælde af uafgjort.

 

Sådan bruges window functions i SQL, og giv et eksempel.

Svar: Window functions tillad at udføre beregninger på et sæt af relaterede rækker uden at ændre hovedforespørgslens resultat. For eksempel kan vi bruge vinduesfunktioner til at beregne løbende totaler eller hente top N rækker i et resultatsæt.

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

 

Sådan bruger du regulære udtryk i SQL til mønstermatchning

Svar: Regulære udtryk i SQL bruges til komplekse tekstmønstersøgninger. De bruges ofte med LIKE operatoren eller funktioner som REGEXP_LIKE(i Oracle) eller REGEXP_MATCHES(i PostgreSQL).

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

 

Sådan bruges JSON-funktioner i SQL til at arbejde med JSON-data

Svar: JSON-funktioner i SQL tillader forespørgsel, indsættelse, opdatering og sletning af data i JSON-format i databasen.

For eksempel kan vi bruge funktioner som JSON_VALUE, JSON_QUERY, JSON_MODIFY(i SQL Server), eller operatorer som ->, ->>, #>, #>> osv.(i PostgreSQL) til at manipulere JSON-egenskaber.

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

 

Avancerede teknikker til SQL-forespørgselsoptimering og justering af databaseydeevne

Svar: For at optimere SQL-forespørgsler og databaseydeevne kan vi bruge teknikker som:

  • Brug af indekser til hyppigt forespurgte kolonner.
  • Optimering JOIN og WHERE klausuler for effektiv datahentning.
  • Brug af vinduesfunktioner og paginering, når det er nødvendigt.
  • Undgå SELECT * for kun at hente nødvendige kolonner.
  • Brug af forespørgselstip i nogle tilfælde.
  • Sikring af datanormalisering og fjernelse af dubletter.
  • Anvendelse af præstationsovervågningsværktøjer til at spore og finjustere databasen.

 

Forklar hvordan man bruger SET operationer (UNION, INTERSECT, EXCEPT) i SQL

Svar: SET operationer (UNION, INTERSECT, EXCEPT) bruges til at kombinere og manipulere resultatsæt af forskellige forespørgsler.

  • UNION: Kombinerer resultaterne af to eller flere forespørgsler til et enkelt datasæt og fjerner dubletter.
  • INTERSECT: Returnerer rækker, der vises i begge forespørgselsresultatsæt.
  • EXCEPT: Returnerer rækker, der vises i det første forespørgselsresultatsæt, men ikke i det andet.

 

Sådan bruger du forespørgselsfunktioner som LEAD, LAG, FIRST_VALUE, LAST_VALUE i SQL

Svar: Forespørgselsfunktioner som f.eks. LEAD, LAG, FIRST_VALUE, LAST_VALUE bruges til at hente værdier fra relaterede rækker inden for det samme forespørgselsresultat.

  • LEAD: Henter værdien af ​​en kolonne fra den næste række i forespørgselsresultatet.
  • LAG: Henter værdien af ​​en kolonne fra den forrige række i forespørgselsresultatet.
  • FIRST_VALUE: Henter den første værdi af en kolonne i forespørgselsresultatet.
  • LAST_VALUE: Henter den sidste værdi af en kolonne i forespørgselsresultatet.