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

Che cosa fa WHERE country IN ('NL', 'BE', 'DE')?

  1. AMantiene le righe in cui country è uguale a uno qualsiasi dei valori dell'elenco
  2. BMantiene le righe in cui country non è nell'elenco
  3. CMantiene le righe in cui country contiene contemporaneamente tutti e tre i codici
  4. DOrdina le righe nell'ordine dell'elenco
2.Facile

In che cosa UNION ALL differisce da UNION?

  1. AUNION ALL ordina il risultato
  2. BUNION ALL rimuove le righe duplicate
  3. CUNION ALL mantiene le righe duplicate
  4. DUNION ALL funziona solo su una tabella
3.Facile

Quale clausola filtra le righe prima del raggruppamento?

  1. AORDER BY
  2. BGROUP BY
  3. CWHERE
  4. DHAVING
4.Media

Quale query restituisce il numero di ordini per cliente?

  1. ASELECT DISTINCT COUNT(*) FROM orders
  2. BSELECT customer_id, COUNT(*) FROM orders ORDER BY customer_id
  3. CSELECT customer_id, COUNT(*) FROM orders GROUP BY customer_id
  4. DSELECT customer_id FROM orders WHERE COUNT(*) > 0
5.Media

Che cosa restituisce SELECT name, CASE WHEN grade >= 5,5 THEN 'pass' ELSE 'fail' END FROM results?

  1. AIl numero di studenti promossi e bocciati
  2. BOgni nome con l'etichetta 'pass' o 'fail' a seconda del voto
  3. CUn errore, perché CASE non è ammesso nella SELECT
  4. DSolo gli studenti promossi
6.Media

Quale query restituisce lo stipendio più alto di ogni reparto?

  1. ASELECT dept, MAX(salary) FROM emp ORDER BY dept
  2. BSELECT dept, salary FROM emp WHERE salary = MAX(salary)
  3. CSELECT MAX(dept), salary FROM emp GROUP BY salary
  4. DSELECT dept, MAX(salary) FROM emp GROUP BY dept
7.Difficile

La tabella enrolment(student_id, course_id, student_name, grade) ha la chiave (student_id, course_id). Quale forma normale viola?

  1. ALa seconda forma normale, perché student_name dipende solo da student_id
  2. BNessuna, è in BCNF
  3. CSolo la terza forma normale, perché grade dipende da student_name
  4. DLa prima forma normale, perché la colonna grade non contiene valori atomici
8.Difficile

Un'applicazione esegue UPDATE item SET qty = 4, version = 8 WHERE id = 1 AND version = 7 e segnala un conflitto se nessuna riga è stata aggiornata. Di quale tecnica si tratta?

  1. AControllo ottimistico della concorrenza
  2. BLocking rigoroso a due fasi con lock a livello di riga
  3. CSharding del database
  4. DWrite-ahead logging

Soluzioni

  1. 1. A · Mantiene le righe in cui country è uguale a uno qualsiasi dei valori dell'elenco
  2. 2. C · UNION ALL mantiene le righe duplicate
  3. 3. C · WHERE
  4. 4. C · SELECT customer_id, COUNT(*) FROM orders GROUP BY customer_id
  5. 5. B · Ogni nome con l'etichetta 'pass' o 'fail' a seconda del voto
  6. 6. D · SELECT dept, MAX(salary) FROM emp GROUP BY dept
  7. 7. A · La seconda forma normale, perché student_name dipende solo da student_id
  8. 8. A · Controllo ottimistico della concorrenza

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