Wanneer een bestand niet meer genoeg is
Volg één vraag door de database
Iemand vraagt: “Wat kunnen mensen lenen?” Je hebt de query die daarop antwoord geeft al geschreven:
SELECT name FROM items;
Dit is nogmaals het schema dat de query gebruikt:
Schema voor items
| Kolom | Wat hoort hier? |
|---|---|
id | een geheel getal als ID van het voorwerp |
name | tekst met de naam van het voorwerp |
category | tekst met de naam van de groep waartoe het voorwerp behoort |
De query noemt twee onderdelen van dit schema. name is de kolom die je terug wilt krijgen en items is de tabel die de rijen levert.
Stel dat deze catalogus op je eigen computer is opgeslagen in een bestand met de naam lending.db. Python opent een verbinding naar dat bestand en SQLite voert de query uit om de gevraagde namen te vinden:
Python connection
↓
lending.db
↓
items table
↓
name column
↓
Cordless drill, Folding table, Projector
De verbinding is de route die Python gebruikt terwijl het programma draait. De rijen staan in lending.db. De aanroep connection.close() beëindigt die route, maar verwijdert het bestand en de rijen niet.
Later kan Python een nieuwe verbinding naar hetzelfde bestand openen en dezelfde query uitvoeren. SQLite vindt nog steeds de tabel items en geeft de namen terug.
Een programma sluit zijn verbinding naar lending.db. Later heeft het de namen van de voorwerpen opnieuw nodig. Wat moet het doen?
De verbinding die Projector teruggaf, bestaat misschien niet meer, maar de rij met Projector staat nog steeds in lending.db. Een nieuwe verbinding kan hetzelfde bestand opnieuw om de namen vragen. In het volgende hoofdstuk maak je zelf de tabel items in plaats van die kant-en-klaar aan te treffen.