SQL - Soluzioni esercizi cap. 2
Indice
1)
SELECT COGNOME
FROM AMICI
WHERE COGNOME LIKE ‘M%’ ;
Alcuni DBMS, come Access, implementano ‘*’ invece ‘%’
2)
SELECT COGNOME, NOME
FROM AMICI
WHERE NOME = ‘MARIA’
AND PR = ‘BG’;
3)
NOME | COGNOME |
MARIA | ROSSI |
MARIA | VERDI |
ALBERTO | MAZZA |
4) La query non estrapola nessun nominativo, in quanto nessuna persona che si chiama Maria fa di
cognome Mazza;
5)
BETWEEN 10 AND 30
6)
SELECT NOME
FROM PERSONE
WHERE CONIUGE IS NOT NULL
AND SESSO = ‘F’;
7)
SELECT NOME
FROM PERSONE
WHERE NOME LIKE ‘A%O’;
Bisogna ricordare che il corrispondente carattere ‘%’ implementato da Access è ‘*’.
8)
SELECT NOME
FROM PERSONE
WHERE NOME LIKE ‘_ _ _O %’;
Bisogna ricordare che il corrispondente carattere ‘_’ implementato da Access è ‘?’.
9)
SELECT *, (PrezzoIngrosso * 1.5) PrezzoVendita
FROM PREZZI;
Bisogna ricordare che l’assegnazione del nome alla colonna che conterrà i nuovi prezzi, non è possibile utilizzando Access 8.0.
10) Le espressioni che possiamo utilizzare sono ameno due:
SELECT – PrezzoIngrossoFROM PREZZI; | SELECT (PrezzoIngrosso * –1)FROM PREZZI; |
11)
SELECT *
FROM CACCIATORI
UNION
SELECT *
FROM PESCATORI
UNION
SELECT *
FROM SCALATORI;
12)
SELECT *
FROM CACCIATORI
MINUS
SELECT *
FROM SCALATORI;
Bisogna ricordare che l’operatore MINUS non è implementato da Access 8.0
13)
SELECT *
FROM SCALATORI
MINUS
SELECT *
FROM CACCIATORI;
14)
SELECT *
FROM PESCATORI
INTERSECT
SELECT *
FROM CACCIATORI;
Bisogna ricordare che l’operatore INTERSECT non è implementato da Access 8.0
15) Si.
16)
SELECT *
FROM CACCIATORI
WHERE NOME LIKE ‘ %A%I’
UNION
SELECT *
FROM PESCATORI
WHERE NOME LIKE ‘ %A%I’
UNION
SELECT *
FROM SCALATORI
WHERE NOME LIKE ‘ %A%I’;
Bisogna ricordare che il corrispondente carattere ‘ %’ implementato da Access è ‘*’.
17)
SELECT *
FROM CACCIATORI
WHERE NOME LIKE ‘ %A %’ OR NOME LIKE ‘ %I’
UNION
SELECT *
FROM PESCATORI
WHERE NOME LIKE ‘ %A%’ OR NOME LIKE ‘ %I’
UNION
SELECT *
FROM SCALATORI
WHERE NOME LIKE ‘ %A%’ OR NOME LIKE ‘ %I’
SAlve, quindi non esiste una funzione come p.e. in Excel, che estragga alcuni caratteri a destra o sinistra?
Ho provato cn right(nome, 3) ma non lo riconosce
applicando l’add_months ad alcuni sql editor online appare il seguente messaggio di errore:
[“date” is not a recognized table hints option. If it is intended as a parameter to a table-valued function or to the CHANGETABLE function, ensure that your database compatibility mode is set to 90.]
SQL Editor utilizzati
https://rextester.com/l/sql_server_online_compiler
http://www.sqlfiddle.com/#!18/28da7/1
SELECT COUNT (*)
Buongiorno
FROM IMPIEGATO
WHERE DIPARTIMENTO = ‘PRODUZIONE’
genera il seguente errore:
“The data types text and varchar are incompatible in the equal to operator”.
Invece, sostituendo con WHERE DIPARTIMENTO LIKE ‘PRODUZIONE’, la query funziona.
Ho imparato alcune cose buone qui. Certamente merita il bookmarking per la rivisitazione.
Mi chiedo quanti sforzi hai impostato per creare questo tipo di fantastico sito informativo.
guida molto interessante grazie se ci fossero anche le istruzioni per creare la tabella sarebbe completa secondo me
Grazie per la guida. Semplice, interessante ed utile.
Vorremmo segnalare due cose. Un errore ed un dubbio.
Errore:
SELECT DIVISIONE, AVG(STIPENDIO)
FROM DIPENDENTI
HAVING AVG(STIPENDIO) > 2200000;
manca la “group by DIVISIONE” prima della HAVING.
Di conseguenza il dubbio sul punto 6.
HAVING non è necessario che venga posta dopo la clausola GROUP BY.
Sicuri?
Guida Molto utile, segnalo un errore nella query 9, capitolo 2, delle soluzioni:
PrezzoIngrosso è moltiplicato * 1,5 ma si chiedeva un aumento del 15%, ciò significa moltiplicare * 1,15
Grazie guida molto utile per imparare da 0.
Veramente complimenti, una guida dettagliata, semplice e adatta a tutti 🙂
FortyZone
Davvero complimenti ragazzi. La prima guida che per chi parte da zero è manna dal cielo…PERFETTA!!
nel punto 8 la soluzione non dovrebbe essere con HAVING MIN(IMPORTO) > 400 000; cioè: SELECT BENEFICIARI FROM ASSEGNI GROUP BY BENEFICIARIO HAVING MIN(IMPORTO) > 400 000;
un ottimo Manuale unico errore (se vogliamo chiamarlo cosi) i tipi di dati Char(5) number(5,2) cosa sono e come si usano
Complimenti ottimo sito! fatto davvero bene. Grazie!
ma come si crea il database?
È stata spiegato molto bene.