Torna al blog

Una panoramica delle query in MySQL

Una panoramica delle query in MySQL

La sostenibilità nel business è difficile senza una corretta gestione dei dati. Costruire un sistema ben definito è essenziale per gestire le operazioni interne ed esterne. Una visione dettagliata dei dati aziendali aiuta a comprendere il flusso di lavoro complessivo e a misurare le prestazioni. Inoltre, l'uso di database fa risparmiare tempo e consente di accedere alle informazioni senza sforzo.

Cos'è un database?

Un database è un sistema organizzato utilizzato per memorizzare informazioni in modo sicuro. Offre una categorizzazione e consente la creazione di tabelle per ordinare tipi simili di elementi sotto un unico gruppo. Le tabelle offrono opzioni per elencare le informazioni in più righe e colonne. Di conseguenza, la qualità e la coerenza dei dati migliorano. Oltre alle capacità di archiviazione e di facile accesso, i database svolgono un ruolo significativo nella salvaguardia della privacy e nella sicurezza dei sistemi. Che sia ad hoc o parte di un processo codificato in un'applicazione, il recupero dei dati è uno degli aspetti più critici della gestione dei database.

Una query in un DMS relazionale è qualsiasi comando utilizzato per recuperare dati da una tabella. SELECT istruzioni sono quasi sempre utilizzate in Structured Query Language (SQL) query. Esistono diversi metodi per recuperare informazioni da un database. In genere, gli sviluppatori preferiscono l'opzione della riga di comando perché è veloce ed efficace. Consente di inviare query in modo fluido.

In questa guida, ti presenteremo MySQL e parleremo di come lavorare con le query in MySQL. Iniziamo!

Prerequisiti

Per seguire questo tutorial, avrai bisogno di quanto segue:

Passo 1 — Creare e configurare un database

Prima di iniziare e scrivere la nostra prima query SQL, dobbiamo creare un database e aggiungervi tabelle. Successivamente, popoleremo le tabelle utilizzando dati di esempio. Lavorare con i database ti aiuterà a comprendere la configurazione di base e ti darà sicurezza nel lavorare con le query.

L'esperienza pratica è il modo più efficace per costruire concetti e comprendere l'importanza dei database. In questa guida, ti guideremo attraverso l'uso dei database e la loro importanza per risolvere problemi del mondo reale. Verifichiamo uno scenario per capire come i database possono aiutare a organizzare i record in modo strutturato.

Scenario: Creeremo un database in cui un gruppo di studenti universitari andrà in vacanza per festeggiare i propri compleanni. Prima di andare in vacanza, hanno in programma di partecipare a una gara di nuoto amichevole. Inoltre, ogni amico del gruppo pianifica una lista di cose da fare per rendere il viaggio emozionante e piacevole.

Innanzitutto, apri MySQL come utente root:

Quindi, crea un database eseguendo il seguente comando:

Successivamente, utilizziamo il nostro database usando il seguente comando:

Dopodiché, creeremo delle tabelle nel nostro database. Nomina la prima tabella come celebration. La nostra tabella avrà colonne per i nomi dei nostri amici (name), i tornei che hanno vinto (wins) e anche una colonna per il loro miglior tempo (time):

Popoleremo quindi la nostra tabella con i dati:

Quindi, crea un'altra tabella all'interno del nostro database per memorizzare le informazioni sulle loro attività di compleanno preferite. Creeremo una tabella chiamata vacation e avrà le seguenti colonne:

List

Detail

name:

Memorizza il nome di ciascun amico.

birthdate:

Traccia la data di nascita di ciascun individuo.

activity:

Mantiene un registro della loro attività preferita.

Destination:

Memorizza le informazioni sulla destinazione preferita di ciascun individuo.

meal:

Traccia il pasto preferito da un individuo.

Popola la tabella con i dati:

Hai completato la configurazione del tuo database.

Passo 2 — Iniziare con le istruzioni SELECT

Le query in SQL normalmente iniziano con SELECT. Viene utilizzato nelle query per specificare quali colonne di una tabella devono essere restituite con i risultati. Una query deve anche includere sempre FROM, che viene utilizzato per specificare la tabella su cui la query eseguirà l'interrogazione.

Le query seguono la sintassi seguente:

Useremo la sintassi della query per restituire la colonna meal dalla tabella vacation tabella:

Il nostro output sarà il seguente:

Puoi anche selezionare più colonne utilizzando una colonna per separarle:

Output:

Puoi anche utilizzare un asterisco (*) se vuoi rappresentare tutte le colonne della tabella:

Output:

Se vuoi filtrare i record che soddisfano una determinata condizione, usi WHERE. Le righe che non soddisfano la condizione specificata vengono eliminate dai risultati. La clausola WHERE utilizza la seguente sintassi:

È un operatore di confronto che definisce come la colonna specificata deve essere confrontata con il valore. I comuni operatori di confronto SQL includono:

Operatore

Uso

=

Uguaglianza

!=

Disuguaglianza

<

Minore di

>

Maggiore di

<=

Minore o uguale a

>=

Maggiore o uguale a

BETWEEN

Verifica se il valore rientra nell'intervallo specificato.

IN

Verifica se il valore di una riga è contenuto in un insieme di valori specificati.

EXISTS

Verifica se esiste una riga

LIKE

Verifica se un valore corrisponde alla stringa specificata

IS NULL

Verifica la presenza di valori nulli

IS NOT NULL

Verifica la presenza di tutti i valori diversi da NULL

Se volessi trovare la destinazione preferita di Aisha, potresti usare la query qui sotto:

La query restituirà quindi:

SQL supporta l'uso di caratteri jolly, che sono particolarmente utili nelle WHERE clausole. I simboli di percentuale ( %) indicano zero o più caratteri sconosciuti, mentre i trattini bassi ( _) indicano un singolo carattere sconosciuto. Questi sono utili se si desidera trovare una voce specifica in una tabella ma non si è sicuri della voce stessa.

Ad esempio, se avessi dimenticato la destinazione preferita di un amico e conoscessi solo la lettera con cui inizia, ad esempio “m”, puoi trovare il nome della destinazione utilizzando la seguente query:

La query restituirà:

Quando si lavora con i database, si possono incontrare colonne o tabelle con nomi relativamente lunghi o difficili da leggere. In questi casi, è possibile rendere i nomi più leggibili utilizzando la parola chiave AS per creare un alias. Gli alias creati con AS sono validi solo per la durata della query per la quale sono stati creati:

Passo 3 — Introduzione alle funzioni di aggregazione

Quando si lavora con i dati, non sempre si desidera vedere i dati stessi. Spesso si preferisce avere informazioni sui dati. Eseguendo una query SELECT, è possibile interpretare o eseguire calcoli sui dati utilizzando la sintassi SQL. Queste sono denominate funzioni di aggregazione.

La funzione COUNT conta e restituisce il numero di righe che soddisfano un insieme specifico di criteri. Ad esempio, se si desidera sapere quanti amici preferiscono andare alle Maldives, è possibile utilizzare la seguente query:

Verranno restituiti i seguenti risultati:

MIN viene utilizzato per trovare il valore più piccolo all'interno di una colonna specificata:

La query restituirà:

MAX viene utilizzato per trovare il valore numerico più grande in una determinata colonna:

L'output previsto è:

Sia la funzione MIN che la funzione MAX possono essere utilizzate su dati numerici e alfabetici. Quando applicata a una colonna di valori stringa, la funzione MIN restituisce il primo valore in ordine alfabetico.

La funzione MIN restituisce il primo valore in ordine alfabetico:

Ecco quale sarà l'output:

La funzione MAX restituisce l'ultimo valore in ordine alfabetico:

Questo sarà l'output:

Passo 4 — Manipolare i risultati delle query

Un'altra clausola molto utilizzata è la GROUP BY. Viene utilizzata quando si esegue una funzione di aggregazione su una colonna ma in relazione ai valori corrispondenti in un'altra:

L'output sarà:

Per ordinare i risultati della query, utilizza la clausola ORDER BY. I valori numerici sono ordinati in modo crescente per impostazione predefinita, mentre i valori di testo sono ordinati in ordine alfabetico. La query seguente elenca le colonne name e birthdate, ma ordina i risultati per birthdate:

L'output sarà il seguente:

L'output è in ordine crescente; per ordinare in ordine decrescente, chiudi la query con la parola DESC:

Dai un'occhiata all'output:

La clausola HAVING è stata aggiunta a SQL per fornire una funzionalità simile alla clausola WHERE, pur essendo compatibile con le funzioni di aggregazione. La differenza tra queste due clausole è che WHERE serve per fare riferimento a record singoli e HAVING si riferisce a record di gruppo. A tal fine, la clausola GROUP BY deve essere presente ogni volta che viene utilizzata una clausola HAVING:

La query restituirà:

Il COUNT è 1 per tutti perché non ci sono due amici a cui piace la stessa attività.

Passo 5 — Eseguire query su più tabelle

La clausola JOIN può essere utilizzata nel risultato di una query per combinare righe da due o più tabelle. Ottiene questo risultato individuando una colonna correlata tra le tabelle e ordinando l'output in modo appropriato.

SELECT istruzioni che includono una clausola JOIN seguono la sintassi seguente:

Se volessi acquistare per ciascuno dei tuoi amici un trofeo per le loro vittorie durante il nuoto nei loro compleanni, potresti creare una query che unisca entrambe le tabelle per aiutarti a trovare tutte le informazioni desiderate con una singola query:

L'output sarà:

Questa è una clausola di inner JOIN. Questo perché seleziona tutti i record che hanno valori corrispondenti in entrambe le tabelle e li stampa in un set di risultati. I record che non corrispondono alla query non vengono inclusi. Possiamo includere una nuova riga nelle nostre tabelle che non corrisponde a nessuna voce:

Quindi, esegui nuovamente l'istruzione SELECT con la clausola JOIN:

Poiché la tabella celebration non ha alcuna voce per Peter e la tabella vacation non ha alcuna voce per Ella, tali record sono assenti.

Possiamo restituire tutti i record da una delle tabelle utilizzando una clausola di outer JOIN. Questa può essere una LEFT JOIN o una RIGHT JOIN. Una LEFT JOIN restituisce tutti i record della tabella di sinistra e solo i record corrispondenti della tabella di destra. La tabella di sinistra nel contesto dei join esterni è quella a cui fa riferimento la clausola FROM, e la tabella di destra è qualsiasi tabella a cui si fa riferimento dopo l'istruzione JOIN.

Esegui nuovamente la query ma utilizza una clausola LEFT JOIN:

Il comando restituirà tutti i record dalla tabella di sinistra ( celebration) anche se non ha un record corrispondente nella tabella di destra. Quando non c'è un record corrispondente nella tabella di destra, viene restituito come NULL:

Questa è ora la clausola RIGHT JOIN:

Verranno restituiti tutti i valori della tabella di destra (vacation). Poiché il birthdate di Peter è registrato nella tabella di destra e non nella tabella di sinistra, le colonne name e wins restituiranno valori NULL in quelle righe:

Puoi usare la clausola UNION invece di JOIN per interrogare i record da più tabelle. L'operatore UNION si differenzia dalla clausola JOIN per il fatto che combina i risultati di due istruzioni SELECT in una singola colonna, anziché stampare i risultati di più tabelle come colonne univoche utilizzando una singola istruzione SELECT.

Puoi eseguire questa query per illustrare:

La query rimuove le voci duplicate. Questo è il comportamento predefinito dell'operatore UNION:

Per restituire tutte le voci (più i duplicati) usa l'operatore UNION ALL:

Output:

Le sottoquery sono un altro metodo per interrogare più tabelle. Le sottoquery sono query racchiuse all'interno di un'altra query (noto anche come query interne o nidificate). Queste sono utili quando si desidera confrontare i risultati di una query con i risultati di una funzione di aggregazione separata.

Useremo l'esempio di cercare di scoprire quale amico ha vinto più tornei di nuoto rispetto a Ella. Invece di chiedere quante partite ha vinto Ella e poi eseguire un'altra query per vedere chi ha vinto più partite di quelle, puoi calcolare entrambe con una singola query:

La query restituirà:

Se volessi portare i tuoi amici in una vacanza a sorpresa, puoi usare una query per vedere chi ha più vittorie e restituire la loro destinazione:

La query restituirà:

Questa istruzione contiene una sottoquery all'interno di una sottoquery.

Conclusione

La generazione di query è una delle attività più comuni nella gestione dei database. Esistono diversi strumenti di amministrazione del database come phpMyAdmin e pgAdmin che puoi utilizzare per lavorare con le query e visualizzarne i risultati. Tuttavia, l'istruzione SELECT da riga di comando è la scelta preferita per la sua facilità d'uso e l'eccellente controllo.

Inoltre, ci sono molti tutorial sui database che puoi esplorare dal nostro blog:

Buon computing!

author

Preslav Dobrev

Autore · CloudSigma

Preslav Dobrev è un designer creativo presso CloudSigma, con un focus su un'identità aziendale coerente attraverso l'uso di canali di marketing tradizionali e innovativi. È abile nel fondere la visione artistica con il marketing strategico per creare narrazioni di brand di grande impatto.

Commenti

Ancora nessun commento. Scrivi il primo.