L'istruzione Select (SQL)
La traduzione dell'abbreviazione SQL (strutturalmente parlandoquery organizzate) riflette il fatto che le query sono l'elemento più utilizzato in SQL. Selezionare le righe necessarie, escludere automaticamente i dati ridondanti, saltare o riordinare le colonne aiuterà Select (SQL) - un operatore che dice al DBMS di produrre determinate informazioni.
Sintassi dell'operatore
Per utilizzare correttamente qualsiasi operatore,Innanzitutto, è necessario familiarizzare con la sintassi del linguaggio di programmazione. Quando parliamo specificamente del linguaggio SQL, Select (operator) ha la seguente sintassi:
selezionare | Dice al database che stiamo trasmettendo la richiesta. Questa è la parola chiave. |
Uno, due, tre ... | Elenco di colonne per l'output |
da | Indica il nome della tabella da cui selezionare i dati. È anche una parola chiave obbligatoria. |
Questa è la cosiddetta sintassi "breve" dell'operatore, ma ci indica che senza le parole chiave Select e dal DBMS, la nostra query non verrà eseguita.
La sintassi completa dell'operatore è mostrata nella seguente figura:
Qui, la clausola Where consente di affinare la ricerca specificando una condizione.
Per raggruppare i valori e applicare loro una funzione di aggregazione, viene utilizzata la clausola Group by e per rifinire il risultato dopo il raggruppamento viene utilizzata la proposta Having.
Ordina per consentirà di ordinare i valori delle colonne selezionate in ordine crescente o decrescente.
Per comprendere meglio l'istruzione Select, immaginiamo che il nostro database abbia la seguente tabella Gatti con le informazioni:
Id | razza | nome | compleanno | colore |
1 | coda mozza | signore | 01.04.2017 | grigio |
2 | Curl | finta | 16.03.2017 | bianco |
3 | Mau | pantera | 30.03.2017 | nero |
4 | coda mozza | Tyson | 23.02.2017 | grigio |
5 | Burmilla | Athena | 08.01.2017 | nero |
Ogni riga della tabella contiene un numero univocogattino, la sua razza, soprannome, data di nascita e colorazione. Successivamente, considereremo come funziona l'operatore Select (SQL), in base ai dati di questa tabella.
Come selezionare i dati da una tabella
Come discusso sopra, le parole chiave vengono sempre utilizzate per selezionare le informazioni giuste dalla tabella.
Dopo la parola chiave Select, vengono specificate le colonne per l'output. Puoi fare una lista delle colonne richieste separate da una virgola, quindi l'intera struttura sarà simile a questa:
Seleziona colore, razza, nome Dai gatti |
Come puoi vedere, possiamo organizzare le colonne nell'ordine in cui sono necessarie. Inoltre, possiamo visualizzare solo le colonne di cui abbiamo bisogno.
C'è anche una breve voce per visualizzare tutte le colonne nella tabella. Per fare ciò, dopo la selezione, un asterisco (*) viene indicato con uno spazio. L'intero design sarà simile a questo:
Seleziona * Dai gatti |
Il risultato della query precedente è l'intera tabella Cats, presentata come appare alla fine dell'ultima sezione.
Molti sono interessati a come posizionarerisultati dell'esecuzione in SQL Selezionare in una stringa. Molto spesso questo è richiesto quando è necessario combinare il cognome, il nome e il patronimico della persona, posti in colonne separate.
Nel nostro caso, combineremo la razza e il colore dei gatti dala tabella dei gatti. La sfumatura è che diversi DBMS usano caratteri diversi per la concatenazione di stringhe. In alcuni casi, questo è semplicemente un plus (+), in altri: una doppia linea (||) o una e commerciale (&), a volte viene utilizzato un operando Concat. Pertanto, prima di unire, è necessario leggere l'annotazione sul particolare DBMS con cui si sta lavorando.
Seleziona razza || ',' || colore Dai gatti |
Il risultato è il seguente:
Razza, colore |
Bobtail, grigio |
Curl, bianco |
Mau, nero |
Bobtail, grigio |
Burmilla, nero |
Eliminazione di dati ridondanti
Distinct - function Select (SQL), che consente di escludere la duplicazione di linee assolutamente identiche dal risultato della selezione.
Ad esempio, vogliamo scoprire quali gatti sono nella nostra tabella. Se usiamo una query semplice:
Seleziona razza Dai gatti |
Che riceveremo un risultato abbastanza atteso:
razza |
coda mozza |
Curl |
Mau |
coda mozza |
Burmilla |
Come puoi vedere, la razza Bobtail è duplicata due volte. Argument Distinct eliminerà la duplicazione, è sufficiente solo per completare la query:
Seleziona razza distinta Dai gatti |
Affina la tua richiesta
In realtà, quasi nessuna query restituisce i dati come un set completo di righe di tabella. Consideriamo, quale frase in Select (SQL) consentirà di impostare i criteri per selezionare solo le righe necessarie.
Questo è doveIn questa frase, viene utilizzato un predicato: un'espressione condizionale che fornisce all'output il valore "true" o "false". L'istruzione Select recupera solo quei dati dalla tabella per cui l'espressione condizionale sarà True o "true".
Aiuterà a risolvere questo progetto con un semplice esempio. Diciamo che vogliamo sapere tutto sui gatti di colore nero.
Seleziona * Dai gatti Dove color = 'Black' |
Il risultato di questa query sarà le seguenti righe della tabella:
3 | Mau | pantera | 30.03.2017 | nero |
5 | Burmilla | Athena | 08.01.2017 | nero |
Puoi anche combinare le condizioni usando gli operatori di logica And, Or e Not.
Raggruppa per
La clausola Group by, utilizzata in Select (SQL), consente di raggruppare le query in base al valore di una particolare colonna (o colonne) e quindi di applicare loro la funzione di aggregazione.
Le funzioni aggregate includono:
- Conta: calcola il numero di righe selezionate dalla query.
- Somma è la somma aritmetica di tutti i valori di colonna selezionati.
- Min: stampa il minimo dei valori di colonna selezionati.
- Max - rispettivamente, il massimo dei valori di colonna selezionati.
- Medio è la media
Lo schema di questa proposta è il più semplicecapire con un esempio concreto. Diciamo che vogliamo sapere quanti gattini di ogni razza abbiamo. Per fare ciò, è necessario generare la seguente semplice query:
Seleziona razza, conta (*) Dai gatti Raggruppa per razza |
Il risultato è la seguente tabella:
razza | contare |
coda mozza | 2 |
Curl | 1 |
Mau | 1 |
Burmilla | 1 |
Come puoi vedere, abbiamo due gattini Bobtail,Il resto di tutti solo uno. In pratica, per una tale richiesta, basata sulla nostra tabella, l'allevatore può capire quali razze sono richieste dai compratori e quali no.
È probabile che a causa della grande quantitài record in una tabella reale vogliono chiarire la query e ritirare solo quelle razze di gattini, che non vengono più lasciati, ad esempio, dieci. Per perfezionare o filtrare i gruppi, utilizzare l'istruzione Avere. Ti consente di eliminare determinati gruppi, in modo simile alla clausola Where, che elimina le singole righe. La condizione è data dalla funzione aggregata. Aggiungiamo la query:
Seleziona razza, conta (*) Dai gatti Raggruppa per razza Avere conteggio (*) <= 10 |
Poiché la condizione che impostiamo è "il numero di gattiniogni razza non è più di 10 ", quindi il risultato è lo stesso dell'esempio senza specifica. Ma qui è importante capire lo schema stesso del lavoro della proposta Avere. Ma se cambiamo la condizione logica in Conteggio (*) = 1, il risultato sarà ridotto a tre righe e restituirà la razza di gattini, che sono rimasti solo uno.
ordinamento
Facciamo conoscenza con Order by - il suggerimento dell'operatore Select (SQL), che ci consente di ordinare le linee di output aumentando o diminuendo i valori in una o più colonne.
È importante ricordare che Order by è la frase finale dell'intero costrutto dell'istruzione Select. Viene posizionato dopo Seleziona, Da, Dove, Raggruppa per, Avere.
Durante l'ordinamento, ci sono tre punti importanti:
1) È possibile specificare un numero qualsiasi di colonne, ognuna delle quali può essere ordinata singolarmente ascendente (ASC) o discendente (DESC).
2) Tutte le colonne specificate nella clausola Order by devono essere presenti tra le colonne selezionate in Seleziona.
3) Non è necessario elencare i nomi di colonne specifici per l'ordinamento, è sufficiente specificare i loro numeri, sotto i quali vanno nella dichiarazione Select.
Speriamo che con l'aiuto di questo articolo tu abbia ricevuto le conoscenze di base sull'utilizzo delle query SQL e ora puoi facilmente selezionare le informazioni necessarie dal tuo DBMS.