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 restituisce un CROSS JOIN?

  1. AOgni combinazione di righe delle due tabelle
  2. BSolo le righe che non corrispondono
  3. CSolo le righe che corrispondono su una colonna chiave condivisa
  4. DSolo le righe della prima tabella
2.Facile

Che cos'è una chiave surrogata?

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

Che cosa garantisce un vincolo UNIQUE su una colonna?

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

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

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

Che cosa restituisce SELECT SUM(amount) FROM orders quando la clausola WHERE non corrisponde ad alcuna riga?

  1. A0
  2. BUna stringa vuota
  3. CNULL
  4. DUn errore
6.Media

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

  1. AGROUP BY
  2. BElenco della SELECT
  3. CWHERE
  4. DORDER BY
7.Difficile

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

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

Che cosa restituisce la seguente query: SELECT name FROM students WHERE grade > (SELECT AVG(grade) FROM students)?

  1. AGli studenti con un voto superiore al voto medio
  2. BSolo gli studenti con il voto più alto
  3. CIl voto medio di tutti gli studenti
  4. DUn errore, perché le subquery non sono ammesse in WHERE

Soluzioni

  1. 1. A · Ogni combinazione di righe delle due tabelle
  2. 2. D · Un identificatore artificiale senza significato di business, come un id auto-incrementale
  3. 3. C · Che due righe non abbiano lo stesso valore non NULL in quella colonna
  4. 4. D · SELECT dept, MAX(salary) FROM emp GROUP BY dept
  5. 5. C · NULL
  6. 6. C · WHERE
  7. 7. C · COUNT(*) conta come 1 la riga riempita di NULL per i clienti senza ordini
  8. 8. A · Gli studenti con un voto superiore al voto medio

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