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 istruzione SQL aggiunge nuove righe a una tabella?

  1. ASELECT
  2. BUPDATE
  3. CINSERT
  4. DALTER
2.Facile

Che cosa garantisce un vincolo UNIQUE su una colonna?

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

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

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

Una tabella employees ha una colonna manager_id che fa riferimento a un altro dipendente. Come si elenca ogni dipendente accanto al nome del suo responsabile?

  1. AUsando soltanto GROUP BY manager_id
  2. BCombinare la tabella con se stessa usando UNION ALL e un filtro WHERE
  3. CUnendo la tabella employees con se stessa usando due alias
  4. DCreando una seconda copia della tabella su disco
5.Media

Quale query restituisce il numero di ordini per cliente?

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

Nell'algebra relazionale, l'operatore di selezione (σ) corrisponde a quale clausola SQL?

  1. AGROUP BY
  2. BElenco della SELECT
  3. CORDER BY
  4. DWHERE
7.Difficile

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

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

Che cos'è una lettura fantasma (phantom read)?

  1. AUna query che non restituisce righe
  2. BUna query ripetuta restituisce nuove righe inserite da un'altra transazione confermata
  3. CLa lettura di dati mai scritti
  4. DLa lettura di modifiche non confermate

Soluzioni

  1. 1. C · INSERT
  2. 2. B · Che due righe non abbiano lo stesso valore non NULL in quella colonna
  3. 3. A · Una colonna o un insieme di colonne che identifica in modo univoco ogni riga
  4. 4. C · Unendo la tabella employees con se stessa usando due alias
  5. 5. B · SELECT customer_id, COUNT(*) FROM orders GROUP BY customer_id
  6. 6. D · WHERE
  7. 7. A · COUNT(*) conta come 1 la riga riempita di NULL per i clienti senza ordini
  8. 8. B · Una query ripetuta restituisce nuove righe inserite da un'altra transazione confermata

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