Pytania do wywiadów dla programistów SQL: wspólne pytania i odpowiedzi do wywiadów SQL — część 3

Jakich typów joins używałeś w SQL i wyjaśnij, jak działają?

Odpowiedź:

  • INNER JOIN: Zwraca wiersze z pasującymi danymi z obu tabel.
  • LEFT JOIN: Zwraca wszystkie wiersze z lewej tabeli i pasujące wiersze z prawej tabeli.
  • RIGHT JOIN: Zwraca wszystkie wiersze z prawej tabeli i pasujące wiersze z lewej tabeli.
  • FULL JOIN: zwraca wszystkie wiersze z obu tabel, w tym wiersze niepasujące.

 

Wyjaśnij pojęcia ACID w SQL i ich rolę w zarządzaniu transakcjami

Odpowiedź: ACID oznacza Atomicity, Consistency, Isolation, Durability. Oto podstawowe właściwości w zarządzaniu transakcjami w SQL:

  • Atomicity gwarantuje, że transakcja zostanie w pełni przetworzona lub nie zostanie w ogóle przetworzona.
  • Consistency zapewnia, że ​​dane muszą być zgodne z określonymi regułami, ograniczeniami i warunkami.
  • Isolation zapewnia, że ​​równoległe transakcje nie kolidują ze sobą.
  • Durability zapewnia, że ​​po zakończeniu transakcji zmiany w bazie danych są bezpiecznie i trwale zapisywane.

 

Jaka jest różnica między ROW_NUMBER(), RANK(), DENSE_RANK() funkcjami w SQL?

Odpowiedź: ROW_NUMBER(), RANK(), DENSE_RANK() wszystkie są używane do numerowania wierszy w wyniku zapytania, ale mają następujące różnice:

  • ROW_NUMBER(): przypisuje ciągłe liczby do wierszy w wyniku zapytania, bez uwzględniania duplikatów.
  • RANK(): Przypisuje liczby do wierszy w wyniku zapytania i pomija następną liczbę w przypadku remisów.
  • DENSE_RANK(): Przypisuje liczby do wierszy w wyniku zapytania i nie pomija następnej liczby w przypadku powiązania.

 

Jak używać window functions w SQL i podaj przykład.

Odpowiedź: Window functions zezwól na wykonywanie obliczeń na zbiorze powiązanych wierszy bez zmiany wyniku głównego zapytania. Na przykład możemy użyć funkcji okna do obliczenia bieżących sum lub pobrania N pierwszych wierszy w zestawie wyników.

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

 

Jak używać wyrażeń regularnych w języku SQL do dopasowywania wzorców

Odpowiedź: Wyrażenia regularne w języku SQL są używane do wyszukiwania złożonych wzorców tekstowych. Są często używane z LIKE operatorem lub funkcjami, takimi jak REGEXP_LIKE(w Oracle) lub REGEXP_MATCHES(w PostgreSQL).

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

 

Jak używać funkcji JSON w SQL do pracy z danymi JSON

Odpowiedź: Funkcje JSON w języku SQL umożliwiają odpytywanie, wstawianie, aktualizowanie i usuwanie danych w formacie JSON w bazie danych.

Na przykład możemy użyć funkcji takich jak JSON_VALUE, JSON_QUERY, JSON_MODIFY(w SQL Server) lub operatorów takich jak ->, ->>, #>, #>> itd.(w PostgreSQL) do manipulowania właściwościami JSON.

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

 

Zaawansowane techniki optymalizacji zapytań SQL i dostrajania wydajności baz danych

Odpowiedź: Aby zoptymalizować zapytania SQL i wydajność bazy danych, możemy zastosować takie techniki jak:

  • Używanie indeksów dla często używanych kolumn.
  • Optymalizacja JOIN i WHERE klauzule dla sprawnego wyszukiwania danych.
  • Wykorzystywanie funkcji okien i paginacji w razie potrzeby.
  • Unikanie SELECT * w celu pobrania tylko niezbędnych kolumn.
  • Korzystanie ze wskazówek dotyczących zapytań w niektórych przypadkach.
  • Zapewnienie normalizacji danych i usuwanie duplikatów.
  • Stosowanie narzędzi do monitorowania wydajności w celu śledzenia i dostrajania bazy danych.

 

Wyjaśnij, jak używać SET operacji (UNION, INTERSECT, EXCEPT) w SQl

Odpowiedź: SET operacje (UNION, INTERSECT, EXCEPT) służą do łączenia i manipulowania zbiorami wyników różnych zapytań.

  • UNION: łączy wyniki dwóch lub więcej zapytań w jeden zestaw danych i usuwa duplikaty.
  • INTERSECT: zwraca wiersze, które pojawiają się w obu zestawach wyników zapytania.
  • EXCEPT: zwraca wiersze, które pojawiają się w pierwszym zbiorze wyników zapytania, ale nie w drugim.

 

Jak korzystać z funkcji zapytań, takich jak LEAD, LAG, FIRST_VALUE, LAST_VALUE w SQL

Odpowiedź: Funkcje zapytań, takie jak, LEAD, LAG, FIRST_VALUE, LAST_VALUE są używane do pobierania wartości z powiązanych wierszy w ramach tego samego wyniku zapytania.

  • LEAD: Pobiera wartość kolumny z następnego wiersza w wyniku zapytania.
  • LAG: Pobiera wartość kolumny z poprzedniego wiersza w wyniku zapytania.
  • FIRST_VALUE: pobiera pierwszą wartość kolumny w wyniku zapytania.
  • LAST_VALUE: Pobiera ostatnią wartość kolumny w wyniku zapytania.