Docsity
Docsity

Prepara i tuoi esami
Prepara i tuoi esami

Studia grazie alle numerose risorse presenti su Docsity


Ottieni i punti per scaricare
Ottieni i punti per scaricare

Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium


Guide e consigli
Guide e consigli


Introduzione a SQL: Linguaggio di Interrogazione per Database Relazionali, Appunti di Informatica

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

2024/2025

Caricato il 02/01/2025

graziella-fabbri
graziella-fabbri 🇮🇹

19 documenti

1 / 8

Toggle sidebar

Questa pagina non è visibile nell’anteprima

Non perderti parti importanti!

bg1
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
CHE COS’È SQL? SQL è un linguaggio di interrogazione per la gestione di serie di dati e delle relative relazioni i database relazionali come
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
ISTRUZIONE SELECT Per descrivere un set di dati tramite SQL, è necessario scrivere un’istruzione SELECT che contiene la descrizione
completa del set di dati da ottenere da un database La descrizione include:
Le tabelle che contengo i dati
Il tipo di relazione tra i dati di origini diverse
I campi o i calcoli che generano i dati
I criteri che devono essere rispettati per l’inclusione
L’eventuale ordinamento dei risultati
CLAUSOLE SQL Un’istruzione SQL è composta da clausole, ognuna delle quali esegue una funzione dell’istruzione SQL stessa in
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
forma seguente Ogni istruzione SELECT termina con un punto e virgola (;) che può trovarsi alla fine dell’ultima clausola o in
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
pf3
pf4
pf5
pf8

Anteprima parziale del testo

Scarica Introduzione a SQL: Linguaggio di Interrogazione per Database Relazionali e più Appunti in PDF di Informatica solo su Docsity!

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

CHE COS’È SQL?  SQL è un linguaggio di interrogazione per la gestione di serie di dati e delle relative relazioni  i database relazionali come

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

ISTRUZIONE SELECT  Per descrivere un set di dati tramite SQL, è necessario scrivere un’istruzione SELECT  che contiene la descrizione

completa del set di dati da ottenere da un database  La descrizione include:

 Le tabelle che contengo i dati

 Il tipo di relazione tra i dati di origini diverse

 I campi o i calcoli che generano i dati

 I criteri che devono essere rispettati per l’inclusione

 L’eventuale ordinamento dei risultati

CLAUSOLE SQL  Un’istruzione SQL è composta da clausole, ognuna delle quali esegue una funzione dell’istruzione SQL stessa  in

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

forma seguente  Ogni istruzione SELECT termina con un punto e virgola (;)  che può trovarsi alla fine dell’ultima clausola o in

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

CREARE DATABASE 

questa istruzione serve a creare un database il suo schema sintattico è  esempio 

CREARE TABLE 

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

1. Includi solo le righe in cui i

campi collegati da entrambe le tabelle sono uguali INNER JOIN Righe corrispondenti Righe corrispondenti

2. Includi tutti i record di

“Clienti” e solo i record di “Ordini” in cui i campi collegati sono uguali LEFT OUTER JOIN Tutte le righe Righe corrispondenti

3. Includi tutti i record di

“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