Computere, Programmering
Mellem SQL: Examples Beskrivelse
Når man arbejder med en relationel database, hvor data gemmes i tabeller, er brugerne ofte konfronteret med den opgave at sampling-værdierne er inkluderet (ikke inkluderet) i et bestemt interval. SQL-sproget kan du definere flere, som skal (bør ikke) hører til værdien af forskellige muligheder - operatør I, Ligesom operatør, en kombination af tilstande mere - mindre, samt SQL til Mellem operatør. Beskrivelse og eksempler i denne artikel vil fokusere på den nyeste version.
"Mellem" operatør i SQL: Syntaks restriktioner
Bogstaveligt talt operatør mellem SQL og oversat - "i mellem". Dens anvendelse gør det muligt at sætte en grænse "og fra" et bestemt område, og hvis den næste værdi falder inden for området, så prædikatet vil blive sat til "True", og værdien vil falde i den endelige prøve.
Syntaksen for operatøren er meget enkel:
Vælg * Fra tabel t1 Hvor t1.n mellem 0 og 7 |
Som du kan se, efter nøgleordet mellem dig skal angive værdien af den nedre grænse, da OG, og den øvre grænse.
Opregne, hvilke typer af data operatøren kan arbejde mellem SQL:
- Med tal - heltal og fraktioneret.
- Med datoer.
- Med tekst.
Gør dette mellem SQL-sætning har visse særegenheder. Vi lærer dem at kende:
- Når man arbejder med numre og datoer for grænseværdier "og fra" indgår i prøven.
- Lavere rækkevidde værdi skal være mindre end den øvre grænse, ellers intet vil blive vist, fordi betingelsen er ikke logisk sandt. Særlig omhu skal være, når, i stedet for specifikke værdier i den stand variabler er inkluderet.
Når man arbejder med tekst værdien af det øvre område er ikke inkluderet i stikprøven, hvis det ikke er defineret meget præcist. Vi anser denne funktion i de følgende afsnit i detaljer.
Sample numre og datoer i et bestemt interval
Forbered et bord med data ledere, der arbejder i organisationen. Tabellen vil have den følgende struktur:
feltnavn | datatype | beskrivelse |
kode | skranke | Unikt medarbejder ID |
efternavn | tekst | Navn på officer |
navn | tekst | medarbejder navn |
efternavn | tekst | efternavn medarbejder |
Paul | tekst | Sex personale (M / F) |
Data_priema | Dato / tid | Dato for modtagelse af den ansatte til at arbejde |
Chislo_detey | nummer | Antal børn på medarbejderen |
Udfyld skemaet med følgende data:
kode | efternavn | navn | efternavn | 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 | 1998/06/15 | 1 |
4 | Shumilin | Alexander | B. | M | 2004/12/25 | 2 |
5 | Vishnyakov | Leonid | A. | M | 09.10.2007 | 0 |
6 | Tropnikov | Vasily | S. | M | 2016/01/12 | 3 |
7 | perler | Nikita | V. | M | 2017/01/11 | 1 |
8 | Avdeeva | Nick | K. | F | 2001/03/31 | 2 |
9 | Yakovlev | Leonid | Nikolaevich | M | 16.02.2009 | 0 |
Form sql forespørgslen mellem, som vil hjælpe os med at vælge alle de ansatte, der har 2 eller 3 børn:
SELECT Managers. * FRA Managers HVOR Menedzhery.Chislo_detey mellem 2 og 3 |
Resultatet vil være tre rækker med data om medarbejdere med efternavne Shumilin, Tropnikov og Avdeeva.
Vælg nu de ansatte modtaget fra 1. januar 2005 til 31. december 2016. Det skal bemærkes, at forskellige databaser på forskellige måder giver dig mulighed for at optage i form af datoer. I de fleste tilfælde datoen for en kraft til formularen dag-måned-år (eller mere praktisk) og registreres i enkelte eller dobbelte anførselstegn. Den DBMS MS Access dato omfatter tegnet "#". Kør dette eksempel er blot baseret på det:
SELECT Managers. * Menedzhery.Data_priema FRA Managers HVOR Managers. Data_priema til Mellem # 2005/01/01 # Og # 31.12.2016 # |
Resultatet vil være fem ansatte, som ansættes i perioden inklusive.
Næste, lad os se, hvordan det fungerer mellem SQL strenge.
Arbejde i mellem strenge
Et meget almindeligt problem, som skal løses, når der arbejdes med navnene på de ansatte - er behovet kun dem, hvis navn begynder med et bestemt bogstav for at vælge. Og vi forsøger at udføre forespørgslen og vælge medarbejdere, hvis navn begynder med det sidste navn fra A til B:
SELECT Managers. * FRA Managers HVOR Menedzhery.Familiya mellem "A" og "B" ORDER BY 2 |
Resultatet er som følger:
kode | efternavn | navn | efternavn | Paul | Data_priema | Chislo_detey |
8 | Avdeeva | Nick | K. | F | 2001/03/31 | 2 |
1 | Alexandrov | Irene | N. | F | 2014/05/01 | 1 |
2 | Borovoy | Andrew | S. | M | 2013/09/21 | 0 |
Som du kan se, blev de to medarbejdere med navnet på bogstavet B i listen ikke inkluderet. Hvad er årsagen? Faktum er præcis, hvordan operatøren sammenligner strenge af ulige længde. Line "B" er kortere snor "Vinogradov" og polstret. Men når sortering alfabetisk rum bliver hurtigere tegn, og navnet på prøven vil ikke falde. Forskellige databaser giver forskellige måder at løse dette problem, men det er ofte den nemmeste måde at angive pålideligheden af den næste bogstav i alfabetet i området:
SELECT Managers. * FRA Managers HVOR Menedzhery.Familiya mellem "A" og "D" ORDER BY 2 |
Når henrettet, vil forespørgslen resultat tilfredsstille os fuldstændigt.
Denne nuance eksisterer kun, når der arbejdes med tegn data, men det viser, at selv når der arbejdes med sådanne enkle operatører som mellem, er du nødt til at være forsigtig.
Similar articles
Trending Now