Pythonda SQL so'rovlarida mantiqiy amallar
Tanlov shartida OR va
AND buyruqlari yordamida murakkabroq
kombinatsiyalar qilish mumkin. Ular if
Pythondagi o'xshashlariga o'xshash ishlaydi.
Keling, misollar orqali ko'rib chiqaylik.
Misol
Maoshi 500 VA
yoshi 23 bo'lgan foydalanuvchilarni tanlaymiz:
query = "SELECT * FROM users WHERE salary=500 AND age=23"
Bajarilgan kod natijasi:
{'id': 3, 'name': 'user3', 'age': 23, 'salary': 500}
Misol
Maoshi 500 YOKI
yoshi 23 bo'lgan foydalanuvchilarni tanlaymiz:
query = "SELECT * FROM users WHERE salary=500 OR age=23"
Bajarilgan kod natijasi:
{'id': 1, 'name': 'user1', 'age': 23, 'salary': 400}
{'id': 2, 'name': 'user2', 'age': 25, 'salary': 500}
{'id': 3, 'name': 'user3', 'age': 23, 'salary': 500}
{'id': 5, 'name': 'user5', 'age': 27, 'salary': 500}
Misol
Maoshi 450 dan
900 gacha bo'lgan foydalanuvchilarni tanlaymiz:
query = "SELECT * FROM users WHERE salary>450 AND salary<900"
Bajarilgan kod natijasi:
{'id': 2, 'name': 'user2', 'age': 25, 'salary': 500}
{'id': 3, 'name': 'user3', 'age': 23, 'salary': 500}
{'id': 5, 'name': 'user5', 'age': 27, 'salary': 500}
Misol
Yoshi 23 dan
27 yoshgacha (o'z ichiga olgan holda) bo'lgan foydalanuvchilarni tanlaymiz:
query = "SELECT * FROM users WHERE age>=23 AND age<=27"
Bajarilgan kod natijasi:
{'id': 1, 'name': 'user1', 'age': 23, 'salary': 400}
{'id': 2, 'name': 'user2', 'age': 25, 'salary': 500}
{'id': 3, 'name': 'user3', 'age': 23, 'salary': 500}
{'id': 5, 'name': 'user5', 'age': 27, 'salary': 500}
Misol
OR va
AND buyruqlarining murakkab kombinatsiyalarini
shartlarning ustuvorligini ko'rsatish uchun
yumaloq qavslar yordamida guruhlash mumkin:
query = "SELECT * FROM users WHERE (age<20 AND age>27) OR (salary>300 AND salary<500)"
Bajarilgan kod natijasi:
{'id': 1, 'name': 'user1', 'age': 23, 'salary': 400}
Amaliy vazifalar
25 yoshdan (o'z ichiga olmagan holda)
28 yoshgacha (o'z ichiga olgan holda) bo'lgan foydalanuvchilarni tanlang.
user1 foydalanuvchisini tanlang.
user1 va user2 foydalanuvchilarini tanlang.
user3 foydalanuvchisidan tashqari hammasini tanlang.
Yoshi 27 yoki
maoshi 1000 bo'lgan barcha foydalanuvchilarni tanlang.
Yoshi 27 yoki
maoshi 400 ga teng bo'lmagan barcha foydalanuvchilarni tanlang.
Yoshi 23 yoshdan (o'z ichiga olgan holda)
27 yoshgacha (o'z ichiga olmagan holda) yoki maoshi 1000 bo'lgan barcha foydalanuvchilarni tanlang.
Yoshi 23 yoshdan
27 yoshgacha yoki maoshi
400 dan 1000 gacha bo'lgan barcha foydalanuvchilarni tanlang.