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.

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.
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 | |
|---|---|---|---|---|---|---|---|
| 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 | |
|---|---|---|---|---|---|---|---|
| 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 | |
|---|---|---|---|
| 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.
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.



