Scheda di esercizi di Basi di dati e SQL con soluzioni

Scheda di esercizi di Basi di dati e SQL gratuita e stampabile: 8 esercizi dal livello facile a quello d’esame, con le soluzioni. Stampala o salvala come PDF.

Per i docenti: gratuita da stampare, copiare e usare in classe. Ogni nuova scheda ha nuovi valori e le sue soluzioni. Un link a ExamProblems nella pagina del corso è molto apprezzato.

Nome: ____________________   Data: ____________

1.Facile

Quale vincolo garantisce che una colonna non possa mai essere lasciata vuota (NULL)?

  1. ANOT NULL
  2. BCHECK NULL
  3. CDEFAULT
  4. DUNIQUE
2.Facile

Quale funzione di aggregazione restituisce la media di una colonna numerica?

  1. AMEAN
  2. BSUM
  3. CMEDIAN
  4. DAVG
3.Facile

Quale parola chiave ordina il risultato di una query?

  1. AARRANGE
  2. BGROUP BY
  3. CSORT
  4. DORDER BY
4.Media

Un LEFT JOIN restituisce:

  1. ALe righe che non corrispondono in nessuna delle due tabelle
  2. BSolo le righe corrispondenti di entrambe le tabelle
  3. CTutte le righe della tabella di sinistra e le righe corrispondenti di quella di destra, con NULL dove non c'è corrispondenza
  4. DSolo tutte le righe della tabella di destra
5.Media

Che cos'è una lettura sporca (dirty read)?

  1. ALa lettura di dati senza una clausola WHERE
  2. BLa lettura della stessa riga due volte ottenendo lo stesso valore
  3. CLa lettura di dati da un disco danneggiato
  4. DLa lettura di dati scritti da un'altra transazione non ancora confermata
6.Media

Quale query elenca i clienti che non hanno mai effettuato un ordine?

  1. ASELECT c.name FROM customers c LEFT JOIN orders o ON o.customer_id = c.id WHERE o.id IS NULL
  2. BSELECT c.name FROM customers c LEFT JOIN orders o ON o.customer_id = c.id WHERE o.id = NULL
  3. CSELECT c.name FROM customers c INNER JOIN orders o ON o.customer_id = c.id WHERE o.id IS NULL
  4. DSELECT c.name FROM customers c LEFT JOIN orders o ON o.customer_id = c.id WHERE o.id IS NOT NULL
7.Difficile

Che cosa restituisce SELECT name, dept, AVG(salary) OVER (PARTITION BY dept) FROM emp?

  1. AOgni riga di dipendente insieme allo stipendio medio del suo reparto
  2. BUn errore, perché name non è in un GROUP BY
  3. CSolo i dipendenti che guadagnano più della media del loro reparto
  4. DUna riga per reparto con il suo stipendio medio
8.Difficile

Quale livello di isolamento impedisce le letture sporche (dirty read) ma consente ancora le letture non ripetibili?

  1. ARead uncommitted
  2. BSerializable
  3. CRead committed
  4. DRepeatable read

Soluzioni

  1. 1. A · NOT NULL
  2. 2. D · AVG
  3. 3. D · ORDER BY
  4. 4. C · Tutte le righe della tabella di sinistra e le righe corrispondenti di quella di destra, con NULL dove non c'è corrispondenza
  5. 5. D · La lettura di dati scritti da un'altra transazione non ancora confermata
  6. 6. A · SELECT c.name FROM customers c LEFT JOIN orders o ON o.customer_id = c.id WHERE o.id IS NULL
  7. 7. A · Ogni riga di dipendente insieme allo stipendio medio del suo reparto
  8. 8. C · Read committed

Soluzioni complete passo passo: esercitati su questo argomento su examproblems.com.