Domande di intervista per sviluppatori SQL: Domande e risposte comuni sull'intervista SQL- Parte 3

In SQL, quali tipi di dati joins hai utilizzato e spieghi come funzionano?

Risposta:

  • INNER JOIN: Restituisce righe con dati corrispondenti da entrambe le tabelle.
  • LEFT JOIN: Restituisce tutte le righe della tabella di sinistra e le righe corrispondenti della tabella di destra.
  • RIGHT JOIN: Restituisce tutte le righe della tabella di destra e le righe corrispondenti della tabella di sinistra.
  • FULL JOIN: Restituisce tutte le righe di entrambe le tabelle, incluse le righe non corrispondenti.

 

Spiegare i concetti ACID in SQL e il loro ruolo nella gestione delle transazioni

Risposta: ACID sta per Atomicity, Consistency, Isolation, Durability. Queste sono proprietà essenziali nella gestione delle transazioni in SQL:

  • Atomicity garantisce che una transazione sia completamente elaborata o non elaborata affatto.
  • Consistency assicura che i dati debbano aderire a regole, vincoli e condizioni definiti.
  • Isolation assicura che le transazioni simultanee non interferiscano tra loro.
  • Durability garantisce che una volta completata una transazione, le modifiche nel database vengano salvate in modo sicuro e permanente.

 

Qual è la differenza tra ROW_NUMBER(), RANK(), DENSE_RANK() le funzioni in SQL?

Risposta: ROW_NUMBER(), RANK(), DENSE_RANK() sono tutti utilizzati per numerare le righe nei risultati di una query, ma presentano le seguenti differenze:

  • ROW_NUMBER(): assegna numeri continui alle righe nel risultato della query, senza considerare i duplicati.
  • RANK(): assegna numeri alle righe nel risultato della query e salta il numero successivo in caso di parità.
  • DENSE_RANK(): assegna numeri alle righe nel risultato della query e non salta il numero successivo in caso di parità.

 

Come utilizzare window functions in SQL e fornire un esempio.

Risposta: Window functions consente di eseguire calcoli su un insieme di righe correlate senza modificare il risultato della query principale. Ad esempio, possiamo utilizzare le funzioni finestra per calcolare i totali parziali o recuperare le prime N righe all'interno di un set di risultati.

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

 

Come utilizzare le espressioni regolari in SQL per la corrispondenza dei modelli

Risposta: le espressioni regolari in SQL vengono utilizzate per ricerche di modelli di testo complessi. Sono spesso usati con l' LIKE operatore o funzioni come REGEXP_LIKE(in Oracle) o REGEXP_MATCHES(in PostgreSQL).

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

 

Come utilizzare le funzioni JSON in SQL per lavorare con i dati JSON

Risposta: le funzioni JSON in SQL consentono di interrogare, inserire, aggiornare ed eliminare dati in formato JSON nel database.

Ad esempio, possiamo usare funzioni come JSON_VALUE, JSON_QUERY, JSON_MODIFY(in SQL Server) o operatori come ->, ->>, #>, #>>, ecc.(in PostgreSQL) per manipolare le proprietà JSON.

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

 

Tecniche avanzate per l'ottimizzazione delle query SQL e l'ottimizzazione delle prestazioni del database

Risposta: Per ottimizzare le query SQL e le prestazioni del database, possiamo utilizzare tecniche come:

  • Utilizzo degli indici per le colonne interrogate di frequente.
  • Ottimizzazione JOIN e WHERE clausole per un efficiente recupero dei dati.
  • Utilizzo delle funzioni della finestra e dell'impaginazione quando necessario.
  • Evitare SELECT * per recuperare solo le colonne necessarie.
  • Utilizzo dei suggerimenti per la query in alcuni casi.
  • Garantire la normalizzazione dei dati e rimuovere i duplicati.
  • Utilizzo di strumenti di monitoraggio delle prestazioni per monitorare e mettere a punto il database.

 

Spiegare come utilizzare SET le operazioni (UNION, INTERSECT, EXCEPT) in SQL

Risposta: SET le operazioni (UNION, INTERSECT, EXCEPT) vengono utilizzate per combinare e manipolare insiemi di risultati di query diverse.

  • UNION: combina i risultati di due o più query in un singolo set di dati e rimuove i duplicati.
  • INTERSECT: restituisce le righe visualizzate in entrambi i set di risultati della query.
  • EXCEPT: Restituisce le righe che compaiono nel primo set di risultati della query ma non nel secondo.

 

Come utilizzare le funzioni di query come LEAD, LAG, FIRST_VALUE, LAST_VALUE in SQL

Risposta: funzioni di query come LEAD, LAG, FIRST_VALUE, LAST_VALUE vengono utilizzate per recuperare valori da righe correlate all'interno dello stesso risultato di query.

  • LEAD: Ottiene il valore di una colonna dalla riga successiva nel risultato della query.
  • LAG: Ottiene il valore di una colonna dalla riga precedente nel risultato della query.
  • FIRST_VALUE: Recupera il primo valore di una colonna nel risultato della query.
  • LAST_VALUE: Recupera l'ultimo valore di una colonna nel risultato della query.