Tietueiden noutaminen SQL-kyselyllä tietokannasta Pythonissa
Testikoodin SQL-kyselyssä on komento
SELECT, joka noutaa dataa
tietokannasta. Tutkitaanpa nyt sen syntaksia
tarkemmin. Tässä se on:
query = "SELECT * FROM taulu WHERE ehto"
Taulun nimen jälkeen voidaan kirjoittaa
komento WHERE, jossa asetetaan
ehto valittaville tietueille. Siinä ovat
sallittuja seuraavat vertailuoperaatiot: =,
!=, <>, <, >,
<=, >=.
Katsotaanpa niiden käyttöä esimerkkien avulla.
Esimerkki
Valitaan käyttäjä, jonka id on 2:
query = "SELECT * FROM users WHERE id=2"
Suoritetun koodin tulos:
{'id': 2, 'name': 'user2', 'age': 25, 'salary': 500}
Esimerkki
Valitaan käyttäjät, joiden id on suurempi kuin 2:
query = "SELECT * FROM users WHERE id>2"
Suoritetun koodin tulos:
{'id': 3, 'name': 'user3', 'age': 23, 'salary': 500}
{'id': 4, 'name': 'user4', 'age': 30, 'salary': 900}
{'id': 5, 'name': 'user5', 'age': 27, 'salary': 500}
{'id': 6, 'name': 'user6', 'age': 28, 'salary': 900}
Esimerkki
Valitaan käyttäjät, joiden id on suurempi tai
yhtä suuri kuin 2:
query = "SELECT * FROM users WHERE id>=2"
Suoritetun koodin tulos:
{'id': 2, 'name': 'user2', 'age': 25, 'salary': 500}
{'id': 3, 'name': 'user3', 'age': 23, 'salary': 500}
{'id': 4, 'name': 'user4', 'age': 30, 'salary': 900}
{'id': 5, 'name': 'user5', 'age': 27, 'salary': 500}
{'id': 6, 'name': 'user6', 'age': 28, 'salary': 900}
Esimerkki
Valitaan käyttäjät, joiden id ei ole yhtä suuri
kuin 2:
query = "SELECT * FROM users WHERE id!=2"
Suoritetun koodin tulos:
{'id': 1, 'name': 'user1', 'age': 23, 'salary': 400}
{'id': 3, 'name': 'user3', 'age': 23, 'salary': 500}
{'id': 4, 'name': 'user4', 'age': 30, 'salary': 900}
{'id': 5, 'name': 'user5', 'age': 27, 'salary': 500}
{'id': 6, 'name': 'user6', 'age': 28, 'salary': 900}
Esimerkki
Komennon != sijasta voidaan kirjoittaa
komento <>:
query = "SELECT * FROM users WHERE id<>2"
Esimerkki
Valitaan käyttäjä, jonka nimi on 'user1'.
Tässä kohtaamme tärkeän vivahteen: koska
nimi on merkkijono, se on tarpeellista
laittaa lainausmerkkeihin:
query = "SELECT * FROM users WHERE name='user1'"
Suoritetun koodin tulos:
{'id': 1, 'name': 'user1', 'age': 23, 'salary': 400}
Esimerkki
Jos komentoa WHERE ei ole, niin
valitaan kaikki tietueet taulusta. Valitaan
kaikki työntekijät:
query = "SELECT * FROM users"
Suoritetun koodin tulos:
{'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': 4, 'name': 'user4', 'age': 30, 'salary': 900}
{'id': 5, 'name': 'user5', 'age': 27, 'salary': 500}
{'id': 6, 'name': 'user6', 'age': 28, 'salary': 900}
Käytännön tehtävät
Valitse käyttäjä, jonka id on 3.
Valitse käyttäjät, joiden palkka on 900.
Valitse käyttäjät, joiden ikä on 23 vuotta.
Valitse käyttäjät, joiden palkka on yli 400.
Valitse käyttäjät, joiden palkka on yhtä suuri tai
suurempi kuin 500.
Valitse käyttäjät, joiden palkka EI ole yhtä suuri
kuin 500.
Valitse käyttäjät, joiden palkka on yhtä suuri tai
pienempi kuin 500.