Skip to main content

Command Palette

Search for a command to run...

app php quiz interview training. part 3.

Published
3 min read

SQL - 10 Domande con Risposte ed Esempi


1. Qual è la differenza tra INNER JOIN, LEFT JOIN e RIGHT JOIN?

Risposta:

  • INNER JOIN → Restituisce solo le righe con corrispondenza in entrambe le tabelle.

  • LEFT JOIN → Restituisce tutte le righe della tabella di sinistra e quelle corrispondenti della tabella di destra (se esistono).

  • RIGHT JOIN → Come LEFT JOIN, ma prende tutte le righe della tabella di destra.

Esempio:

SELECT employees.name, departments.name 
FROM employees
INNER JOIN departments ON employees.dept_id = departments.id;

Restituisce solo gli impiegati con un reparto associato.


2. Come si usa GROUP BY e HAVING?

Risposta:

  • GROUP BY raggruppa i risultati in base a una colonna.

  • HAVING filtra i gruppi, come WHERE, ma su funzioni aggregate.

Esempio:

SELECT dept_id, COUNT(*) AS total_employees
FROM employees
GROUP BY dept_id
HAVING COUNT(*) > 5;

Restituisce solo i dipartimenti con più di 5 impiegati.


3. Qual è la differenza tra UNION e UNION ALL?

Risposta:

  • UNION rimuove i duplicati.

  • UNION ALL mantiene tutti i record, anche i duplicati.

Esempio:

SELECT name FROM customers
UNION
SELECT name FROM suppliers;

Restituisce i nomi senza duplicati.
Per mantenerli, basta usare UNION ALL.


4. Cosa fa COALESCE() in SQL?

Risposta:
COALESCE() restituisce il primo valore NON NULL tra quelli forniti.

Esempio:

SELECT name, COALESCE(email, 'No Email') AS email
FROM users;

Se email è NULL, mostra "No Email" invece.


5. Qual è la differenza tra DELETE, TRUNCATE e DROP?

Risposta:

  • DELETE → Cancella record specifici, può usare WHERE.

  • TRUNCATE → Cancella tutti i record, resettando anche l'AUTO_INCREMENT.

  • DROP → Cancella l'intera tabella dal database.

Esempio:

DELETE FROM users WHERE id = 10;  -- Cancella un singolo record
TRUNCATE TABLE users;  -- Cancella tutti i record ma mantiene la struttura
DROP TABLE users;  -- Cancella la tabella completamente

6. Cosa fa EXPLAIN in SQL?

Risposta:
EXPLAIN mostra il piano di esecuzione di una query, utile per ottimizzare le prestazioni.

Esempio:

EXPLAIN SELECT * FROM employees WHERE dept_id = 3;

Mostra come il database esegue la query e se usa indici (INDEX).


7. Come si crea un indice e perché è utile?

Risposta:
Un indice accelera le ricerche nei database.

Esempio:

CREATE INDEX idx_employees_dept ON employees(dept_id);

Ora le ricerche per dept_id saranno più veloci.


8. Come si fa una subquery in SQL?

Risposta:
Una subquery è una query dentro un'altra query.

Esempio:

SELECT name FROM employees 
WHERE dept_id = (SELECT id FROM departments WHERE name = 'HR');

Restituisce tutti gli impiegati del dipartimento HR.


9. Come si usa CASE in SQL?

Risposta:
CASE permette di scrivere condizioni dentro una query.

Esempio:

SELECT name,
  CASE 
    WHEN salary > 5000 THEN 'Alto'
    WHEN salary BETWEEN 3000 AND 5000 THEN 'Medio'
    ELSE 'Basso'
  END AS stipendio_categoria
FROM employees;

Classifica gli stipendi in Alto, Medio, Basso.


10. Cosa fa LAG() e LEAD() in SQL?

Risposta:

  • LAG() prende il valore precedente di una colonna.

  • LEAD() prende il valore successivo di una colonna.

Esempio:

SELECT name, salary, 
       LAG(salary) OVER (ORDER BY id) AS prev_salary,
       LEAD(salary) OVER (ORDER BY id) AS next_salary
FROM employees;

Mostra lo stipendio precedente e successivo per ogni dipendente.


More from this blog

Programming , Big Data, DevOps, etc

271 posts

Programming , Big Data, DevOps, etc