Λογικές πράξεις σε ερώτημα SQL στην Python
Στην συνθήκη επιλογής μπορούμε να κάνουμε πιο σύνθετους
συνδυασμούς με τις εντολές OR και
AND. Λειτουργούν με τον ίδιο τρόπο, όπως και τα
ανάλογά τους στην δομή if της Python.
Ας δούμε σε παραδείγματα.
Παράδειγμα
Ας επιλέξουμε χρήστες με μισθό 500 ΚΑΙ
ηλικία 23 ετών:
query = "SELECT * FROM users WHERE salary=500 AND age=23"
Αποτέλεσμα του εκτελεσμένου κώδικα:
{'id': 3, 'name': 'user3', 'age': 23, 'salary': 500}
Παράδειγμα
Ας επιλέξουμε χρήστες με μισθό 500 Ή
ηλικία 23 ετών:
query = "SELECT * FROM users WHERE salary=500 OR age=23"
Αποτέλεσμα του εκτελεσμένου κώδικα:
{'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}
Παράδειγμα
Ας επιλέξουμε χρήστες με μισθό από 450
έως 900:
query = "SELECT * FROM users WHERE salary>450 AND salary<900"
Αποτέλεσμα του εκτελεσμένου κώδικα:
{'id': 2, 'name': 'user2', 'age': 25, 'salary': 500}
{'id': 3, 'name': 'user3', 'age': 23, 'salary': 500}
{'id': 5, 'name': 'user5', 'age': 27, 'salary': 500}
Παράδειγμα
Ας επιλέξουμε χρήστες με ηλικία από 23
έως 27 ετών συμπεριλαμβανομένων:
query = "SELECT * FROM users WHERE age>=23 AND age<=27"
Αποτέλεσμα του εκτελεσμένου κώδικα:
{'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}
Παράδειγμα
Σύνθετους συνδυασμούς των εντολών OR και
AND μπορούμε να τους ομαδοποιήσουμε χρησιμοποιώντας
στρογγυλές αγκύλες, για να δείξουμε την προτεραιότητα
των συνθηκών:
query = "SELECT * FROM users WHERE (age<20 AND age>27) OR (salary>300 AND salary<500)"
Αποτέλεσμα του εκτελεσμένου κώδικα:
{'id': 1, 'name': 'user1', 'age': 23, 'salary': 400}
Πρακτικές ασκήσεις
Επιλέξτε χρήστες στην ηλικία από 25
(χωρίς συμπερίληψη) έως 28 ετών
(συμπεριλαμβανομένων).
Επιλέξτε τον χρήστη user1.
Επιλέξτε τους χρήστες user1 και user2.
Επιλέξτε όλους, εκτός από τον χρήστη user3.
Επιλέξτε όλους τους χρήστες στην ηλικία 27
ετών ή με μισθό 1000.
Επιλέξτε όλους τους χρήστες στην ηλικία 27
ετών ή με μισθό διάφορο του 400.
Επιλέξτε όλους τους χρήστες στην ηλικία από 23
ετών (συμπεριλαμβανομένων) έως 27 ετών (χωρίς
συμπερίληψη) ή με μισθό 1000.
Επιλέξτε όλους τους χρήστες στην ηλικία από 23
ετών έως 27 ετών ή με μισθό από
400 έως 1000.