MySQL Istruzione SELECT con esempi

⚡ Riepilogo intelligente

Migliori MySQL L'istruzione SELECT recupera righe da una o più tabelle e ogni esempio seguente viene eseguito sul database di esempio myflix, passando dalla semplice query con asterisco a espressioni, alias di colonna e funzioni di stringa.

  • 🔎 Scopo principale: SELECT recupera le righe memorizzate che corrispondono a un criterio, dal prompt dei comandi o da PHP, Pythone altre lingue.
  • 🧩 Ordine della sintassi: Le istruzioni SELECT, FROM, WHERE, GROUP BY, HAVING e ORDER BY devono comparire in quell'ordine fisso.
  • ⭐ Scorciatoia a stella: SELECT * FROM `members`; restituisce tutte le colonne, mentre specificare esplicitamente i nomi delle colonne mantiene i set di risultati più piccoli e veloci.
  • 🔗 Espressioni: La funzione CONCAT() unisce i valori delle colonne, mentre LEFT() rimuove i caratteri in eccesso, in modo che i campi calcolati appaiano direttamente nel set di risultati.
  • 🏷️ Alias ​​delle colonne: La parola chiave facoltativa AS rinomina qualsiasi espressione, sostituendo le intestazioni illeggibili come Concat(`title`) con etichette chiare.
  • 🖱️ Confronto tra banchi da lavoro: MySQL Workbench genera query in modo visivo, tuttavia le istruzioni SELECT scritte manualmente rimangono necessarie per il recupero di dati complessi e precisi.

Che cos'è una query SELECT in MySQL?

Query SELECT viene utilizzato per recuperare i dati dal MySQL database. I database memorizzano i dati per un recupero successivo. Lo scopo di MySQL L'istruzione SELECT serve a restituire una o più righe dalle tabelle del database che corrispondono a un determinato criterio. Una query SELECT può essere utilizzata in un linguaggio di scripting come PHP o Ruby, oppure può essere eseguita dal prompt dei comandi.

SELEZIONA query in MySQL

Poiché SELECT è il comando che utilizzerai più spesso, conviene impararne la sintassi prima di iniziare a lavorare con i dati di esempio.

Sintassi dell'istruzione SQL SELECT

SELECT è il comando SQL più utilizzato e ha la seguente sintassi generale:

SELECT [DISTINCT|ALL] { * | [fieldExpression [AS newName]} FROM tableName [alias] [WHERE condition] [GROUP BY fieldName(s)] [HAVING condition] [ORDER BY fieldName(s)];

QUI

  • SELEZIONA è la parola chiave SQL che consente al database di sapere che desideri recuperare i dati.
  • [DISTINTO | TUTTO] sono parole chiave opzionali che consentono di affinare i risultati restituiti dall'istruzione SQL SELECT. Se non viene specificato nulla, viene utilizzato ALL come valore predefinito.
  • {*| [fieldExpression [AS newName]} È necessario specificare almeno una parte. "*" seleziona tutti i campi dalla tabella specificata; fieldExpression esegue calcoli sui campi specificati, come sommare numeri o unire due campi stringa in uno solo.
  • DA Il campo tableName è obbligatorio e deve contenere almeno una tabella. Le tabelle multiple devono essere separate da virgole o unite utilizzando la parola chiave JOIN.
  • DOVE La condizione è facoltativa. Specifica i criteri nel set di risultati restituito dalla query.
  • RAGGRUPPA PER viene utilizzato per mettere insieme i record che hanno gli stessi valori di campo.
  • VISTA La condizione viene utilizzata per specificare i criteri quando si lavora con la parola chiave GROUP BY.
  • ORDINATO DA viene utilizzato per specificare l'ordinamento del set di risultati.

*

Il simbolo asterisco seleziona tutte le colonne di una tabella. Una semplice istruzione SELECT è simile a quella mostrata di seguito.

SELECT * FROM `members`;

L'istruzione sopra riportata seleziona tutti i campi dalla tabella members. Il punto e virgola è un terminatore di istruzione. Non è obbligatorio, ma terminare le istruzioni in questo modo è considerata una buona pratica.

SELECT DISTINCT e LIMIT in MySQL

Due parole chiave opzionali nella sintassi meritano un'analisi più approfondita, perché i principianti le incontrano non appena una tabella inizia a ingrandirsi.

DISTINCT Rimuove le righe duplicate dal set di risultati. La tabella dei film contiene diversi film usciti nel 2007, quindi una semplice query ripete quell'anno. DISTINCT restituisce ogni valore una sola volta.

SELECT DISTINCT `year_released` FROM `movies`;

LIMITE Limita il numero di righe restituite, proteggendo così il client da una query che altrimenti estrarrebbe milioni di record.

SELECT * FROM `movies` LIMIT 5;
Parola chiave Ciò che fa Quando usarlo
TUTTI (predefinito) Restituisce tutte le righe corrispondenti, duplicati inclusi. Conteggio o elenco dei record grezzi
DISTINCT Comprimi le righe duplicate in una sola Creazione di un elenco di valori unici
LIMITE Restituisce solo le prime N righe Anteprima dei dati o risultati della paginazione

Una volta definita la sintassi, il database di esempio dà vita a queste clausole.

Esempi pratici dell'istruzione SELECT

Clicca per scaricare Il database MyFlix è stato utilizzato per gli esempi pratici.

Puoi imparare come importare il file .sql in MySQL banco di lavoro.

Gli esempi vengono eseguiti sulle due tabelle seguenti.

Tabella 1: Persone tavolo

numero_iscrizione nomi_completi genere data di nascita indirizzo fisico indirizzo postale contatto_numero email
1 Janet Jones Femmina 21-07-1980 Primo lotto di strada n. 4 Borsa privata 0759 253 542 janetjones@yagoo.cm
2 Janet Smith Jones Femmina 23-06-1980 Melrose 123 NULL NULL jj@fstreet.com
3 Roberto Fil Maschio 12-07-1989 3a strada 34 NULL 12345 rm@tstreet.com
4 Gloria Williams Femmina 14-02-1984 2a strada 23 NULL NULL NULL

Tabella 2: film tavolo

id_film titolo direttore anno_rilasciato categoria_id
1 Pirati dei Caraibi 4 Rob Marshall 2011 1
2 Dimenticando Sarah Marshal Nicholas Stoller 2008 2
3 X-Men NULL 2008 NULL
4 Code Nome Nero Edgar Jimz 2010 NULL
5 Le bambine di papà NULL 2007 8
6 Angeli e Demoni NULL 2007 6
7 Da Vinci Code NULL 2007 6
9 Honey moonERS John Schutz 2005 8
16 67% colpevole NULL 2012 NULL

Ottenere l'elenco dei membri

Supponiamo di voler ottenere un elenco di tutti gli iscritti alla biblioteca presenti nel nostro database. Per farlo, useremmo lo script mostrato di seguito.

SELECT * FROM `members`;

Esecuzione dello script in MySQL Workbench produce i seguenti risultati.

numero_iscrizione nomi_completi genere data di nascita indirizzo fisico indirizzo postale contatto_numero email
1 Janet Jones Femmina 21-07-1980 Primo lotto di strada n. 4 Borsa privata 0759 253 542 janetjones@yagoo.cm
2 Janet Smith Jones Femmina 23-06-1980 Melrose 123 NULL NULL jj@fstreet.com
3 Roberto Fil Maschio 12-07-1989 3a strada 34 NULL 12345 rm@tstreet.com
4 Gloria Williams Femmina 14-02-1984 2a strada 23 NULL NULL NULL

La query ha restituito tutte le righe e le colonne della tabella dei membri.

Selezione di colonne specifiche

Supponiamo di essere interessati solo ai campi full_names, gender, physical_address e email. Lo script seguente permette di ottenere questo risultato.

SELECT `full_names`,`gender`,`physical_address`, `email` FROM `members`;

Esecuzione dello script in MySQL Workbench produce i seguenti risultati.

nomi_completi genere indirizzo fisico email
Janet Jones Femmina Primo lotto di strada n. 4 janetjones@yagoo.cm
Janet Smith Jones Femmina Melrose 123 jj@fstreet.com
Roberto Fil Maschio 3a strada 34 rm@tstreet.com
Gloria Williams Femmina 2a strada 23 NULL

Ottenere l'elenco dei film con espressioni

È possibile utilizzare espressioni anche nelle istruzioni SELECT. Supponiamo di voler ottenere un elenco di film con il titolo e il nome del regista in un campo, il nome del regista tra parentesi e l'anno di uscita del film. Il seguente script fa proprio questo.

SELECT Concat(`title`, ' (', `director`, ')') , `year_released` FROM `movies`;

QUI

  • Il concatenato() MySQL Questa funzione unisce i valori delle colonne.
  • La riga “Concat(`title`, ' (', `director`, ')')” prende il titolo, aggiunge una parentesi aperta seguita dal nome del regista, quindi aggiunge la parentesi chiusa.
  • All'interno della funzione Concat(), le porzioni di stringa sono separate da virgole.

Esecuzione dello script in MySQL Workbench produce il seguente set di risultati.

Concat(`titolo`, ' (', `direttore`, ')') anno_rilasciato
Pirati dei Caraibi 4 (Rob Marshall) 2011
Dimenticando Sarah Marshal (Nicholas Stoller) 2008
NULL 2008
Code Nome Black (Edgar Jimz) 2010
NULL 2007
NULL 2007
NULL 2007
Honey mooners (John Schultz) 2005
NULL 2012

Nota: La funzione concat() restituisce NULL quando uno qualsiasi degli argomenti è NULL, motivo per cui i film senza regista mostrano NULL qui sopra.

Nomi dei campi alias

L'esempio precedente ha restituito il codice di concatenazione come nome del campo. Per utilizzare un nome di campo più descrittivo nel set di risultati, applicare un alias di colonna. La sintassi di base è la seguente.

SELECT `column_name|value|expression` [AS] `alias_name`;

QUI

  • “SELECT `nome_colonna|valore|espressione`” è l'istruzione SELECT standard, che può essere un nome di colonna, un valore o un'espressione.
  • "[COME]" è la parola chiave facoltativa che precede il nome dell'alias.
  • “`nome_alias`” è l'alias che viene restituito nel set di risultati come nome del campo.

La stessa query con un nome di colonna più significativo:

SELECT Concat(`title`, ' (', `director`, ')') AS `Concat`, `year_released` FROM `movies`;

Otteniamo il seguente risultato.

Concat anno_rilasciato
Pirati dei Caraibi 4 (Rob Marshall) 2011
Dimenticando Sarah Marshal (Nicholas Stoller) 2008
NULL 2008
Code Nome Black (Edgar Jimz) 2010
NULL 2007
NULL 2007
NULL 2007
Honey mooners (John Schultz) 2005
NULL 2012

Ottenere l'elenco dei membri che mostra l'anno di nascita

Supponiamo di voler ottenere un elenco di tutti i membri che mostri il numero di iscrizione, il nome completo e l'anno di nascita. Possiamo usare la funzione stringa SINISTRA per esprimeretracl'anno di nascita dal campo data di nascita.

SELECT `membership_number`,`full_names`,LEFT(`date_of_birth`,4) AS `year_of_birth` FROM members;

QUI

  • “SINISTRA(`data_di_nascita`,4)” , il Funzione stringa SINISTRA Accetta la data di nascita come parametro e restituisce solo i 4 caratteri da sinistra.
  • “COME `anno_di_nascita`” Europe è nome alias della colonna restituito nei nostri risultati. La parola chiave AS è facoltativa; puoi ometterlo e la query funzionerà comunque.

Esecuzione della query in MySQL L'analisi con Workbench su myflixdb ci fornisce i risultati mostrati di seguito.

numero_iscrizione nomi_completi anno di nascita
1 Janet Jones 1980
2 Janet Smith Jones 1980
3 Roberto Fil 1989
4 Gloria Williams 1984

Le query scritte manualmente sono solo uno dei modi per ottenere un set di risultati. Workbench può anche generare l'istruzione per te.

Utilizzo di SQL MySQL banco di lavoro

Ora useremo MySQL Workbench per generare lo script che visualizza tutti i nomi dei campi dalla nostra tabella delle categorie.

1. Fare clic con il pulsante destro del mouse sulla tabella Categorie. Fare clic su "Seleziona righe - Limite 1000".

2. MySQL Workbench crea automaticamente una query SQL e la incolla nell'editor.

3. I risultati della query vengono visualizzati nella griglia sotto l'editor.

SQL utilizzando MySQL banco di lavoro

Come mostra lo screenshot, non abbiamo scritto noi l'istruzione SELECT. MySQL Workbench lo ha generato per noi.

Perché usare il comando SQL SELECT quando abbiamo MySQL Banco di lavoro?

Potresti chiederti perché dovresti imparare il comando SQL SELECT quando esiste uno strumento come MySQL Workbench restituisce gli stessi risultati senza alcuna conoscenza del linguaggio SQL. Questa scorciatoia è possibile, ma imparare il comando SELECT ti dà di più flessibilità and di controllo sopra il tuo Istruzioni SQL SELECT.

MySQL Il banco da lavoro rientra nella categoria di “Interrogazione per esempioStrumenti QBE (Qlood Business Expansion). Il loro scopo è generare istruzioni SQL più velocemente e aumentare la produttività dell'utente.

Imparare il comando SQL SELECT ti permette di creare interrogazioni complesse che non possono essere facilmente generate da utilità di query per esempio come MySQL Banco di lavoro.

Per migliorare la produttività, puoi generare il codice in MySQL banco di lavoro, poi personalizzare ad soddisfare le vostre esigenzeCiò è possibile solo una volta compreso il funzionamento delle istruzioni SQL.

Capire il MySQL Istruzione SELECT

DOMANDE FREQUENTI

Solitamente sì. SELECT * legge ogni colonna, inclusi campi di testo e blob di grandi dimensioni che potrebbero non essere necessari, e blocca gli indici di copertura. Assegnare un nome alle colonne mantiene il set di risultati più piccolo e la query più veloce.

Parole chiave come SELECT e FROM non fanno distinzione tra maiuscole e minuscole. I confronti tra stringhe seguono la collazione della colonna, quindi una collazione che non fa distinzione tra maiuscole e minuscole, come utf8mb4_0900_ai_ci, tratta "Janet" e "janet" come equivalenti.

La causa più comune è un indice mancante. Esegui EXPLAIN prima della query per verificare se MySQL Esegue una scansione completa della tabella, quindi indicizza le colonne filtrate o unite e restituisce solo le righe necessarie.

Sì. Gli assistenti Text-to-SQL convertono una semplice richiesta in un'istruzione SELECT una volta che conoscono lo schema. RevEsaminate attentamente le join e i filtri generati, perché un modello di intelligenza artificiale può inventare nomi di colonne inesistenti.

No. L'IA elabora rapidamente una query, ma tu verifichi comunque la logica, le join e le prestazioni in MySQL banco di lavoroConoscere SELECT è ciò che permette di individuare un risultato errato prima che raggiunga l'ambiente di produzione.

Riassumi questo post con: