Rekenaars, Programmering
Tussen SQL: Voorbeelde beskrywing
By die werk met 'n relasionele databasis waarop data gestoor word in tabelle, word gebruikers dikwels gekonfronteer met die taak van steekproefneming waardes ingesluit (nie ingesluit) in 'n sekere reeks. SQL taal kan u verskeie definieer, wat (moet nie) moet behoort aan die waarde van verskillende opsies - operateur In, Soos operateur, 'n kombinasie van omstandighede meer - minder, sowel as SQL vir Tussen operateur. Beskrywing en voorbeelde in hierdie artikel sal fokus op die nuutste weergawe.
"Tussen" operateur in SQL: beperkings Syntax
Letterlik operateur tussen SQL en vertaal - "tussenin". Die gebruik daarvan maak dit moontlik om 'n beperking te stel "en van" n spesifieke veld, en as die volgende waarde binne die omvang val, dan is die gesegde sal ingestel word om "Ware", en die waarde daarvan sal in die finale monster val.
Die sintaksis van die operateur is baie eenvoudig:
Kies * Van tafel T1 Waar t1.n tussen 0 en 7 |
Soos jy kan sien, nadat die navraag tussen jou moet die waarde van die onderste grens spesifiseer, en dan, en die boonste perk.
Opsom, watter tipe van data die operateur kan werk tussen SQL:
- Met nommers - heelgetal en fraksionele.
- Met datums.
- Met teks.
Doen dit tussen SQL-stelling het sekere eienaardighede. Ons kry om hulle te leer ken:
- By die werk met getalle en datums van limiet waardes "en van" ingesluit in die monster.
- Laer range waarde moet minder as die boonste perk wees, anders niks sal vertoon word, omdat die toestand is nie logies waar. Spesiale sorg moet wees, wanneer, in plaas van spesifieke waardes in die toestand veranderlikes ingesluit.
By die werk met die teks waarde van die boonste reeks is nie ingesluit in die monster, as dit nie baie akkuraat is gedefinieer. Ons is van mening hierdie funksie in die volgende afdelings in detail.
Monster nommers en datums in 'n sekere reeks
'N tafel dek met die data bestuurders, werk in die organisasie. Die tabel sal die volgende struktuur:
naam in die veld | datatipe | beskrywing |
kode | counter | Unieke werknemer ID |
Van | teks | Naam van beampte |
naam | teks | naam werknemer |
patronymicum | teks | patronymicum werknemer |
Paul | teks | Seks personeel (M / F) |
Data_priema | Datum / Tyd | Datum van ontvangs van die werknemer om te werk |
Chislo_detey | aantal | Aantal kinders by die werknemer |
Vul in die tabel deur die volgende data:
kode | Van | naam | patronymicum | 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 | 2007/09/10 | 0 |
6 | Tropnikov | Vasily | S. | M | 2016/01/12 | 3 |
7 | pêrels | Nikita | V. | M | 2017/01/11 | 1 |
8 | Avdeeva | Nick | K. | F | 2001/03/31 | 2 |
9 | Yakovlev | Leonid | Nikolaevich | M | 2009/02/16 | 0 |
Vorm die sql query tussen, wat sal help om al die werknemers wat 2 of 3 kinders kies:
SELECT Managers. * van bestuurders WAAR Menedzhery.Chislo_detey tussen 2 en 3 |
Die gevolg sal wees drie rye met data op werknemers met vanne Shumilin, Tropnikov en Avdeeva.
Kies nou die werknemers ontvang vanaf 1 Januarie 2005 tot 31 Desember 2016. Dit sal opgemerk word dat verskillende databasisse op verskillende maniere kan jy teken in terme van datums. In die meeste gevalle, die datum van 'n krag om die vorm dag-maand-jaar (of meer gerieflik) en aangeteken in 'n enkele of dubbele aanhalingstekens. Die DBMS MS Access datum bestaan die teken "#". Begin hierdie voorbeeld is net daarop gebaseer is:
SELECT Managers. * Menedzhery.Data_priema van bestuurders WAAR Bestuurders. Data_priema vir Tussen # 2005/01/01 # En # 31/12/2016 # |
Die gevolg sal wees vyf werknemers gewerf gedurende die tydperk ingesluit.
Volgende, laat ons sien hoe dit werk tussen SQL snare.
Werk in tussen snare
'N Baie algemene probleem wat opgelos moet word wanneer daar met die name van werknemers - is die behoefte om slegs diegene wie se name begin met 'n sekere brief te kies. En ons probeer om die navraag en kies werknemers wie se name begin met die laaste naam van A na B te voer:
SELECT Managers. * van bestuurders WAAR Menedzhery.Familiya tussen "A" en "B" ORDER BY 2 |
Die resultaat is soos volg:
kode | Van | naam | patronymicum | 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 |
Soos jy kan sien, is die twee werknemers met die naam op die letter B in die lys nie ingesluit. Wat is die rede? Die feit is presies hoe die operateur vergelyk snare van ongelyke lengte. Lyn "B" is korter string "Vinogradov" en opgestopte. Maar wanneer alfabeties sorteer ruimtes sal wees vinniger karakters, en die naam van die monster sal nie val nie. Verskillende databasisse bied verskillende maniere om hierdie probleem op te los, maar dit is dikwels die maklikste manier om die betroubaarheid van die volgende letter van die alfabet in die reeks aan te dui:
SELECT Managers. * van bestuurders WAAR Menedzhery.Familiya tussen "A" en "D" ORDER BY 2 |
Wanneer dit uitgevoer word, sal die soektog resultaat ons heeltemal tevrede te stel.
Hierdie nuanse bestaan net vir die werk met karakter data, maar dit blyk dat selfs wanneer daar gewerk word met so 'n eenvoudige operateurs as tussen, jy moet versigtig wees.
Similar articles
Trending Now