Datamaskiner, Programmering
Mellom SQL: Eksempler Beskrivelse
Når man arbeider med en relasjonsdatabase i hvilket data er lagret i tabeller, er brukere ofte overfor oppgaven av samplingsverdier som inngår (ikke inkludert) i et bestemt område. SQL språket lar deg definere flere, som skal (bør ikke) tilhører verdien av ulike alternativer - operatør In, som operatør, en kombinasjon av forhold mer - mindre, samt SQL for mellom operatør. Beskrivelse og eksempler i denne artikkelen vil fokusere på den nyeste versjonen.
"Mellom" operator i SQL: Syntax restriksjoner
Bokstavelig talt operatør mellom SQL og oversatt - "i mellom". Dets bruk gjør det mulig å sette en grense "og fra" et bestemt felt, og hvis den neste verdien faller innenfor området, da den predikat vil bli satt til "riktig", og verdien vil falle i den endelige prøven.
Syntaksen operatøren er svært enkel:
Velg * Fra tabellen t1 Hvor t1.n mellom 0 og 7 |
Som du kan se, etter nøkkelordet mellom må du angi verdien av den nedre grensen, da og, og den øvre grensen.
Nummerere, hvilke datatyper operatøren kan arbeide mellom SQL:
- Med tall - heltall og brøk.
- Med datoer.
- Med tekst.
Gjør dette mellom SQL-setningen har visse særegenheter. Vi blir kjent med dem:
- Når du arbeider med tall og datoer for grenseverdier "og fra" inngår i utvalget.
- Minsteverdi må være mindre enn den øvre grensen, ellers ingenting vil bli vist, fordi tilstanden er ikke logisk sant. Spesiell forsiktighet må være, da, i stedet for spesifikke verdier i tilstandsvariabler er inkludert.
Når man arbeider med teksten verdien av det øvre området er ikke inkludert i prøven, dersom den ikke er definert meget nøyaktig. Vi anser denne funksjonen i følgende avsnitt i detalj.
Eksempel på tall og datoer i et bestemt område
Forbered en tabell med dataene ledere, som arbeider i organisasjonen. Tabellen vil ha følgende struktur:
feltnavn | datatype | beskrivelse |
kode | teller | Unik ansatt ID |
etternavn | tekst | Navn på offiser |
navn | tekst | ansatt navn |
patronymic | tekst | patronymic ansatt |
Paul | tekst | Sex personell (M / F) |
Data_priema | Dato / tid | Dato for mottak av den ansatte til å jobbe |
Chislo_detey | nummer | Antall barn på ansatt |
Fyll ut tabellen med følgende data:
kode | etternavn | navn | patronymic | Paul | Data_priema | Chislo_detey |
1 | Alexandrov | Irene | N. | F | 05/01/2014 | 1 |
2 | Borovoy | Andrew | S. | M | 09/21/2013 | 0 |
3 | Vinogradov | Sergei | Pavlovitsj | 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 | 01/12/2016 | 3 |
7 | perler | Nikita | V. | M | 01/11/2017 | 1 |
8 | Avdeeva | Nick | K. | F | 31.03.2001 | 2 |
9 | Yakovlev | Leonid | Nikolaevich | M | 16.02.2009 | 0 |
Danne sql spørring mellom, noe som vil hjelpe oss til å velge alle de ansatte som har 2 eller 3 barn:
SELECT Managers. * fra ledere HVOR Menedzhery.Chislo_detey mellom 2 og 3 |
Resultatet vil være tre rader med data om ansatte med etternavn Shumilin, Tropnikov og Avdeeva.
Nå velger de ansatte fikk fra 1. januar 2005 til 31. desember 2016. Det bør bemerkes at ulike databaser på forskjellige måter lar deg spille inn når det gjelder datoer. I de fleste tilfeller, datoen for en kraft til skjemaet dag-måned-år (eller mer praktisk) og registrert i enkle eller doble anførselstegn. DBMS MS Access dato utgjør skiltet "#". Kjør dette eksemplet er bare basert på det:
SELECT Managers. * Menedzhery.Data_priema fra ledere Der ledere. Data_priema for Mellom # 1/1/2005 # og # 31/12/2016 # |
Resultatet vil være fem ansatte rekruttert i perioden inkluderende.
Neste, la oss se hvordan det fungerer mellom SQL strenger.
Arbeid i mellom strenger
En veldig vanlig problem som må løses når du arbeider med navnene på de ansatte - er behovet for å velge bare de med navn som begynner med en bestemt bokstav. Og vi prøver å utføre søket og velg ansatte med navn som begynner med etternavn fra A til B:
SELECT Managers. * fra ledere HVOR Menedzhery.Familiya mellom "A" og "B" ORDER BY 2 |
Resultatet er som følger:
kode | etternavn | navn | patronymic | Paul | Data_priema | Chislo_detey |
8 | Avdeeva | Nick | K. | F | 31.03.2001 | 2 |
1 | Alexandrov | Irene | N. | F | 05/01/2014 | 1 |
2 | Borovoy | Andrew | S. | M | 09/21/2013 | 0 |
Som du kan se, ble de to ansatte med navnet på bokstaven B i listen er ikke inkludert. Hva er årsaken? Faktum er nøyaktig hvordan operatøren sammen strenger av ulik lengde. Line "B" er kortere streng "Vinogradov" og polstret. Men når du sorterer alfabetisk områder vil være raskere tegn, og navnet på prøven vil ikke falle. Ulike databaser gir ulike måter å løse dette problemet, men det er ofte den enkleste måten å indikere påliteligheten av neste bokstav i området:
SELECT Managers. * fra ledere HVOR Menedzhery.Familiya mellom "A" og "D" ORDER BY 2 |
Når henrettet, vil søkeresultatet tilfredsstille oss helt.
Dette nyanse eksisterer bare når du arbeider med tegndata, men det viser at selv når du arbeider med slike enkle operatører som mellom, må du være forsiktig.
Similar articles
Trending Now