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');