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 aggiunge una nuova colonna a una tabella esistente?

  1. AALTER TABLE
  2. BINSERT COLUMN
  3. CCREATE COLUMN
  4. DUPDATE TABLE
2.Facile

Quale istruzione SQL aggiunge nuove righe a una tabella?

  1. AALTER
  2. BUPDATE
  3. CSELECT
  4. DINSERT
3.Facile

In un modello LIKE, che cosa rappresenta il carattere jolly %?

  1. ALa fine della stringa
  2. BUna qualsiasi cifra singola
  3. CQualsiasi sequenza di zero o più caratteri
  4. DEsattamente un carattere in quella posizione della stringa
4.Media

La seconda forma normale (2NF) elimina:

  1. ALe chiavi esterne
  2. BLe dipendenze transitive tra colonne non chiave attraverso un'altra colonna non chiave
  3. CTutti i valori NULL
  4. DLe dipendenze parziali delle colonne non chiave da una parte di una chiave composta
5.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 = NULL
  2. BSELECT c.name FROM customers c LEFT JOIN orders o ON o.customer_id = c.id WHERE o.id IS 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
6.Media

Quando WHERE EXISTS (subquery) è vera per una riga?

  1. AQuando la subquery restituisce almeno una riga
  2. BQuando la subquery non restituisce valori NULL
  3. CQuando la subquery restituisce esattamente una riga
  4. DQuando la subquery restituisce un numero maggiore di zero
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(*) non è ammesso dopo un join
  4. DCOUNT(*) ignora le righe con valori NULL
8.Difficile

Due transazioni leggono entrambe stock = 10, ciascuna sottrae 1 e scrive il risultato, ottenendo 9 invece di 8. Di quale anomalia si tratta?

  1. ALettura fantasma
  2. BAggiornamento perso (lost update)
  3. CLettura sporca
  4. DAnomalia di cancellazione

Soluzioni

  1. 1. A · ALTER TABLE
  2. 2. D · INSERT
  3. 3. C · Qualsiasi sequenza di zero o più caratteri
  4. 4. D · Le dipendenze parziali delle colonne non chiave da una parte di una chiave composta
  5. 5. B · SELECT c.name FROM customers c LEFT JOIN orders o ON o.customer_id = c.id WHERE o.id IS NULL
  6. 6. A · Quando la subquery restituisce almeno una riga
  7. 7. A · COUNT(*) conta come 1 la riga riempita di NULL per i clienti senza ordini
  8. 8. B · Aggiornamento perso (lost update)

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