




Studia grazie alle numerose risorse presenti su Docsity
Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium
Prepara i tuoi esami
Studia grazie alle numerose risorse presenti su Docsity
Prepara i tuoi esami con i documenti condivisi da studenti come te su Docsity
Trova i documenti specifici per gli esami della tua università
Preparati con lezioni e prove svolte basate sui programmi universitari!
Rispondi a reali domande d’esame e scopri la tua preparazione
Riassumi i tuoi documenti, fagli domande, convertili in quiz e mappe concettuali
Studia con prove svolte, tesine e consigli utili
Togliti ogni dubbio leggendo le risposte alle domande fatte da altri studenti come te
Esplora i documenti più scaricati per gli argomenti di studio più popolari
Ottieni i punti per scaricare
Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium
Una panoramica completa del linguaggio sql (structured query language), utilizzato per interrogare e gestire database relazionali. Esplora le clausole fondamentali di sql, come select, from, where e order by, illustrando la loro funzione e sintassi. Include esempi pratici per creare query efficaci e comprendere il funzionamento di sql per l'estrazione e la manipolazione dei dati.
Tipologia: Appunti
1 / 8
Questa pagina non è visibile nell’anteprima
Non perderti parti importanti!





Quando si vogliono recuperare dati da un database, è possibile farlo usando il linguaggio SQL (Structured Query Language) linguaggio di interrogazione (query) molto simile alla lingua inglese, ma comprensibile per i programmi di database relazionali. per ogni query (interrogazione) eseguita viene usato il linguaggio SQL è possibile creare query efficaci e correggere in modo semplice eventuali query che non restituiscono i risultati desiderati
MySQL, usano SQL per gestire i dati a differenza di altri linguaggi, SQL è di facile lettura e comprensione, anche per gli utenti meno esperti useremo SQL per descrivere set insieme di dati che consentano di rispondere alle domande per SQL è necessario usare la sintassi corretta cioè la serie di regole in base alle quali gli elemnti di un linguaggio vengono combinati correttamente la sintassi di SQL si basa su quella della lingua inglese Ad esempio, un semplice istruzione SQL per il recupero di un elenco di cognomi di contatti con nome Maria può essere
completa del set di dati da ottenere da un database La descrizione include:
un’istruzione SELECT alcune clausole sono obbligatorie nella tabella vediamo le clausole SQL più comuni CLAUSOLA SQL Funzione Obbligatorio SELECT Elenca i campi che contengono i dati di interesse SI FROM Elenca le tabelle che contengono i campi elencati nella clausola SELECT SI WHERE Specifica i criteri di campo che ogni record deve soddisfare perché sia incluso nei risultati NO ORDER BY Specifica il tipo di ordinamento dei risultati NO CLAUSOLE SQL FONDAMENTALI SELECT FROM WHERE In generale, un’istruzione SQL si presenta nella
una riga a sé stante --< alla fine dell’istruzione SQL stessa clausola SELECT è costituita da un operatore (SELECT) seguito da due identificatori ad esempio Email e Società nella clausola SELECT non è necessario specificare le condizioni che i dati devono soddisfare perché siano inclusi nei risultati la clausola SELECT deve sempre precedere la clausola FROM clausola SELECT DISTINCT l’istruzione SELECT DISTINCT viene utilizzata per restituire solo valori distinti (diversi) all’interno di una tabella, una colonna spesso contiene molti valori duplicati e a volte si desidera elencare solo i valori diversi (distinti). questa istruzione SQL seleziona tutti i valori (e duplicati) dalla colonna “Paese” nella tabella “Clienti” questa istruzione SQL seleziona solo i valori DISTINCT dalla colonna “Paese” nella tabella “Clienti” clausola FROM è costituita da un operatore (FROM) seguito da un identificatore (Contatti) nella clausola FROM non sono elencati i campi da selezionare clausola LIMIT per impostazione predefinita, nell’istruzione SQL, vengono restituiti tutti i risultati
che soddisfano le condizioni specificate a volte è necessario recuperare solo un sottoinsieme di record si ottiene utilizzando la parola chiave LIMIT ad esempio, per recuperare i primi cinque record dalla tabella clienti clausola LIMIT OFFSET permette di estrapolare una serie/intervallo di record dal risultato di una query con la parola chiave OFFSET in MySQL puoi usare la formula più breve di LIMIT ed OFFSET LIMIT 3,4; ( recuperare i primi 4 clienti escludendo i primi tre partendo dal quarto clausola WHERE CONDIZIONE è costituita da un operatore (WHERE) seguito da un’espressione (Citta=Firenze) a differenza delle clausole SELECT e FROM, la clausola WHERE non rappresenta un elemento obbligatorio di un’istruzione SELECT con le clausole SELECT, FROM e WHERE è possibile eseguire molte delle azioni consentite dal linguaggio SQL ordinamento dei risultati ORDER BY come in un foglio di calcolo, MySQL consente di ordinare i risultati delle query in un foglio dati nella query si può anche specificare come ordinare i risultati, usando una clausola ORDER BY se si usa una clausola ORDER BY, questa deve essere l’ultima clausola dell’istruzione SQL la clausola ORDER BY contiene l’elenco dei campi da usare per l’ordinamento, nello stesso ordine in cui di vuole ordinarli. Si supponga di ordinare i risultati prima in base al valore del campo Societa in ordine decrescente e, se per alcuni record il valore di Societa è lo stesso, di ordinare questi ultimi in base al valore del campo Email in ordine crescente in questo caso, la clausola ORDER BY è Per impostazione predefinita, MySQL ordina i valori in ordine crescente (A-Z o dal più piccolo al più grande) per ordinare i valori in ordine decrescente usare la parola chiave DESC
questa istruzione serve a creare un database il suo schema sintattico è esempio
Questa istruzione serve a creare una tabella il suo schema sintattico è Esempio NOT NULL in un campo dichiarato con il vincolo NOT NULL non è possibile non inserire un valore se non inserito un valore valido in un campo di questo tipo, i valori inseriti nella riga non vengono accettati Il valore NULL non è lo zero o il carattere spazio, ma è un “nulla” virtuale ogni volta diverso e mai uguale ad ogni altro Esempio supponiamo di voler creare una tabella di nome TIFOSI con i campi: IDENTIFICATIVO, NOME, SQUADRA il campo IDENTIFICATIVO deve contenere obbligatoriamente un valore PRIMARY KEY questo vincolo ci permette di dichiarare un campo come chiave primaria è quel campo il cui valore rappresenta in maniera univoca la riga quindi non è possibile trovare all’interno della tabella due valori uguali alla chiave primaria Esempio supponiamo di voler creare una tabella di nome CALCIATORI con i campi: ID_IDENTIFICATIVO, NOME, COGNOME il campo ID_IDENTIFICATIVO deve essere dichiarato chiave primaria
DELETE istruzione utilizzata per eliminare i record esistenti in una tabella ATTENZIONE alla clausola WHERE la clausola WHERE specifica quale/i record devono essere cancellati se viene omessa la clausola WHERE tutti i record nella tabella verranno eliminati ESEMPIO FUNZIONI DI AGGREGAZIONE eseguono un calcolo in un set di valori e restituiscono un singolo valore ad eccezione di COUNT(*) le funzioni di aggregazione ignorano i valori NULL vengono spesso usate con la clausola GROUP BY dell’istruzione SELECT sono MIN() MAX() AVG() SUM() MIN la funzione MIN() restituisce il valore più piccolo della colonna selezionata MAX la funzione MAX() restituisce il valore più grande della colonna selezionata COUNT la funzione COUNT() restituisce il numero di righe che corrisponde a un criterio specificato AVG la funzione AVG() average restituisce il valore medio di una colonna numerica SUM la funzione SUM() restituisce la somma totale di una colonna numerica IS NULL o IS NOT NULL consente di verificare se il campo o i campi indicati non contengono nessun valore (mai impostati) In una condizione IS NULL restituisce true, quando il valore della colonna è NULL IS NOT NULL restituisce true, quando il valore della colonna non è NULL in MySQL confrontare i valori NULL con qualsiasi altro valore (anche NULL) restituisce sempre false, cioè NULL=NULL restituisce false BETWEEN l’operatore BETWEEN seleziona i valori all’interno di un determinato intervallo, i valori possono essere numeri, testo o date i valori di inizio e fine sono inclusi ESEMPIO OPPURE
IN l’operatore consente di specificare più valori in una clausola WHERE è una scorciatoia per più condizioni OR ESEMPIO seleziona tutti i clienti che si trovano in “Germania”, “Francia” e “Regno Unito” Seleziona tutti i clienti provenienti dagli stessi paesi dei fornitori, ma utilizzando una sottoquery SOTTOQUERY CON OPERATORE DI CONFRONTO l’operatore di confronto può essere ESEMPIO In questo esempio la sottoquery restituisce lo stipendio più alto di tutti i dipendenti e la query esterna trova i dipendenti il cui stipendio è uguale a quello più alto FUNZIONI SCALARI restituiscono un valore ricavato dal parametro passato (costante o campo) UCASE(valore) converte il testo tutto in MAIUSCOLO (UPPERCASE) LCASE(valore) converte il testo tutto in minuscolo (LOWERCASE) LENGTH(valore) restituisce la lunghezza di una stringa testuale MID(valore, inizio, fine) estrae caratteri da una stringa inizio parte da 1 e rappresenta il primo carattere da estrarre fine (opzionale) indica il numero di caratteri da estrarre, se omesso restituisce tutti i caratteri rimanenti ROUND(valore, decimali) arrotonda un campo numerico al numero di decimali specificato NOW ritorna la data e l’ora corrente del sistema FUNZIONE EXTRACT estrae le informazioni da una data le informazioni possono essere Sintassi ESEMPIO Estrai la settimana da una data ESEMPIO Estrae il nome e il cognome delle persone che contengono nella loro data di nascita l’anno 1990 FUNZIONE DATE_FORMAT(data, formato) consente di indicare quale formato adottare per un valore data data rappresenta la data che deve essere formattata ESEMPIO formato il formato da usare come combinazione di quelli in elenco
ESEMPIO se si desidera trovare prodotti i cui codici prodotto contengono la stringa _20, è possibile utilizzare il modello %-20 OPERATORE LIKE CLAUSOLA ESCAPE PERSONALIZZATA è anche possibile specificare un diverso carattere di ESCAPE, ad esempio potremmo utilizzare il carattere $ per utilizzarlo si usa la clausola ESCAPE ISTRUZIONE GROUP BY l’istruzione GROUP BY viene spesso utilizzata con funzioni aggregate (COUNT, MAX, MIN, SUM, AVG) per raggruppare il set di risultati in base a una o più colonne Questa istruzione SQL elenca il numero di clienti in ciascun paese Questa istruzione SQL elenca il numero di clienti in ciascun paese, ordinati dall’alto in basso ISTRUZIONE HAVING la clausola HAVING è stata aggiunta a SQL perché la parola chiave WHERE non può essere utilizzata con funzioni di aggregazione si applica ai record di gruppo riepilogati a differenza di WHERE che si applica ai singoli record ESEMPI Elenca il numero dei clienti in ciascun paese con più di 5 clienti Lo stesso esempio con i clienti in ciascun paese ordinati in ordine decrescente dal più alto al più basso JOIN una query a più tabelle consente di unire le informazioni di diverse tabelle individuando le corrispondenze dei valori nei campi comuni l’operazione che esegue la corrispondenza e il collegamento è denominata JOIN uno dei valori che è possibile specificare per ogni relazione è il tipo di JOIN, che indica quali record includere nel risultato di una query Diversi tipi di SQL JOIN (INTERNO) INNER JOIN restituisce i record che hanno valori corrispondenti in entrambe le tabelle LEFT (OUTER) JOIN restituisce tutti i record dalla tabella di sinistra e i record corrispondenti dalla tabella di destra RIGHT (OUTER) JOIN restituisce tutti i record dalla tabella di destra e i record corrispondenti dalla tabella sinistra
FULL (OUTER) JOIN restituisce tutti I record quando c’è una corrispondenza nella tabella sinistra o destra ESEMPI DI JOIN Scelta JOIN relazione Tabella sinistra Tabella destra
campi collegati da entrambe le tabelle sono uguali INNER JOIN Righe corrispondenti Righe corrispondenti
“Clienti” e solo i record di “Ordini” in cui i campi collegati sono uguali LEFT OUTER JOIN Tutte le righe Righe corrispondenti
“Ordini” e solo i record di “Clienti” in cui i campi collegati sono uguali RIGHT OUTER JOIN Righe corrispondenti Tutte le righe JOIN TRA DUE TABELLE smartphone (id, nome, ram, cpu, display_ppi, display_size, display-resolution, dimensioni, peso, note, id_marca, id_os) os (id, descrizione, company, open_source) marca (id, brand, nazionalità) Vogliamo conoscere la marca degli smartphone presenti nei database abbiamo 12 occorrenze nella tabella marca e 19 telefoni inseriti nella tabella smartphone il risultato della query appena fatta è di 12x19 righe --< questo risultato viene chiamato prodotto cartesiano ad ogni singola riga della prima tabella indicata, viene affiancata ogni occorrenza della seconda tabella OVVIAMENTE NON È IL RISULTATO CHE VOLEVAMO JOIN TRA DUE TABELLE INNER JOIN unire due tabelle tramite le CHIAVI per prendere una occorrenza della tabella smartphone e la riga corrispondente nella tabella marca, dobbiamo specificare le chiavi che le legano la PRIMARY KEY di marca deve legarsi alla tabella smartphone tramite la FOREIGN KEY id_marca CI SONO DUE MODI PER FARLO SONO EQUIVALENTI Primo metodo all’interno della clausola FROM specificare che la prima tabella è in INNER JOIN con la seconda tabella ON specificare l’uguaglianza tra le chiave primaria e la chiave esterna Secondo metodo nel FROM si specificano le due tabelle e all’interno della clausola WHERE si specifica l’uguaglianza tra la chiave primaria e la chiave esterna