Torna all'elenco degli articoli Articoli
Tempo di lettura: 8 minuti

Pratica SQL completa per i colloqui

Congratulazioni! Le vostre competenze in SQL sono state abbastanza forti da farvi ottenere quel colloquio di lavoro! Ora, se solo sapeste quali sono le domande SQL e gli esercizi pratici che un selezionatore potrebbe chiedervi di fare...

Questo articolo è inteso come una pratica di SQL per i colloqui. Vi aiuterò a preparare gli aspetti SQL e di database del vostro colloquio di lavoro.

In un articolo precedente, ho spiegato come si può dare un impulso alla propria carriera imparando l'SQL. Questo linguaggio di interrogazione viene utilizzato praticamente ovunque. Supponiamo che abbiate finalmente deciso di utilizzare le vostre competenze in SQL in un nuovo lavoro. Prima di iniziare, però, dovete superare il colloquio di lavoro.

Il vostro intervistatore potrebbe utilizzare diversi tipi di domande SQL alla lavagna: a volte vi verrà chiesto di descrivere le differenze tra due elementi; a volte dovrete dire il risultato di una query specifica; potreste anche dover scrivere del semplice codice.

Sembra stressante, ma non preoccupatevi troppo. Il modo migliore per prepararsi a un colloquio è fare molta pratica. Vi consiglio la SQL Practice su LearnSQL.it. Contiene oltre 600 esercizi interattivi di SQL per aiutarvi a ripassare ed esercitarvi con SQL prima di un colloquio.

In questo articolo vi aiuterò a prepararvi per il colloquio, esaminando alcune domande comuni ed esercizi SQL che i selezionatori utilizzano durante il processo di intervista.

Domande di base sulla lavagna SQL per i colloqui di lavoro

Innanzitutto, concentriamoci sull'aspetto più teorico dell'SQL. Per valutare la vostra comprensione, il selezionatore vi chiederà probabilmente di spiegare verbalmente alcune domande più semplici. Di solito si tratta di domande sulle parti elementari dell'SQL. Ad esempio, potrebbe esservi chiesto di rispondere ad alcune delle seguenti domande SQL alla lavagna:

Potete rispondere a tutte le domande del mio esercizio di SQL per i colloqui? Anche le domande di base richiedono una buona preparazione e molta pratica. Nessuno è perfetto e a volte è necessario rinfrescare le proprie conoscenze. I nostri corsi online possono aiutarvi a rispolverare qualsiasi abilità semi-dimenticata.

Esercizi pratici di SQL per il colloquio

I colloqui di lavoro tecnici hanno spesso un aspetto pratico. Oltre a rispondere alle tipiche domande della lavagna SQL, vi verrà chiesto di scrivere un'istruzione SQL, di verificare la presenza di errori in una query o di determinare il risultato di una determinata query.

Di seguito, ho copiato dieci esercizi SQL del tipo che potreste fare in un colloquio di lavoro tecnico. Sono ordinati da facili a difficili.

Esercizio SQL 1 - Scrivere un'istruzione

Scrivete un'istruzione SQL che elenchi i nomi delle scuole, degli studenti e le loro città solo se la scuola e lo studente si trovano nella stessa città e se lo studente non è di New York.

Table: school
school_id       school_name                    city  
-----------     ------------------       ----------  
1               Stanford                   Stanford    
2               University of Cali    San Francisco       
3               Harvard University         New York      
4               MIT                          Boston       
5               Yale                      New Haven        
Table: student
student_id   student_name  city           school_id
-----------  ------------  ----------   -----------
1001         Peter Brebec  New York              1
1002         John Goorgy   San Francisco         2
2003         Brad Smith    New York              3
1004         Fabian Johns  Boston                5
1005         Brad Cameron  Stanford              1
1006         Geoff Firby   Boston                5
1007         Johnny Blue   New Haven             2
1008         Johse Brook   Miami                 2

Esercizio SQL 2 - Scrivere un'istruzione

Scrivete un'istruzione SQL che elenchi i nomi degli studenti, i nomi delle materie, i docenti delle materie e l'ammontare massimo dei punti per tutte le materie , eccetto Informatica e tutte le materie con un punteggio massimo compreso tra 100 e 200.

Table: subject
subject_id  subject_name          max_score    lecturer
----------  ----------            ----------   -----------  
 11         Math                  130          Christena Solem 
 12         Computer Science      150          Jaime Pille 
 13         Biology               300          Carrol Denmark 
 14         Geography             220          Yuette Galang 
 15         Physics               110          Colton Rather 
 16         Chemistry             400          Nan Mongeau 
Table: student
student_id   student_name    city           subject_id
-----------  ------------    ----------    -----------
2001         Thurman Thorn   New York               11
2002         Sharda Clemens  San Francisco          12
2003         Buck Elkins     New York               13
2004         Fabian Johns    Boston                 15
2005         Brad Cameron    Stanford               11
2006         Sofia Roles     Boston                 16
2007         Rory Pietila    New Haven              12

Esercizio SQL 3 - Trova l'errore

Cosa c'è di sbagliato in questa query SQL?

SELECT Id, name, YEAR(BillingDate) AS Year 
FROM Records
WHERE Year >= 2010
SELECT id, name
FROM students
WHERE grades = 
             (SELECT MAX(grades)
              FROM students
              GROUP BY subject_id;);

Esercizio SQL 4 - Trova il risultato

Date le seguenti tabelle ...

Table: worker
id    name
---   -----------      
1     Guillermo Sparks
2     Gene	Roberts
3     Ally Jones
4     Bryant Summers
5     Candice Green
Table: departments
id    name            manager_id
---   -------------    --------- 
1     Financial               3        
2     Strategy                5        
3     IT                      1        
4     Marketing            NULL     

... Quale sarà il risultato della seguente query?

SELECT name 
FROM worker 
WHERE id NOT IN (SELECT manager_id FROM departments)

Esercizio SQL 5 - Scrivere una query

La tabella EMPLOYEE ha i seguenti attributi: NAME, DEPT_ID, e SALARY. Scrivete una query che mostri lo stipendio più alto in ogni reparto.

Esercizio SQL 6 - Scrivere una query su una data

Scrivete una query SQL che visualizzi la data corrente.

Esercizio SQL 7 - Scrivere una query

Scrivere una query SQL che verifichi se una data (1/04/12) passata alla query è in un determinato formato (MM/AA/GG).

Esercizio SQL 8 - Trovare ed eliminare i duplicati

Scrivere una query SQL per trovare righe duplicate in due tabelle (EMPLOYEE e WORKERS), quindi scrivere una query per eliminare i duplicati.

Esercizio SQL 9 - Scrivere una query complessa

Scrivere una query che elenchi i nomi degli argomenti dei corsi e il numero di studenti che frequentano il corso solo se il corso ha tre o più studenti iscritti.

Table: subject
subject_id  subject_name       max_score        lecturer
----------  ----------         ----------       -----------  
 11         Math                    130         Christena Solem 
 12         Computer Science         50         Jaime Pille 
 13         Biology                 300         Carrol Denmark 
 14         Geography               220         Yuette Galang 
 15         Physics                 110         Colton Rather 
 16         Chemistry               400         Nan Mongeau
Table: student
student_id   student_name       city           subject_id
-----------  ------------       ----------    -----------
2001         Thurman Thorn      New York               11
2002         Sharda Clemens     San Francisco          12
2003         Buck Elkins        New York               13
2004         Fabian Johns       Boston                 15
2005         Brad Cameron       Stanford               11
2006         Sofia Roles        Boston                 16
2007         Rory Pietila       New Haven              12
2008         Cicely Weish       Tulsa                  14
2011         Richard Curtin     Boston                 11
2012         Kassy Ledger       Stanford               11
2013         Henry Ledger       Miami                  13
2014         Darius Fidzberg    San Francisco          12
2015         Darcey Fiorillo    Chicago                14

Esercizio SQL 10 - Scrivere una query complessa

Scrivere una query che visualizzi l'età media dei lavoratori di ogni azienda. Il risultato deve mostrare il nome dell'azienda e l'età del lavoratore più giovane dell'azienda.

Table: company
ID     NAME
------ -------------
    1  Amazon
    2  Samsung
    3  LG
    4  Kia
    5  Lenovo
Table: workers
ID      NAME                             AGE     COMPANY_ID
------- ------------------------- ---------- -------------
    1   Derick Davison                    20            5
    2   Bari Becnel                       50            1
    3   Maddie Mueller                    33            2
    4   Eva Emrich                        23            1
    5   Katelyn Kunze                     55            3
    6   Hue Hover                         26            2
    7   Lucas Lout                        57            4
    8   Granville Grande                  30            5
    9   Robt Rude                         39            3
   10   Lisha Lewin                       25            4
   11   Aron Atlas                        52            3
   12   Chester Coddington                44            4
   13   Diedre Dominy                     31            1
   14   Evie Edgell                       35            2
   15   Judy Johanson                     36            5

Advanced SQL Domande alla lavagna

Ok, abbiamo già fatto un po' di pratica con l'SQL per i colloqui, ma i nostri esercizi riguardavano le basi dell'SQL. Ma che dire di un lavoro più avanzato, come sviluppatore SQL o amministratore di database? I reclutatori saranno interessati a qualcosa di più della vostra conoscenza di SQL; dovranno anche sapere quanto siete abili con i database in generale. In questo caso, verificate quanto siete in grado di rispondere verbalmente a domande SQL alla lavagna come queste:

  • Cosa sono le chiavi primarie e le chiavi esterne?
  • Cos'è la normalizzazione? Cos'è la denormalizzazione?
  • Che cos'è un indice? Siete in grado di spiegare brevemente i diversi tipi di indice?
  • Potete spiegare le relazioni di database e i tipi di relazione?
  • Che cos'è un cursore di database?
  • Che cos'è un vincolo?
  • Che cos'è una transazione di database? Un blocco di database?
  • Come si usa la funzione NULLIF?
  • Qual è lo scopo della funzione NVL?
  • Qual è la differenza tra le funzioni RANK() e DENSE_RANK()?
  • Qual è la differenza tra i tipi di dati VARCHAR2 e CHAR?

Anche se si conoscono le risposte a queste domande, è bene esercitarsi. Potreste anche esercitarvi a rispondere ad alta voce!

Come vedete, le domande e gli esercizi della lavagna SQL non sono così spaventosi come si pensa. Naturalmente, non è nemmeno un gioco da ragazzi. Abbiamo illustrato alcuni metodi comuni di valutazione delle competenze, ma molto dipende dall'immaginazione e dall'esperienza dell'intervistatore. La cosa più importante è dimostrare al selezionatore che avete capito come funziona l'SQL e che potete, se necessario, trovare aiuto su Internet.

Se non avete un colloquio all'orizzonte, è il momento di affinare le vostre competenze in SQL. In ogni caso, spero che questo articolo vi abbia fornito una parte sostanziale della pratica dell'SQL per i colloqui e vi abbia aiutato a capire cosa aspettarvi e come prepararvi per un colloquio di lavoro legato all'SQL quando ne avrete uno!