Tra SQL: Esempi Descrizione
Quando si lavora con un database relazionale in cui i dati sono memorizzati in tabelle, gli utenti sono spesso di fronte al compito di valori di campionamento inclusi (non incluse) in un certo intervallo. linguaggio SQL consente di definire più, che dovrebbe (non dovrebbe) appartengono al valore di diverse opzioni – operatore In, come operatore, una combinazione di condizioni più – meno, così come SQL per operatore Tra. Descrizione ed esempi in questo articolo si concentrerà su l'ultima versione.
"Tra" operatore in SQL: restrizioni della sintassi
Letteralmente operatore tra SQL e tradotto – "in mezzo". Il suo utilizzo permette di impostare un limite "e da" un particolare campo, e se il valore successivo rientra nell'intervallo, allora il predicato sarà impostato su "True", e il valore cadrà nel campione finale.
La sintassi dell'operatore è estremamente semplice:
Seleziona * Dalla tabella t1 Dove t1.n tra 0 e 7 |
Come si può vedere, dopo la parola chiave tra voi deve specificare il valore del limite inferiore, quindi E, e il limite superiore.
Enumerare, quali tipi di dati, l'operatore può lavorare tra SQL:
- Con i numeri – intero e frazionata.
- Con date.
- Con il testo.
Fate questo tra istruzione SQL ha alcune peculiarità. Si arriva a conoscerli:
- Quando si lavora con i numeri e le date dei valori limite "e da" sono inclusi nel campione.
- Limite inferiore del campo deve essere inferiore rispetto al limite superiore, altrimenti non verrà visualizzato, perché la condizione non è logicamente vera. Particolare attenzione deve essere, quando, invece di valori specifici nelle variabili di condizione sono inclusi.
Quando si lavora con il valore di testo della gamma superiore non è incluso nel campione, se non è definito in modo molto preciso. Consideriamo questa funzione nelle seguenti sezioni in dettaglio.
numero dei campioni e date in un certo intervallo
Preparare un tavolo con i gestori di dati, che lavora per l'organizzazione. La tabella avrà la seguente struttura:
nome del campo |
tipo di dati |
descrizione |
codice |
contatore |
ID univoco dipendente |
cognome |
testo |
Nome del responsabile |
nome |
testo |
nome del dipendente |
patronimico |
testo |
dipendente patronimico |
Paul |
testo |
personale di Sesso (M / F) |
Data_priema |
Data / ora |
Data di ricevere il dipendente di lavorare |
Chislo_detey |
numero |
Numero di bambini al dipendente |
Compilare la tabella con i seguenti dati:
codice |
cognome |
nome |
patronimico |
Paul |
Data_priema |
Chislo_detey |
1 |
Alexandrov |
Irene |
N. |
F |
2014/05/01 |
1 |
2 |
Borovoy |
Andrew |
S. |
M |
2013/09/21 |
0 |
3 |
Vinogradov |
Sergei |
Pavlovich |
M |
15.06.1998 |
1 |
4 |
Shumilin |
Alexander |
B. |
M |
25.12.2004 |
2 |
5 |
vishnyakov |
Leonid |
A. |
M |
09.10.2007 |
0 |
6 |
Tropnikov |
Vasily |
S. |
M |
2016/01/12 |
3 |
7 |
perle |
nikita |
V. |
M |
2017/01/11 |
1 |
8 |
Avdeeva |
tacca |
K. |
F |
31.03.2001 |
2 |
9 |
Yakovlev |
Leonid |
Nikolaevich |
M |
16.02.2009 |
0 |
Formare la query SQL in mezzo, che ci aiuterà a selezionare tutti i dipendenti che hanno 2 o 3 bambini:
I gestori SELECT. * dei gestori DOVE Menedzhery.Chislo_detey tra 2 e 3 |
Il risultato sarà di tre righe con i dati sui dipendenti con cognomi Shumilin, Tropnikov e Avdeeva.
Ora selezionare i dipendenti hanno ricevuto a partire dal 1 gennaio 2005 al 31 dicembre 2016. Va notato che le diverse banche dati in diversi modi consentono di registrare in termini di date. Nella maggior parte dei casi, la data di una forza alla forma giorno-mese-anno (o più conveniente) e registrato tra virgolette singole o doppie. Il DBMS MS Access data comprendono il segno "#". Eseguire questo esempio è solo basato su di esso:
I gestori SELECT. * Menedzhery.Data_priema dei gestori Dove i manager. Data_priema per Tra # 1/1/2005 # e # # 31/12/2016 |
Il risultato sarà di cinque dipendenti assunti nel corso del periodo compreso.
Quindi, vediamo come funziona tra le stringhe SQL.
Lavorare tra stringhe
Un problema molto comune che deve essere risolto quando si lavora con i nomi dei dipendenti – è la necessità di selezionare solo quelli i cui nomi iniziano con una certa lettera. E cerchiamo di eseguire la query e selezionare i dipendenti i cui nomi iniziano con il cognome da A a B:
I gestori SELECT. * dei gestori DOVE Menedzhery.Familiya tra "A" e "B" ORDER BY 2 |
Il risultato è il seguente:
codice |
cognome |
nome |
patronimico |
Paul |
Data_priema |
Chislo_detey |
8 |
Avdeeva |
tacca |
K. |
F |
31.03.2001 |
2 |
1 |
Alexandrov |
Irene |
N. |
F |
2014/05/01 |
1 |
2 |
Borovoy |
Andrew |
S. |
M |
2013/09/21 |
0 |
Come si può vedere, i due dipendenti con il nome sulla lettera B nella lista non sono stati inclusi. Qual è la ragione? Il fatto è esattamente come l'operatore confronta le stringhe di lunghezza diversa. Linea "B" è più breve stringa "Vinogradov" e imbottito. Ma quando sono ordinati in ordine alfabetico spazi saranno personaggi più veloci, e il nome del campione non cadrà. Diverse banche dati forniscono diversi modi per risolvere questo problema, ma spesso è il modo più semplice per indicare l'affidabilità della successiva lettera dell'alfabeto nella gamma:
I gestori SELECT. * dei gestori DOVE Menedzhery.Familiya tra "A" e "D" ORDER BY 2 |
Quando viene eseguito, il risultato della query sarà ci soddisfa completamente.
Questa sfumatura esiste solo quando si lavora con i dati di carattere, ma dimostra che anche quando si lavora con tali operatori semplici come mezzo, bisogna stare attenti.