SQL LIKE, IN, BETWEEN operatorlari

LIKE operatori

SQL tilida LIKE operatori biror bir shablondagi qiymatni topish uchun WHERE kalit so'zi bilan ishlatiladi. LIKE operatori bilan ko'pincha 2 xil turdagi usul (wildcard) ishlatiladi:

  • Foiz (%) belgisi, nol, bir yoki bir nechta belgilarni bildiradi;
  • Tagchiziq (_) belgisi faqatgina bitta belgini bildiradi.
Eslatma: MS Access foiz (%) belgisi o'rniga asterisk (*) belgisidan, tagchiziq (_) o'rniga so'roq (?) belgisidan foydalanadi.

Shuningdek, ushbu belgilar (wildcard) so'rovda birgalikda qo'llanilishi mumkin.

LIKE operatorini sintaksisi quyidagicha:

SELECT ustun1, ustun2, .. FROM jadval_nomi WHERE ustun LIKE shablon;

Quyida shu wildcard (belgilar) ishtirokida bir nechta kombinatsiyali misollarni ko'rib chiqamiz.

  • WHERE XaridorIsmi LIKE 'a%' - 'a' harfi bilan boshlangan hamma qiymatlarni topadi.
  • WHERE XaridorIsmi LIKE '%a' - 'a' harfi bilan tugaydigan hamma qiymatlarni topadi.
  • WHERE XaridorIsmi LIKE '%la%' - 'la' birikmasi qatnashgan hamma qiymatlarni topadi.
  • WHERE XaridorIsmi LIKE '_r%' - ikkinchi harfi 'r' bo'lgan hamma qiymatlarni topadi.
  • WHERE XaridorIsmi LIKE 'b_%' - 'b' harfi bilan boshlanadigan va kamida 2 ta harfdan iborat hamma qiymatlarni topadi.
  • WHERE XaridorIsmi LIKE 'b__%' - 'b' harfi bilan boshlanadigan va kamida 3 ta harfdan iborat hamma qiymatlarni topadi.
  • WHERE XaridorIsmi LIKE 'd%a' - 'd' harfi bilan boshlanadigan va 'a' harfi bilan tugaydigan hamma qiymatlarni topadi.

Masalan, quyidagi jadvaldan bosh harfi 'a' bo'lgan ismlarga ega qatorlarni chop etamiz.

SELECT * FROM Xaridorlar WHERE XaridorIsmi LIKE '%a';

IN operatori

IN operatori WHERE operatorida bir nechta ustunlarni aniqlashtirish uchun ishlatiladi. IN operatori bir nechta OR shartlarining qisqacha shakli hisoblanadi.

IN operatorining 2 xil sintaksisi mavjud:

SELECT ustun_nom(lar)i FROM jadval_nomi WHERE ustun_nomi IN (qiymat1, qiymat2, ...);
yoki
SELECT ustun_nom(lar)i FROM jadval_nomi WHERE ustun_nomi IN (SELECT IFODA);

Keling, yuqoridagi jadvaldan yoshi 25 yoki 23 yoki 18 bo'lgan xaridorlarni topamiz.

SELECT * FROM Xaridorlar WHERE XaridorYoshi IN (25, 23, 18);

BETWEEN operatori

BETWEEN operatori berilgan oraliqdagi qiymatlarni tanlash uchun ishlatiladi. Qiymatlar son, satr yoki sana-vaqt bo'lishi mumkin. Sintaksisi quyidagicha:

SELECT ustun_nom(lar)i FROM jadval_nomi WHERE ustun_nomi  BETWEEN qiymat1 AND qiymat2;

Endi bir nechta oddiy va murakkab so'rovlar yozamiz. Dastlab yuqoridagi jadvaldan yoshi 25 va 30 orasidagi xaridorlarni topadigan SQL so'rov yozamiz.

SELECT * FROM Xaridorlar WHERE XaridorYoshi BETWEEN 25 AND 30;

Keling endi yoshi 18 va 25 orasidagi va websayti 'uzbekdevs.uz' yoki 'blogpost.uz' bo'lgan xaridorlarni BETWEEN va IN operatorlari yordamida topamiz.

SELECT * FROM Xaridorlar WHERE XaridorYoshi BETWEEN 18 AND 25 AND Websayt IN ('uzbekdevs.uz', 'blogpost.uz');