Cos'è la query SELECT in MySQL?
SELECT QUERY viene utilizzato per recuperare i dati dal database MySQL. I database archiviano i dati per il successivo recupero. Lo scopo di MySQL Select è restituire dalle tabelle del database una o più righe che corrispondono a un determinato criterio. La query di selezione può essere utilizzata in linguaggi di scripting come PHP, Ruby oppure è possibile eseguirla tramite il prompt dei comandi.
Sintassi dell'istruzione SQL SELECT
È il comando SQL utilizzato più di frequente e presenta 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
- SELECT è la parola chiave SQL che consente al database di sapere che si desidera recuperare i dati.
- [DISTINCT | ALL] sono parole chiave facoltative che possono essere utilizzate per ottimizzare i risultati restituiti dall'istruzione SQL SELECT. Se non viene specificato nulla, ALL viene assunto come impostazione predefinita.
- {* | [fieldExpression [AS newName]} deve essere specificata almeno una parte, "*" ha selezionato tutti i campi dal nome di tabella specificato, fieldExpression esegue alcuni calcoli sui campi specificati come l'aggiunta di numeri o l'unione di due campi stringa in uno.
- FROM tableName è obbligatorio e deve contenere almeno una tabella, più tabelle devono essere separate utilizzando virgole o unite utilizzando la parola chiave JOIN.
- DOVE la condizione è facoltativa, può essere utilizzata per specificare i criteri nel set di risultati restituito dalla query.
- GROUP BY viene utilizzato per mettere insieme i record che hanno gli stessi valori di campo.
- La condizione HAVING viene utilizzata per specificare i criteri quando si lavora utilizzando la parola chiave GROUP BY.
- ORDER BY viene utilizzato per specificare l'ordinamento del set di risultati.
*
Il simbolo Stella viene utilizzato per selezionare tutte le colonne nella tabella. Un esempio di una semplice istruzione SELECT è simile a quella mostrata di seguito.
SELECT * FROM `members`;
L'istruzione precedente seleziona tutti i campi dalla tabella dei membri. Il punto e virgola è un'istruzione terminate. Non è obbligatorio, ma è considerata una buona pratica terminare le tue affermazioni in questo modo.
Esempi pratici
Clicca per scaricare il DB myflix utilizzato per esempi pratici.
Puoi imparare a importare il file .sql in MySQL WorkBench
Gli esempi vengono eseguiti sulle due tabelle seguenti
Tabella 1: tabella membri
numero_appartenenza | full_names | Genere | data di nascita | indirizzo fisico | indirizzo postale | contct_ numero | |
---|---|---|---|---|---|---|---|
1 | Janet Jones | Femmina | 21-07-1980 | First Street Plot n. 4 | Borsa privata | 0759 253 542 | Questo indirizzo email è protetto dagli spambots. Devi abilitare JavaScript per vederlo. |
2 | Janet Smith Jones | Femmina | 23-06-1980 | Melrose 123 | NULLO | NULLO | Questo indirizzo email è protetto dagli spambots. Devi abilitare JavaScript per vederlo. |
3 | Robert Phil | Maschio | 12-07-1989 | 3a strada 34 | NULLO | 12345 | Questo indirizzo email è protetto dagli spambots. Devi abilitare JavaScript per vederlo. |
4 | Gloria Williams | Femmina | 14-02-1984 | 2nd Street 23 | NULLO | NULLO | NULLO |
Tabella 2: tabella dei film
movie_id | titolo | direttore | year_released | category_id |
---|---|---|---|---|
1 | Pirati dei Caraibi 4 | Rob Marshall | 2011 | 1 |
2 | Dimenticando Sarah Marshal | Nicholas Stoller | 2008 | 2 |
3 | X-Men | NULLO | 2008 | NULLO |
4 | Nome in codice Nero | Edgar Jimz | 2010 | NULLO |
5 | Le bambine di papà | NULLO | 2007 | 8 |
6 | Angeli e Demoni | NULLO | 2007 | 6 |
7 | Codice Davinci | NULLO | 2007 | 6 |
9 | Luna di miele | John Schultz | 2005 | 8 |
16 | 67% colpevole | NULLO | 2012 | NULLO |
Ottenere l'elenco dei membri
Supponiamo di voler ottenere un elenco di tutti i membri della libreria registrati dal nostro database, useremmo lo script mostrato di seguito per farlo.
SELECT * FROM `members`;
L'esecuzione dello script precedente in MySQL workbench produce i seguenti risultati.
numero_appartenenza | full_names | Genere | data di nascita | indirizzo fisico | indirizzo postale | contct_ numero | |
---|---|---|---|---|---|---|---|
1 | Janet Jones | Femmina | 21-07-1980 | First Street Plot n. 4 | Borsa privata | 0759 253 542 | Questo indirizzo email è protetto dagli spambots. Devi abilitare JavaScript per vederlo. |
2 | Janet Smith Jones | Femmina | 23-06-1980 | Melrose 123 | NULLO | NULLO | Questo indirizzo email è protetto dagli spambots. Devi abilitare JavaScript per vederlo. |
3 | Robert Phil | Maschio | 12-07-1989 | 3a strada 34 | NULLO | 12345 | Questo indirizzo email è protetto dagli spambots. Devi abilitare JavaScript per vederlo. |
4 | Gloria Williams | Femmina | 14-02-1984 | 2nd Street 23 | NULLO | NULLO | NULLO |
La nostra query sopra ha restituito tutte le righe e le colonne dalla tabella dei membri.
Diciamo che siamo interessati solo a ottenere solo i campi full_names, gender, physical_address e email. Il seguente script ci aiuterebbe a raggiungere questo obiettivo.
SELECT `full_names`,`gender`,`physical_address`, `email` FROM `members`;
L'esecuzione dello script precedente in MySQL workbench produce i seguenti risultati.
full_names | Genere | indirizzo fisico | |
---|---|---|---|
Janet Jones | Femmina | First Street Plot n. 4 | Questo indirizzo email è protetto dagli spambots. Devi abilitare JavaScript per vederlo. |
Janet Smith Jones | Femmina | Melrose 123 | Questo indirizzo email è protetto dagli spambots. Devi abilitare JavaScript per vederlo. |
Robert Phil | Maschio | 3a strada 34 | Questo indirizzo email è protetto dagli spambots. Devi abilitare JavaScript per vederlo. |
Gloria Williams | Femmina | 2nd Street 23 | NULLO |
Ottenere l'elenco dei film
Ricorda nella nostra discussione precedente che menzioniamo le espressioni utilizzate nelle istruzioni SELECT. Diciamo che vogliamo ottenere un elenco di film dal nostro database. Vogliamo avere il titolo del film e il nome del regista in un campo. Il nome del regista dovrebbe essere tra parentesi. Vogliamo anche ottenere l'anno in cui il film è stato rilasciato. Il seguente script ci aiuta a farlo.
SELECT Concat(`title`, ' (', `director`, ')') , `year_released` FROM `movies`;
QUI
- La funzione Concat () MySQL viene utilizzata per unire i valori delle colonne insieme.
- La riga "Concat (` title`, '(', `director`, ')') ottiene il titolo, aggiunge una parentesi aperta seguita dal nome del regista, quindi aggiunge la parentesi chiusa.
Le parti di stringa vengono separate mediante virgole nella funzione Concat ().
L'esecuzione dello script precedente in MySQL workbench produce il seguente set di risultati.
Concat (`title`, '(',` director`, ')') | year_released |
---|---|
Pirati dei Caraibi 4 (Rob Marshall) | 2011 |
Dimenticare Sarah Marshal (Nicholas Stoller) | 2008 |
NULLO | 2008 |
Nome in codice Black (Edgar Jimz) | 2010 |
NULLO | 2007 |
NULLO | 2007 |
NULLO | 2007 |
Honey mooners (John Schultz) | 2005 |
NULLO | 2012 |
Nomi di campo alias
L'esempio precedente ha restituito il codice di concatenazione come nome del campo per i nostri risultati. Supponiamo di voler utilizzare un nome di campo più descrittivo nel nostro set di risultati. Useremmo il nome alias della colonna per ottenere ciò. Di seguito è riportata la sintassi di base per il nome alias della colonna
SELECT `column_name|value|expression` [AS] `alias_name`;
QUI
- "SELECT` nome_colonna | valore | espressione `" è la normale istruzione SELECT che può essere un nome di colonna, un valore o un'espressione.
- "[AS]" è la parola chiave opzionale prima del nome alias che denota l'espressione, il valore o il nome del campo verrà restituito come.
- "` alias_name` " è il nome alias che vogliamo restituire nel nostro set di risultati come nome del campo.
La query precedente con un nome di colonna più significativo
SELECT Concat(`title`, ' (', `director`, ')') AS 'Concat', `year_released` FROM `movies`;
Otteniamo il seguente risultato
Concat | year_released |
---|---|
Pirati dei Caraibi 4 (Rob Marshall) | 2011 |
Dimenticare Sarah Marshal (Nicholas Stoller) | 2008 |
NULLO | 2008 |
Nome in codice Black (Edgar Jimz) | 2010 |
NULLO | 2007 |
NULLO | 2007 |
NULLO | 2007 |
Honey mooners (John Schultz) | 2005 |
NULLO | 2012 |
Ottenere l'elenco dei membri che mostra l'anno di nascita
Supponiamo di voler ottenere un elenco di tutti i membri che mostrano il numero di iscrizione, i nomi completi e l'anno di nascita, possiamo utilizzare la funzione stringa SINISTRA per estrarre l'anno di nascita dal campo della data di nascita. Lo script mostrato di seguito ci aiuta a farlo.
SELECT `membership_number`,`full_names`,LEFT(`date_of_birth`,4) AS `year_of_birth` FROM members;
QUI
- "LEFT (` date_of_birth`, 4) " la funzione stringa LEFT accetta la data di nascita come parametro e restituisce solo 4 caratteri da sinistra.
- "AS` year_of_birth` " è il nome dell'alias della colonna che verrà restituito nei nostri risultati. Nota che la parola chiave AS è facoltativa , puoi lasciarla fuori e la query continuerà a funzionare.
L'esecuzione della query precedente nel workbench MySQL su myflixdb ci dà i risultati mostrati di seguito.
numero_appartenenza | full_names | anno di nascita |
---|---|---|
1 | Janet Jones | 1980 |
2 | Janet Smith Jones | 1980 |
3 | Robert Phil | 1989 |
4 | Gloria Williams | 1984 |
SQL utilizzando MySQL Workbench
Ora utilizzeremo MySQL workbench per generare lo script che visualizzerà tutti i nomi dei campi dalla nostra tabella delle categorie.
1. Fare clic con il pulsante destro del mouse sulla tabella delle categorie. Fai clic su "Seleziona righe - Limite 1000"
2. MySQL workbench creerà automaticamente una query SQL e la incollerà nell'editor.
3. Verranno visualizzati i risultati della query
Notare che non abbiamo scritto noi stessi l'istruzione SELECT. MySQL workbench lo ha generato per noi.
Perché usare il comando SELECT SQL quando abbiamo MySQL Workbench?
Ora, potresti pensare perché imparare il comando SQL SELECT per eseguire query sui dati dal database quando puoi semplicemente utilizzare uno strumento come MySQL workbench per ottenere gli stessi risultati senza conoscere il linguaggio SQL. Ovviamente è possibile, ma imparare a usare il comando SELECT offre maggiore flessibilità e controllo sulle istruzioni SQL SELECT .
Il workbench MySQL rientra nella categoria degli strumenti QBE " Query by Example ". Ha lo scopo di aiutare a generare istruzioni SQL più velocemente per aumentare la produttività degli utenti.
L'apprendimento del comando SQL SELECT può consentire di creare query complesse che non possono essere facilmente generate utilizzando le utilità Query by Example come MySQL workbench.
Per migliorare la produttività è possibile generare il codice utilizzando il workbench MySQL, quindi personalizzarlo in base alle proprie esigenze . Questo può accadere solo se capisci come funzionano le istruzioni SQL!
Sommario
- La parola chiave SQL SELECT viene utilizzata per eseguire query sui dati dal database ed è il comando più comunemente utilizzato.
- La forma più semplice ha la sintassi "SELECT * FROM tableName;"
- Le espressioni possono essere utilizzate anche nell'istruzione select. Esempio "SELEZIONA quantità + prezzo DALLE vendite"
- Il comando SQL SELECT può anche avere altri parametri opzionali come WHERE, GROUP BY, HAVING, ORDER BY. Saranno discussi in seguito.
- MySQL workbench può aiutare a sviluppare istruzioni SQL, eseguirle e produrre il risultato di output nella stessa finestra.