Datorer, Programmering
Mellan SQL: Exempel Beskrivning
När du arbetar med en relationsdatabas där data lagras i tabeller, användarna ofta inför uppgiften att samplingsvärden ingår (ingår ej) i ett visst intervall. SQL-språket kan du definiera flera, vilket bör (inte borde) hör till värdet av olika alternativ - operatör, som operatör, en kombination av villkor som är mer - mindre, liksom SQL för Between operatör. Beskrivning och exempel i denna artikel kommer att fokusera på den senaste versionen.
"mellan" operatör i SQL: Syntax begränsningar
Bokstavligen operatör mellan SQL och översatt - "mellan". Dess användning gör det möjligt att sätta en gräns "och från" ett visst område, och om nästa värde faller inom intervallet, då predikatet kommer att sättas till "True" och värdet kommer att falla i det slutliga provet.
Syntaxen för operatören är mycket enkel:
Välj * Från tabell t1 Där t1.n mellan 0 och 7 |
Som ni ser, efter nyckelordet mellan måste du ange värdet på den undre gränsen, då och, och den övre gränsen.
Räkna, vilka typer av data operatören kan arbeta mellan SQL:
- Med siffror - heltal och fraktionerad.
- Med datum.
- Med text.
Gör detta mellan SQL-sats har vissa egenheter. Vi lär känna dem:
- När man arbetar med siffror och datum för gränsvärden "och från" ingår i urvalet.
- Lägre intervallet Värdet måste vara mindre än den övre gränsen, annars ingenting kommer att visas, eftersom villkoret inte är logiskt sant. Särskild försiktighet måste vara, då, i stället för specifika värden i det skick variabler ingår.
När du arbetar med textvärdet av det övre området inte ingick i urvalet, om det inte är definierat mycket noggrant. Vi anser att denna funktion i de följande avsnitten i detalj.
Provnummer och datum i ett visst intervall
Förbered en tabell med dataansvariga, som arbetar i organisationen. Tabellen kommer att ha följande struktur:
fältnamn | datatyp | beskrivning |
kod | räknare | Unikt anställd ID |
efternamn | text | Namn på officer |
namn | text | anställdes namn |
patronymikon | text | patronymikon anställd |
Paul | text | Köns personal (M / K) |
Data_priema | Datum / Tid | Efter mottagandet av den anställde att arbeta |
Chislo_detey | nummer | Antal barn på den anställde |
Fyll i tabellen med följande uppgifter:
kod | efternamn | namn | patronymikon | 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 | pärlor | Nikita | V. | M | 2017/01/11 | 1 |
8 | Avdeeva | Nick | K. | F | 2001/03/31 | 2 |
9 | Jakovlev | Leonid | Nikolaevich | M | 16.02.2009 | 0 |
Forma SQL-fråga mellan, vilket kommer att hjälpa oss att välja alla anställda som har 2 eller 3 barn:
SELECT Managers. * från chefer VAR Menedzhery.Chislo_detey mellan 2 och 3 |
Resultatet kommer att vara tre rader med uppgifter om anställda med efternamn Shumilin, Tropnikov och Avdeeva.
Nu väljer de anställda fått från den 1 januari 2005 till 31 december 2016. Det bör noteras att olika databaser på olika sätt kan du spela in när det gäller datum. I de flesta fall, den dag då en kraft på formen dag-månad-år (eller mer bekvämt) och registreras i enkla eller dubbla citattecken. Den DBMS MS Access datum utgör skylten "#". Kör detta exempel bara bygger på det:
SELECT chefer. * Menedzhery.Data_priema från chefer Där chefer. Data_priema för Between # 2005/01/01 # Och # 31/12/2016 # |
Resultatet blir fem anställda rekryteras under perioden inclusive.
Nästa, låt oss se hur det fungerar mellan SQL strängar.
Arbetet mellan strängar
Ett mycket vanligt problem som måste lösas när man arbetar med namnen på de anställda - är behovet av att välja endast de vars namn börjar med en viss bokstav. Och vi försöker köra frågan och välj anställda vars namn börjar med efternamnet från A till B:
SELECT Managers. * från chefer VAR Menedzhery.Familiya mellan "A" och "B" ORDER BY 2 |
Resultatet är som följer:
kod | efternamn | namn | patronymikon | 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 ni ser, de två anställda med namnet på bokstaven B i listan ingår inte. Vad är orsaken? Faktum är exakt hur operatören jämför strängar av olika längd. Line "B" är kortare strängen "Vinogradov" och vadderad. Men vid sortering i bokstavsordning utrymmen kommer att bli snabbare tecken och namnet på provet kommer inte att falla. Olika databaser ger olika sätt att lösa detta problem, men det är ofta det enklaste sättet att indikera tillförlitligheten i nästa bokstav i alfabetet i intervallet:
SELECT Managers. * från chefer VAR Menedzhery.Familiya mellan "A" och "D" ORDER BY 2 |
När den körs, kommer frågan resultat tillfredsställa oss helt.
Denna nyans existerar endast när man arbetar med teckendata, men det visar att även när man arbetar med så enkla operatörer som mellan, du måste vara försiktig.
Similar articles
Trending Now