colloquio-sql-database

Storia di successo – preparazione colloquio di lavoro su SQL

Yimp è operativa da soli pochi mesi. Tuttavia in questo poco tempo ha già raccolto molte storie di successo che abbiamo il piacere di condividere con voi! Un nostro studente di 47 anni ha deciso di riqualificarsi nel mondo del lavoro. L’occasione giusta può arrivare da un colloquio presso un’importante società informatica. Uno dei requisiti imprescindibili è però la conoscenza del linguaggio SQL. Invece di abbattersi, ha visto in questa richiesta un’opportunità di miglioramento, di crescita personale e ha deciso di affidarsi a noi per entrare nel mondo dei database e di SQL.


In sole 16 ore di corso, grazie alle sue capacità, al suo impegno e a un mix di teoria e pratica “real world” (niente esercizi astratti ma vere e proprie simulazioni di mail di lavoro!) ha appreso con successo la logica per interrogare correttamente le tabelle di un database relazionale tramite il linguaggio SQL, imparando ad utilizzare fluentemente i principali costrutti del linguaggio come le varie tipologie di join e il group by. Il tutto non poteva che tramutarsi in un colloquio di lavoro dall’esito positivo! 

 

Vogliamo ora raccontarvi quali sono le domande più frequenti sull’SQL per cui dovete essere pronti a rispondere in un colloquio di lavoro.

 

Qual è la differenza tra Where e Having?

Si tratta di una domanda all’apparenza semplice ma che permette di testare la differenza tra due costrutti fondamentali dell’SQL tra i quali si fa spesso confusuione. L’obiettivo di entrambe le parole chiave è di filtrare i dati di una tabella, ma con una differenza: la where filtra i dati prima di un eventuale raggruppamento realizzato tramite il costrutto Group by, mentre l’Having effettua il filtro dopo che la Group by ha sortito il suo effetto.

Dunque nella where scriverò codice come

where Importo > 100

poiché prima del raggruppamento il valore della colonna importo è specifico per ogni riga della tabella. Invece nella Having potrò scrivere

having SUM(Importo) > 30000

poiché la group by avrà l’effetto di aggregare più righe in una sola, occorre far precedere la colonna importo da una funzione come SUM/AVG/MIN/MAX.

 

Cos’è una chiave primaria?

Una risposta corretta che fa intuire una profonda conoscenza del linguaggio SQL e del database in generale è: la chiave primaria è un particolare vincolo (in inglese constraint) applicabile alla tabella, come sono vincoli anche le chiavi esterne, i tipi di colonne, le proprietà di null/not null e i vincoli check. In particolare il vincolo di chiave primaria impedisce la presenza di valori duplicati in una o più colonne. Ad esempio inserendo una chiave primaria su una coppia di colonne, le relative coppie di valori dovranno essere univoche, altrimenti il database solleverà un errore. Inoltre tutte le colonne all’interno della chiave primaria non potranno contenere null.

 

Cos’è un indice?

Esistono due tipi di indici:

  • gli indici clustered comportano la riorganizzazione fisica dei dati già presenti in tabella ordinandoli secondo le colonne definite nell’indice clustered e rendendo dunque più veloci le query che utilizzano tali colonne. Una cosa importante da sapere è che la creazione di un vincolo di chiave primaria ha come effetto anche quello di creare automaticamente il relativo indice clustered.
  • gli indici non clustered sono una copia di una porzione dei dati di una tabella ordinata per le colonne che definiscono tale indice. Tali indici hanno l’effetto di migliorare le performance delle query di estrazione dei dati che utilizzano queste colonne, con il side effect di aumentare la memoria occupata e rallentare le operazioni di aggiornamento del database.

 

Corsi correlati

Visita la pagina del nostro corso su SQL o contattaci per discutere di un programma ad hoc per le tue esigenze.

Torna su