20 Domande e risposte frequenti sull’intervista SQL [2022]

Il linguaggio di interrogazione strutturato (SQL) rappresenta lo strumento di programmazione standard impiegato da amministratori di database e analisti di dati per l’interrogazione di database. È un elemento fondamentale nei linguaggi di programmazione di siti web, applicazioni e svariate altre piattaforme digitali.

SQL viene utilizzato per accedere e manipolare i dati all’interno di un database, consentendo operazioni come la creazione e la modifica di tabelle e colonne, oltre all’esecuzione di query sui dati attraverso comandi specifici.

Se ti stai preparando per un colloquio di lavoro che richiede competenze in SQL, questo articolo ti fornirà sicuramente spunti utili. Che tu stia aspirando a diventare un ingegnere di dati, un analista di dati o un amministratore di database, è probabile che ti vengano poste le seguenti domande.

Quali sono i comandi SQL essenziali?

Ecco alcuni dei comandi SQL più rilevanti:

  • SELECT – Recupera dati da un database.
  • CREATE TABLE – Crea una nuova tabella.
  • DELETE – Elimina dati da un database.
  • INSERT INTO – Inserisce nuovi dati in un database.
  • ALTER DATABASE – Modifica un database.
  • CREATE DATABASE – Crea un nuovo database.
  • UPDATE – Aggiorna i dati in un database.

Quali sono le quattro categorie principali di istruzioni SQL?

Le principali istruzioni SQL sono classificate nelle seguenti categorie:

  • Istruzioni DDL (Data Definition Language).
  • Istruzioni DML (Data Manipulation Language).
  • Istruzioni DCL (Data Control Language).
  • Istruzioni TCL (Transaction Control Language).

Qual è il ruolo della chiave primaria in SQL?

La chiave primaria è una colonna o un insieme di colonne che permette di identificare in modo univoco ogni riga all’interno di una tabella di database. I database SQL attribuiscono grande importanza alle chiavi primarie, poiché forniscono un identificativo unico per ciascuna riga. Una chiave primaria può essere costituita da uno o più campi, ma ogni tabella può avere solo una chiave primaria.

Cosa si intende per tipi di dati SQL?

Un tipo di dati è un attributo che specifica la natura dei dati che un oggetto può contenere. Ciò può includere stringhe binarie, dati numerici, dati di caratteri, informazioni finanziarie, dati relativi a date e orari e così via.

In SQL, i tipi di dati sono raggruppati nelle seguenti categorie:

  • Numeri esatti
  • Numeri approssimativi
  • Data e ora
  • Stringhe di caratteri
  • Stringhe di caratteri Unicode
  • Stringhe binarie

Dove vengono archiviati nomi utente e password in SQL Server?

I nomi utente e le password vengono memorizzati rispettivamente nelle tabelle di sistema sys.server_principals e sys.sql_logins. Le password non vengono mai salvate in chiaro, ma attraverso processi di crittografia.

Cos’è un attacco SQL injection?

Gli attacchi SQL injection rappresentano una delle minacce informatiche più comuni. Consentono a individui malintenzionati di accedere ai dati manipolando il database di un’applicazione. Questo può causare gravi danni, come perdite finanziarie o la compromissione di dati sensibili. La migliore difesa contro gli attacchi SQL injection è la prevenzione.

Cos’è un trigger in SQL e quali tipologie esistono?

Un trigger è una speciale stored procedure che viene eseguita automaticamente in risposta a determinati eventi nel server di database. I trigger sono utilizzati per valutare i dati prima o dopo una modifica, tramite istruzioni DDL e DML.

Esistono tre tipi principali di trigger: LOGON, DDL e DML.

  • Trigger di accesso: Si attivano quando un utente tenta di accedere al database.
  • Trigger DDL: Si attivano in risposta a comandi DDL, come CREATE, ALTER o DROP.
  • Trigger DML: Si attivano in seguito a comandi DML che modificano i dati, come INSERT, UPDATE e DELETE.

Come si distinguono le funzioni a riga singola da quelle a righe multiple?

Le funzioni a riga singola agiscono su una sola riga alla volta e restituiscono un solo valore di output per ogni riga. Esempi comuni includono funzioni di conversione di stringhe o funzioni matematiche.

Le funzioni a righe multiple, note anche come funzioni aggregate, operano su più righe alla volta e restituiscono un singolo risultato basato su questo insieme di righe. Tipici esempi sono le funzioni di aggregazione come COUNT, SUM, AVG, MIN e MAX.

Cos’è la normalizzazione del database e quali sono le sue quattro principali forme in SQL?

La normalizzazione del database è un processo di organizzazione dei dati che mira a migliorare l’accessibilità, ridurre la ridondanza dei dati e assicurare che le dipendenze tra i dati siano gestite correttamente. Attraverso questo processo, le tabelle e le colonne sono strutturate in modo da rispettare i vincoli di integrità del database.

I quattro tipi fondamentali di normalizzazione del database sono:

  • Prima forma normale (1NF)
  • Seconda forma normale (2NF)
  • Terza forma normale (3NF)
  • Forma normale di Boyce-Codd (BCNF), nota anche come quarta forma normale (4NF)

Cosa sono indici e vincoli in SQL?

Gli indici sono uno strumento chiave di SQL che agevolano l’individuazione rapida di dati specifici all’interno di database di grandi dimensioni. Essi contribuiscono anche a far rispettare i vincoli, ovvero le regole che definiscono il comportamento del database in determinate condizioni.

Gli indici migliorano le prestazioni delle query accelerando la ricerca di dati nelle tabelle, e possono rendere più leggibili i dati.

I vincoli, invece, limitano il tipo di dati che possono essere inseriti nelle tabelle, garantendo l’accuratezza e l’affidabilità delle informazioni. Un’azione che viola un vincolo viene interrotta.

Quali sono i vincoli SQL più comuni?

Ecco i vincoli SQL più frequenti:

  • CREATE INDEX: Assicura la creazione di indici per facilitare il recupero dei dati nelle tabelle.
  • FOREIGN KEY: Collega le tabelle con attributi correlati.
  • DEFAULT: Imposta un valore predefinito per una colonna se non viene specificato alcun valore.
  • UNIQUE: Garantisce che ogni valore di una colonna sia univoco.
  • PRIMARY KEY: Identifica in modo univoco ogni riga di una tabella.
  • NOT NULL: Impedisce l’inserimento di valori NULL in una colonna.
  • CHECK: Assicura che i valori di una colonna soddisfino una determinata condizione.

Il valore NULL è equivalente a 0 in SQL?

In SQL, un valore NULL indica un valore sconosciuto o non disponibile. Non va confuso con uno spazio (‘ ‘) o zero (0). Il valore NULL non può essere paragonato ad altri valori con operatori di confronto come “=” o “>”, poiché non è equivalente a nessun altro valore.

Come si prevengono gli attacchi SQL injection?

Oltre a scansioni e penetration test costanti, è fondamentale adottare misure di sicurezza come la convalida degli input, la sanificazione dei dati, l’uso di prepared statements e query parametrizzate per prevenire attacchi SQL injection. Anche la presenza di firewall può contribuire alla protezione del database SQL.

Cos’è il Dynamic SQL e quando è utile usarlo?

Il Dynamic SQL è una funzionalità che permette di modificare le query in fase di esecuzione, in base a criteri come la data e l’ora correnti o altri parametri.

Può essere utilizzato per personalizzare le query in modo significativo, che si tratti di creare nuove applicazioni, migliorare database esistenti o aggiungere funzionalità di data warehousing.

Quali sono i diversi tipi di chiavi in SQL?

Chiave primaria: Un campo (o un insieme di campi) che identifica univocamente ogni riga di una tabella. I valori della chiave primaria devono essere unici e non possono essere NULL. Ogni tabella può avere una sola chiave primaria.

Chiave esterna: Un campo (o un gruppo di campi) in una tabella che fa riferimento alla chiave primaria di un’altra tabella. Le tabelle con chiave primaria sono chiamate tabelle padre, mentre quelle con chiave esterna sono chiamate tabelle figlio.

Super chiave: Una chiave (o un insieme di chiavi) che identifica univocamente le righe di una tabella. Non tutti gli attributi di una super chiave sono necessari per identificare una riga.

Chiave candidata: Una super chiave che identifica univocamente le righe di una tabella, ma a differenza della super chiave, tutti i suoi attributi sono essenziali per identificare la riga.

Chiave composita: Una combinazione di due o più colonne in una tabella utilizzata per identificare le righe. Una chiave composita può essere usata come chiave primaria.

Quali sono i tipi di indici in SQL?

Ecco i principali tipi di indici in SQL:

  • Indice hash
  • Indice ottimizzato per la memoria non cluster
  • Indice cluster
  • Indice non cluster
  • Indice univoco
  • Indice columnstore
  • Indice con colonne incluse
  • Indice su colonne calcolate
  • Indice filtrato
  • Indice spaziale
  • Indice XML
  • Indice full-text

Cosa si intende per buffer pool e quali sono i suoi vantaggi?

In SQL, un buffer pool è una area di memoria utilizzata per memorizzare le pagine di dati della cache. Quando si configura un’istanza di SQL Server, è possibile specificare la dimensione del pool di buffer, che determina quante pagine può contenere.

I vantaggi di un buffer pool sono:

  • Miglioramento delle prestazioni di I/O
  • Aumento del throughput delle transazioni
  • Riduzione della latenza di I/O
  • Miglioramento delle prestazioni di lettura

Cosa si intende per dipendenza e quali tipi di dipendenze esistono?

In SQL, una dipendenza si verifica quando un oggetto fa riferimento ad un altro oggetto tramite una istruzione SQL. L’oggetto che fa riferimento è detto “entità di riferimento”, mentre l’oggetto a cui si fa riferimento è detto “entità referenziata”.

Le principali tipologie di dipendenza in SQL sono:

  • Dipendenza funzionale
  • Dipendenza completamente funzionale
  • Dipendenza multivalore
  • Dipendenza transitiva
  • Dipendenza parziale

Cosa sono i JOIN in SQL e quali sono i tipi più comuni?

I JOIN sono fondamentali per la gestione dei dati in SQL. Permettono di combinare due o più tabelle per creare una singola tabella utilizzabile per l’analisi dei dati. Offrono inoltre la possibilità di filtrare i risultati in base a criteri specifici in una singola tabella, utile per individuare righe o colonne particolari all’interno di una tabella estesa.

Esistono quattro tipi principali di JOIN in SQL: INNER JOIN, OUTER JOIN, CROSS JOIN e SELF JOIN.

Cosa sono gli operatori di insieme in SQL?

Gli operatori di insieme sono utilizzati per combinare i dati di una o più tabelle dello stesso tipo. Sono simili ai JOIN, ma si differenziano in quanto raccolgono record da query diverse, mentre i JOIN combinano le colonne di tabelle diverse. Le query SQL che includono operatori di insieme sono dette query composte.

Conclusioni

Spero che queste domande ti offrano una panoramica di ciò che puoi aspettarti durante un colloquio di lavoro in ambito SQL. Per affrontare al meglio tali colloqui, è necessario approfondire le tue conoscenze SQL e fare pratica con domande e query SQL. Ricorda di studiare i principi chiave di SQL e di non smettere mai di imparare.

Se hai bisogno di chiarimenti sulle query SQL, consulta la documentazione di riferimento SQL per maggiori informazioni sulle istruzioni SQL.

Per acquisire esperienza pratica nell’esecuzione di query SQL, esplora le diverse piattaforme online che offrono tutorial e esercizi.