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

Un INNER JOIN restituisce:

  1. ATutte le righe della tabella di sinistra, con NULL dove non c'è corrispondenza
  2. BSolo le righe con valori corrispondenti in entrambe le tabelle
  3. CTutte le righe di entrambe le tabelle
  4. DLe righe che non corrispondono
2.Facile

Quale istruzione elimina righe da una tabella?

  1. ADROP
  2. BDELETE
  3. CREMOVE
  4. DTRUNCATE COLUMN
3.Facile

Che cos'è una chiave primaria (primary key)?

  1. AUna password per il database
  2. BUna colonna o un insieme di colonne che identifica in modo univoco ogni riga
  3. CUna colonna che può contenere valori duplicati ma non deve mai contenere NULL
  4. DLa prima colonna di ogni tabella
4.Media

Che cosa fa ROLLBACK TO SAVEPOINT s1?

  1. AAnnulla l'intera transazione dall'inizio
  2. BConclude la transazione e conferma tutto
  3. CElimina il savepoint e tutte le tabelle modificate da allora
  4. DAnnulla le modifiche fatte dopo il savepoint s1, mantenendo aperta la transazione
5.Media

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

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

Che cosa restituisce EXCEPT (chiamato MINUS in Oracle)?

  1. ALe righe della seconda query che non compaiono nella prima
  2. BLe righe che compaiono in entrambe le query
  3. CTutte le righe di entrambe le query senza duplicati
  4. DLe righe della prima query che non compaiono nella seconda
7.Difficile

Perché una query con WHERE YEAR(order_date) = 2025 potrebbe non usare un indice su order_date?

  1. AL'indice su order_date viene usato solo per le clausole ORDER BY, mai per WHERE
  2. BYEAR non è SQL valido
  3. CApplicare una funzione alla colonna impedisce una semplice ricerca per intervallo sull'indice
  4. DGli indici non funzionano mai con le date
8.Difficile

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

  1. ASolo i dipendenti che guadagnano più della media del loro reparto
  2. BOgni riga di dipendente insieme allo stipendio medio del suo reparto
  3. CUna riga per reparto con il suo stipendio medio
  4. DUn errore, perché name non è in un GROUP BY

Soluzioni

  1. 1. B · Solo le righe con valori corrispondenti in entrambe le tabelle
  2. 2. B · DELETE
  3. 3. B · Una colonna o un insieme di colonne che identifica in modo univoco ogni riga
  4. 4. D · Annulla le modifiche fatte dopo il savepoint s1, mantenendo aperta la transazione
  5. 5. D · La lettura di dati scritti da un'altra transazione non ancora confermata
  6. 6. D · Le righe della prima query che non compaiono nella seconda
  7. 7. C · Applicare una funzione alla colonna impedisce una semplice ricerca per intervallo sull'indice
  8. 8. B · Ogni riga di dipendente insieme allo stipendio medio del suo reparto

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