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 funzione di aggregazione restituisce la media di una colonna numerica?

  1. ASUM
  2. BAVG
  3. CMEAN
  4. DMEDIAN
2.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. CLa prima colonna di ogni tabella
  4. DUna colonna che può contenere valori duplicati ma non deve mai contenere NULL
3.Facile

Quale funzione di aggregazione conta le righe?

  1. AAVG
  2. BSUM
  3. CMAX
  4. DCOUNT
4.Media

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

  1. ASELECT dept, MAX(salary) FROM emp ORDER BY dept
  2. BSELECT MAX(dept), salary FROM emp GROUP BY salary
  3. CSELECT dept, salary FROM emp WHERE salary = MAX(salary)
  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. AUna stringa vuota
  2. B0
  3. CNULL
  4. DUn errore
6.Media

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

  1. A4
  2. B7
  3. C12
  4. D3
7.Difficile

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

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

Una tabella ha un milione di righe e una colonna booleana is_active che è TRUE per il 95% di esse. Perché l'ottimizzatore potrebbe ignorare un indice su is_active per WHERE is_active = TRUE?

  1. AL'indice tratta TRUE come NULL
  2. BNon si possono creare indici su colonne booleane
  3. CL'ottimizzatore non usa mai gli indici nelle clausole WHERE
  4. DLa maggior parte delle righe corrisponde, quindi una scansione completa della tabella costa meno di molte ricerche nell'indice

Soluzioni

  1. 1. B · AVG
  2. 2. B · Una colonna o un insieme di colonne che identifica in modo univoco ogni riga
  3. 3. D · COUNT
  4. 4. D · SELECT dept, MAX(salary) FROM emp GROUP BY dept
  5. 5. C · NULL
  6. 6. C · 12
  7. 7. B · Applicare una funzione alla colonna impedisce una semplice ricerca per intervallo sull'indice
  8. 8. D · La maggior parte delle righe corrisponde, quindi una scansione completa della tabella costa meno di molte ricerche nell'indice

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