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 garantisce un vincolo UNIQUE su una colonna?

  1. AChe la colonna non possa essere modificata dopo l'inserimento
  2. BChe i valori della colonna siano ordinati
  3. CChe due righe non abbiano lo stesso valore non NULL in quella colonna
  4. DLa colonna diventa automaticamente la chiave primaria della tabella
2.Facile

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

  1. AOrdina le righe nell'ordine 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. DMantiene le righe in cui country è uguale a uno qualsiasi dei valori dell'elenco
3.Facile

Che cos'è una chiave surrogata?

  1. AUna chiave ricavata da dati reali, come un indirizzo email
  2. BUn identificatore artificiale senza significato di business, come un id auto-incrementale
  3. CUna chiave che fa riferimento a un'altra tabella
  4. DUna chiave usata solo nelle viste
4.Media

Quale query restituisce il numero di ordini per cliente?

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

La tabella a ha 3 righe e la tabella b ne ha 4. Quante righe restituisce SELECT * FROM a CROSS JOIN b?

  1. A12
  2. B3
  3. C7
  4. D4
6.Media

Perché una tabella può avere un solo indice clusterizzato (clustered index)?

  1. AGli indici clusterizzati possono essere definiti solo sulla chiave primaria
  2. BGli indici clusterizzati usano troppa memoria
  3. CLe righe possono essere memorizzate fisicamente in un solo ordine
  4. DLo standard SQL vieta più di un indice per tabella
7.Difficile

Dopo customers LEFT JOIN orders, perché usare COUNT(o.id) invece di COUNT(*) per contare gli ordini per cliente?

  1. ACOUNT(*) non è ammesso dopo un join
  2. BCOUNT(o.id) conta solo i clienti distinti
  3. CCOUNT(*) conta come 1 la riga riempita di NULL per i clienti senza ordini
  4. DCOUNT(*) ignora le righe con valori NULL
8.Difficile

Qual è un noto svantaggio della decomposizione delle tabelle in BCNF rispetto alla 3NF?

  1. AAlcune dipendenze funzionali potrebbero non essere più verificabili all'interno di una sola tabella
  2. BLe tabelle in BCNF non possono avere chiavi primarie
  3. CLa BCNF ammette più ridondanza della 3NF
  4. DLa decomposizione perde sempre dati quando si ricompone con un join

Soluzioni

  1. 1. C · Che due righe non abbiano lo stesso valore non NULL in quella colonna
  2. 2. D · Mantiene le righe in cui country è uguale a uno qualsiasi dei valori dell'elenco
  3. 3. B · Un identificatore artificiale senza significato di business, come un id auto-incrementale
  4. 4. A · SELECT customer_id, COUNT(*) FROM orders GROUP BY customer_id
  5. 5. A · 12
  6. 6. C · Le righe possono essere memorizzate fisicamente in un solo ordine
  7. 7. C · COUNT(*) conta come 1 la riga riempita di NULL per i clienti senza ordini
  8. 8. A · Alcune dipendenze funzionali potrebbero non essere più verificabili all'interno di una sola tabella

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