1. Sissejuhatus
MySQL-i andmebaasis on üks olulisemaid elemente päringute tõhusaks täitmiseks BETWEEN
-operaator. See operaator on väga mugav, kui on vaja kontrollida, kas andmed kuuluvad kindlasse vahemikku. Seda kasutatakse arvude, kuupäevade ja stringide vahemike määramisel ning see võimaldab andmebaasist otsida ja filtreerida andmeid tõhusalt. Käesolevas artiklis selgitame üksikasjalikult MySQL-i BETWEEN
-operaatori kasutamist, praktilisi näiteid ja tähelepanekuid.
2. BETWEEN operaatori põhistruktuur
Mis on BETWEEN
-operaator
BETWEEN
-operaator on üks tingimustest, mida kasutatakse WHERE
-lausungis, kontrollimaks, kas konkreetse veeru väärtus kuulub määratud vahemikku. Põhistruktuur on järgmine:
SELECT veeru_nimi
FROM tabeli_nimi
WHERE veeru_nimi BETWEEN algväärtus AND lõppväärtus;
Näiteks, kui tabelis on töötajate vanused, saab selle operaatori abil otsida töötajaid teatud vanusevahemikus.
Eitav vorm NOT BETWEEN
Kui on vaja otsida väärtusi, mis ei kuulu määratud vahemikku, kasutatakse eitavat vormi NOT BETWEEN
.
SELECT veeru_nimi
FROM tabeli_nimi
WHERE veeru_nimi NOT BETWEEN algväärtus AND lõppväärtus;
3. Arvude vahemiku määramine
Kuidas kasutada BETWEEN
-operaatorit arvude puhul
BETWEEN
-operaator on väga mugav arvude vahemiku määramisel. Näiteks kui soovite leida töötajaid, kelle palk jääb 50000 ja 100000 vahele, kirjutatakse päring järgmiselt:
SELECT employee_id, name, salary
FROM employees
WHERE salary BETWEEN 50000 AND 100000;
Näidisandmed:
employee_id | name | salary |
---|---|---|
1 | Sato | 45000 |
2 | Suzuki | 55000 |
3 | Takahashi | 75000 |
4 | Tanaka | 120000 |
Tulemus:
employee_id | name | salary |
---|---|---|
2 | Suzuki | 55000 |
3 | Takahashi | 75000 |
Ülaltoodud päringus valitakse ainult töötajad, kelle palk on 50000 ja 100000 vahel.
Erinevus võrdlusoperaatoritega
Sama tingimuse saab kirjutada ka võrdlusoperaatoritega järgmiselt:
SELECT employee_id, name, salary
FROM employees
WHERE salary >= 50000 AND salary <= 100000;
BETWEEN
muudab päringu lihtsamaks ja loetavamaks. Eriti kasulik on see, kui vahemikke on mitu, kuna päring jääb kompaktsem ja arusaadavam.

4. Kuupäevade vahemiku määramine
Kuidas kasutada BETWEEN
-operaatorit kuupäevade puhul
BETWEEN
sobib ka kuupäevade vahemike määramiseks. Näiteks, et otsida tellimusi ajavahemikus 2024-01-01 kuni 2024-12-31, kirjutatakse päring järgmiselt:
SELECT order_id, customer_id, order_date
FROM orders
WHERE order_date BETWEEN '2024-01-01' AND '2024-12-31';
Näidisandmed:
order_id | customer_id | order_date |
---|---|---|
1 | 101 | 2024-01-15 |
2 | 102 | 2024-05-30 |
3 | 103 | 2025-03-01 |
Tulemus:
order_id | customer_id | order_date |
---|---|---|
1 | 101 | 2024-01-15 |
2 | 102 | 2024-05-30 |
Nagu näha, tagastab BETWEEN
-operaator ainult need andmed, mis jäävad määratud kuupäevavahemikku.
Ajaandmete käsitlemine
Kui kuupäeva veerus on ka kellaajad (nt DATETIME
-tüüp), tuleb olla ettevaatlik. Näiteks kui kasutatakse BETWEEN
-tingimust, hõlmab see alguskuupäeva 00:00:00-st kuni lõppkuupäeva 23:59:59-ni.
WHERE order_date BETWEEN '2024-01-01 00:00:00' AND '2024-12-31 23:59:59';
5. Stringide vahemiku määramine
Kuidas kasutada BETWEEN
-operaatorit stringide puhul
BETWEEN
-operaatorit saab kasutada ka tekstiväljade puhul. Näiteks, et leida tooted, mille nimi algab tähtede vahemikus ‘A’ kuni ‘M’, kirjutatakse päring järgmiselt:
SELECT product_id, product_name
FROM products
WHERE product_name BETWEEN 'A' AND 'M';
Näidisandmed:
product_id | product_name |
---|---|
1 | Apple |
2 | Banana |
3 | Mango |
4 | Orange |
Tulemus:
product_id | product_name |
---|---|
1 | Apple |
2 | Banana |
3 | Mango |
Tähelepanek tähestikulise järjestuse kohta
Stringide puhul eeldatakse, et need on tähestikulises järjekorras. Samuti võib mõnes andmebaasis eristada suuri ja väikesi tähti, seega tuleb seda seadistamisel arvestada. Näiteks 'a'
ja 'A'
võivad olla erinevad väärtused.
6. BETWEEN operaatori tähelepanekud
Vahemiku määramise tähelepanekud
BETWEEN
-operaatori kasutamisel tuleb jälgida väärtuste järjekorda. Kui algväärtus on suurem kui lõppväärtus, võib tulemus olla ootamatu.
SELECT * FROM table_name WHERE column_name BETWEEN 100 AND 50; -- ootamatu tulemus
Samuti tuleb meeles pidada, et BETWEEN
sisaldab mõlemat äärmusväärtust (algus ja lõpp).
Indeksite kasutamine ja efektiivsus
BETWEEN
-operaator töötab sama jõudlusega nagu tavalised võrdlusoperaatorid. Kuid päringute optimeerimiseks on soovitatav kasutada indekseid. Näiteks kui kuupäeva veerule on seatud indeks, kiireneb kuupäevavahemiku päring märgatavalt.
7. Praktilised päringud ja kasutusnäited
Mitme veeru kasutamine koos BETWEEN-iga
BETWEEN
-operaatorit saab kasutada ka mitmel veerul korraga. Näiteks kui soovite otsida tooteid, mille hind ja laoseis jäävad kindlatesse vahemikesse:
SELECT product_name, price, stock
FROM products
WHERE price BETWEEN 1000 AND 5000
AND stock BETWEEN 50 AND 200;
See päring tagastab ainult need tooted, mille hind on 1000–5000 ja laoseis 50–200.
NOT BETWEEN
kasutamine
NOT BETWEEN
võimaldab otsida väärtusi, mis jäävad väljapoole määratud vahemikku. Näiteks, et leida töötajaid, kelle palk on alla 50000 või üle 100000:
SELECT employee_id, name, salary
FROM employees
WHERE salary NOT BETWEEN 50000 AND 100000;
Tulemus:
employee_id | name | salary |
---|---|---|
1 | Sato | 45000 |
4 | Tanaka | 120000 |
8. Päringu visuaalne näide
Tulemusi saab illustreerida ka lihtsate skeemidega. Näiteks:
Hinnavahemik: [----- 1000 ---- 5000 -----]
Toode A hind: 3000 (vahemikus)
Toode B hind: 6000 (väljas)
Skeemi abil on lihtsam intuitiivselt mõista, kas väärtus kuulub vahemikku või mitte.
9. Kokkuvõte
BETWEEN
-operaator on väga kasulik tööriist MySQL-is vahemikupõhiste päringute tegemiseks. Seda saab rakendada arvudele, kuupäevadele ja stringidele, tehes päringud lihtsamaks ja tõhusamaks. Siiski tuleb arvestada, et operaator sisaldab mõlemat äärmust ning et indeksite kasutamine parandab jõudlust. Nende teadmistega saab andmebaasipäringuid optimeerida ja vajalikud andmed kiiresti kätte.
10. Viited
Täpsemate juhiste saamiseks soovitatakse tutvuda MySQL-i ametliku dokumentatsiooni ja spetsialiseeritud andmebaasiraamatutega. Samuti on kasulik ise päringuid testida, et paremini mõista BETWEEN
-operaatori käitumist.