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: