Interviewvragen voor SQL-ontwikkelaars: Common SQL Interview Q&A- Deel 3

Welke soorten SQL joins heb je gebruikt en leg uit hoe ze werken?

Antwoord:

  • INNER JOIN: Retourneert rijen met overeenkomende gegevens uit beide tabellen.
  • LEFT JOIN: Retourneert alle rijen uit de linkertabel en overeenkomende rijen uit de rechtertabel.
  • RIGHT JOIN: Retourneert alle rijen uit de rechtertabel en overeenkomende rijen uit de linkertabel.
  • FULL JOIN: Retourneert alle rijen uit beide tabellen, inclusief niet-overeenkomende rijen.

 

De ACID-concepten in SQL en hun rol in transactiebeheer uitleggen

Antwoord: ACID staat voor Atomicity, Consistency, Isolation, Durability. Dit zijn essentiële eigenschappen in transactiebeheer in SQL:

  • Atomicity zorgt ervoor dat een transactie volledig of helemaal niet wordt verwerkt.
  • Consistency zorgt ervoor dat gegevens moeten voldoen aan gedefinieerde regels, beperkingen en voorwaarden.
  • Isolation zorgt ervoor dat gelijktijdige transacties elkaar niet hinderen.
  • Durability zorgt ervoor dat zodra een transactie is voltooid, de wijzigingen in de database veilig en permanent worden opgeslagen.

 

Wat is het verschil tussen ROW_NUMBER(), RANK(), DENSE_RANK() functies in SQL?

Antwoord: ROW_NUMBER(), RANK(), DENSE_RANK() worden allemaal gebruikt voor het nummeren van rijen in een queryresultaat, maar ze hebben de volgende verschillen:

  • ROW_NUMBER(): Wijst doorlopende nummers toe aan rijen in het queryresultaat, zonder rekening te houden met duplicaten.
  • RANK(): Wijst nummers toe aan rijen in het queryresultaat en slaat het volgende nummer over in het geval van gelijkspel.
  • DENSE_RANK(): Wijst nummers toe aan rijen in het queryresultaat en slaat het volgende nummer niet over in het geval van gelijkspel.

 

Hoe te gebruiken window functions in SQL, en geef een voorbeeld.

Antwoord: Window functions maakt het uitvoeren van berekeningen op een reeks gerelateerde rijen mogelijk zonder het resultaat van de hoofdquery te wijzigen. We kunnen bijvoorbeeld vensterfuncties gebruiken om lopende totalen te berekenen of om de bovenste N rijen binnen een resultatenset op te halen.

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

 

Reguliere expressies in SQL gebruiken voor patroonvergelijking

Antwoord: Reguliere expressies in SQL worden gebruikt voor het zoeken naar complexe tekstpatronen. Ze worden vaak gebruikt met de LIKE operator of functies zoals REGEXP_LIKE(in Oracle) of REGEXP_MATCHES(in PostgreSQL).

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

 

Hoe JSON-functies in SQL te gebruiken om met JSON-gegevens te werken

Antwoord: JSON-functies in SQL maken het opvragen, invoegen, bijwerken en verwijderen van gegevens in JSON-indeling in de database mogelijk.

We kunnen bijvoorbeeld functies gebruiken zoals JSON_VALUE, JSON_QUERY, JSON_MODIFY(in SQL Server), of operators zoals ->, ->>, #>, #>>, enz.(in PostgreSQL) om JSON-eigenschappen te manipuleren.

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

 

Geavanceerde technieken voor het optimaliseren van SQL-query's en het afstemmen van databaseprestaties

Antwoord: Om SQL-query's en databaseprestaties te optimaliseren, kunnen we technieken gebruiken zoals:

  • Indexen gebruiken voor veelgebruikte kolommen.
  • Optimalisatie JOIN en WHERE clausules voor het efficiënt ophalen van gegevens.
  • Waar nodig gebruik maken van vensterfuncties en paginering.
  • Vermijd SELECT * om alleen noodzakelijke kolommen op te halen.
  • Gebruik in sommige gevallen hints voor zoekopdrachten.
  • Zorgen voor gegevensnormalisatie en het verwijderen van duplicaten.
  • Prestatiebewakingstools gebruiken om de database bij te houden en te verfijnen.

 

Leg uit hoe u SET bewerkingen (UNION, INTERSECT, EXCEPT) in SQL gebruikt

Antwoord: SET bewerkingen (UNION, INTERSECT, EXCEPT) worden gebruikt om resultatensets van verschillende query's te combineren en te manipuleren.

  • UNION: Combineert de resultaten van twee of meer zoekopdrachten in één dataset en verwijdert duplicaten.
  • INTERSECT: Retourneert rijen die voorkomen in beide resultaatsets van query's.
  • EXCEPT: Retourneert rijen die voorkomen in de eerste resultatenset van de query, maar niet in de tweede.

 

Vraagfuncties gebruiken zoals LEAD, LAG, FIRST_VALUE, LAST_VALUE in SQL

Antwoord: Queryfuncties zoals LEAD, LAG, FIRST_VALUE, LAST_VALUE worden gebruikt om waarden op te halen uit gerelateerde rijen binnen hetzelfde queryresultaat.

  • LEAD: Haalt de waarde op van een kolom uit de volgende rij in het queryresultaat.
  • LAG: Haalt de waarde op van een kolom uit de vorige rij in het queryresultaat.
  • FIRST_VALUE: Haalt de eerste waarde op van een kolom in het queryresultaat.
  • LAST_VALUE: Haalt de laatste waarde op van een kolom in het queryresultaat.