Mezi SQL: příklady, popis
Při práci s relačními databázemi, ve kterých jsou data uložena v tabulkové podobě, uživatelé často čelí úkolu vzorkování hodnot, které jsou zahrnuty (nejsou součástí) v určitém rozsahu. Jazyk SQL vám umožňuje zadat sadu, podle které by hodnota neměla (by) patřit různým možnostem - operátor In, operátor Like, kombinace podmínek je méně a také operátor SQL Mezi. Popis a příklady v tomto článku budou věnovány druhé možnosti.
Obsah
Operátor "Mezi" v jazyce SQL: syntaxe, omezení
Operátor mezi SQL je doslovně přeložen "mezi". Jeho použití umožňuje nastavit omezení "Od a do" na konkrétní pole a pokud další hodnota spadá do rozsahu, bude predikát "True" a hodnota skončí v konečném výběru.
Syntaxe operátora je velmi jednoduchá:
Zvolte * Z tabulky t1 Kde t1.n mezi 0 a 7 |
Jak je vidět, po klíčovém slově mezi tím je nutné zadat hodnotu dolní hranice rozsahu, pak AND a hodnotu horní hranice.
Seznamte se s typy dat, s nimiž operátor SQL může pracovat:
- S čísly - celé a částečné.
- S daty.
- S textem.
Tento operátor mezi SQL má určité funkce. Seznamte se s nimi:
- Při práci s čísly a daty jsou ve vzorku zahrnuty hodnoty "From and To".
- Hodnota dolní hranice rozsahu by měla být menší než hodnota horní hranice, jinak nebude nic vydáno, protože podmínka je logicky nepravdivá. Zvláštní pozornost je třeba věnovat tomu, aby proměnné byly zahrnuty do podmínek namísto specifických hodnot.
Při práci s textem nebude hodnota horní hranice rozsahu zahrnutá do vzorku, pokud není specifikována s extrémní přesností. V následujících částech budeme tato funkce brát v úvahu podrobněji.
Výběr čísel a dat v určitém rozsahu
Připravte tabulku s údaji o manažerech pracujících v organizaci. Tabulka bude mít následující strukturu:
Název pole | Typ dat | Popis |
Kód | Počítadlo | Unikátní ID zaměstnance |
Příjmení | Text | Příjmení zaměstnance |
Jméno | Text | Jméno zaměstnance |
Střední jméno | Text | Patronymik zaměstnance |
Sex | Text | Zaměstnanecký sex (M / F) |
Datum příjmu | Datum / čas | Datum přijetí zaměstnance za práci |
Počet dětí | Číselné | Počet dětí od zaměstnance |
Vyplňte tabulku s následujícími údaji:
Kód | Příjmení | Jméno | Střední jméno | Sex | Datum příjmu | Počet dětí |
1 | Alexandrova | Irina | Nikolaevna | F | 05/01/2014 | 1 |
2 | Borovoy | Andrei | Stepanovich | M | 21.2.2013 | 0 |
3 | Vinogradov | Sergey | Pavlovich | M | 15. 5. 1998 | 1 |
4 | Shumilin | Alexander | Borisovič | M | 25.12.2004 | 2 |
5 | Vishnyakov | Leonid | Alexandrovich | M | 09.10.2007 | 0 |
6. | Tropnikov | Vasily | Sergejevič | M | 01/12/2016 | 3 |
7. | Perly | Nikita | Vasilevič | M | 01/11/2017 | 1 |
8. | Avdeev | Nika | Konstantinovna | F | 31.03.2001 | 2 |
9. | Jakovlev | Leonid | Nikolayevich | M | 16.02.2009 | 0 |
Budeme komponovat dotaz SQL mezi, což nám pomůže vybrat si všechny zaměstnance se 2 nebo 3 dětmi:
SELECT Manažeři. * Z manažerů WHERE Managers.Number dětí mezi 2 a 3 roky |
Výsledkem budou tři řádky s údaji o zaměstnancích se jmény Shumilin, Tropnikov a Avdeeva.
Nyní vybereme zaměstnance přijaté od 1. ledna 2005 do 31. prosince 2016. Je třeba poznamenat, že různé DBMS mohou být psány různými způsoby, pokud jde o datum. Ve většině případů datum jednoduše vede k formu den-měsíc-rok (nebo jako pohodlnější) a je napsán v jednoduchých nebo dvojitých uvozovkách. V DBMS MS Access datum je zadáno jako "#". Provedeme příklad jen na jeho základě:
SELECT Manažeři. *, Managers.Date-recepce Z manažerů WHERE Manažeři. Date_receive Mezi # 1/1/2005 # # # 31/12/2016 # |
Výsledkem bude pět zaměstnanců najatých za stanovené období, včetně.
Dále uvidíme, jak funguje SQL s řetězci.
Pracujte mezi řádky
Velmi častým úkolem, se kterým je třeba se zabývat při práci s jmény zaměstnanců, je potřeba vybrat pouze ty, jejichž jména začínají určitým písmenem. Pokusíme se také splnit požadavek a vybrat zaměstnance, jejichž jména začínají příjmením od A do B:
SELECT Manažeři. * Z manažerů WHERE Manažeři Příjmení mezi "A" a "B" OBJEDNÁVKA DO 2 |
Výsledkem je následující:
Kód | Příjmení | Jméno | Střední jméno | Sex | Datum příjmu | Počet dětí |
8. | Avdeev | Nika | Konstantinovna | F | 31.03.2001 | 2 |
1 | Alexandrova | Irina | Nikolaevna | F | 05/01/2014 | 1 |
2 | Borovoy | Andrei | Stepanovich | M | 21.2.2013 | 0 |
Jak vidíte, dva zaměstnanci, kteří mají příjmení s písmenem B, nejsou v seznamu. Jaký je důvod pro to? Otázkou je, jak přesně operátor porovnává řádky s nerovnou délkou. Řádek "B" je kratší než linka "Vinogradov" a je doplněna mezerami. Ale při třídění v abecedním pořadí budou mezery vedoucími symboly a jméno nebude ve vzorku zahrnuto. Různé DBMS nabízejí různá řešení tohoto problému, ale často je nejjednodušší označit následující písmeno abecedy v rozsahu:
SELECT Manažeři. * Z manažerů WHERE Manažeři Jméno mezi písmeny "A" a "G" OBJEDNÁVKA DO 2 |
Po provedení dotazu nás výsledek zcela uspokojí.
Taková nuance existuje pouze při práci s daty o znaku, ale ukazuje, že při práci s takovými jednoduchými operátory jako mezi, musí být opatrný.
- Výkaz Select (SQL)
- Základní příkazy SQL
- Jak psát dotazy SQL - podrobné příklady
- Který operátor poskytuje kód 930? V jakých oblastech lze nalézt?
- Co je podmíněné prohlášení?
- Mobilní operátoři (Ukrajina): kódy. Vývoj trhu mobilních komunikací na Ukrajině
- MySQL vyberte z výběru: operátor vzorkování
- `Úskalí` příkazů DML Aktualizujte MySQL
- SQL Kde: aplikační metody a příklady
- Příkaz SQL INNER JOIN: příklady, syntaxe a funkce
- Co dělá funkce SQL CONCAT?
- Operátor řetězce v Pascalu - řetězec
- Cyklus pro: Pascal pro začátečníky
- Operátor přiřazení v "Pascalu": co je určeno, jaké akce jsou prováděny
- Operátor Velcom - bez problémů nastavuje internet
- Summační funkce v SQL: SUM
- Použití indexOf (jаvascript) při práci s maticemi a řetězci
- Vlookup Excel: jak používat (příklady)
- Vymazat příkaz Delete MySQL
- Jak najdu zbytek dělení v Pythonu?
- PHP konstrukce, pokud jinde: skrytá logika