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 fa GROUP BY in una query?
ARaggruppa le righe con gli stessi valori, così che gli aggregati vengano calcolati per gruppo
BRimuove le righe con valori NULL
CUnisce due tabelle sulle colonne comuni
DOrdina alfabeticamente le righe del risultato
2.Facile
Che cos'è una chiave candidata?
AUn insieme minimo di colonne che identifica in modo univoco ogni riga
BUn insieme di colonne condiviso tra due tabelle per collegarne le righe
CQualsiasi colonna che contiene valori NULL
DUna colonna in attesa di diventare una chiave esterna
3.Facile
Che cosa garantisce un vincolo UNIQUE su una colonna?
AChe due righe non abbiano lo stesso valore non NULL in quella colonna
BChe i valori della colonna siano ordinati
CLa colonna diventa automaticamente la chiave primaria della tabella
DChe la colonna non possa essere modificata dopo l'inserimento
4.Media
Quale query restituisce il numero di città diverse nella tabella customers?
ASELECT COUNT(city) FROM customers GROUP BY city
BSELECT SUM(DISTINCT city) FROM customers
CSELECT DISTINCT COUNT(city) FROM customers
DSELECT COUNT(DISTINCT city) FROM customers
5.Media
Perché una tabella può avere un solo indice clusterizzato (clustered index)?
ALo standard SQL vieta più di un indice per tabella
BLe righe possono essere memorizzate fisicamente in un solo ordine
CGli indici clusterizzati possono essere definiti solo sulla chiave primaria
DGli indici clusterizzati usano troppa memoria
6.Media
Una tabella ha righe in cui col è NULL. Quali righe restituisce WHERE col = NULL?
ATutte le righe della tabella
BNessuna riga, perché il confronto è sconosciuto
CUn errore in qualsiasi database
DSolo le righe in cui col è NULL, come con IS NULL
7.Difficile
Che cosa restituisce la seguente query: SELECT name FROM students WHERE grade > (SELECT AVG(grade) FROM students)?
ASolo gli studenti con il voto più alto
BIl voto medio di tutti gli studenti
CGli studenti con un voto superiore al voto medio
DUn errore, perché le subquery non sono ammesse in WHERE
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?
ALa maggior parte delle righe corrisponde, quindi una scansione completa della tabella costa meno di molte ricerche nell'indice
BNon si possono creare indici su colonne booleane
CL'indice tratta TRUE come NULL
DL'ottimizzatore non usa mai gli indici nelle clausole WHERE
Soluzioni
1. A · Raggruppa le righe con gli stessi valori, così che gli aggregati vengano calcolati per gruppo
2. A · Un insieme minimo di colonne che identifica in modo univoco ogni riga
3. A · Che due righe non abbiano lo stesso valore non NULL in quella colonna
4. D · SELECT COUNT(DISTINCT city) FROM customers
5. B · Le righe possono essere memorizzate fisicamente in un solo ordine
6. B · Nessuna riga, perché il confronto è sconosciuto
7. C · Gli studenti con un voto superiore al voto medio
8. A · 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.