
Elke goede cursus begint met een introductie. Dus omdat ik de ambitie heb om een goede cursus te maken, doe ik dat ook maar.
Een allereerste kennismaking met het gebruik van SQLite in Python
Hoe kun je de SQLite databank maken die we zullen gebruiken tijdens de presentaties en de oefeningen. (Bij de volgende opdracht mag je dat zelf doen).
Alle begin moet eenvoudig zijn. In de eerste presentatie over de taal SQL vragen we gegevens op uit een tabel en sorteren we.
Het is een goed idee om niet altijd alle rijen van een tabel op te vragen. Dus vandaar dat we moeten kunnen filteren.
Hoe delen we de data in groepjes in en maken we per groepje een samenvatting, bijvoorbeeld het aantal records in elk groepje.
We breiden de databank uit met extra tabellen. En niet zomaar tabellen, maar we introduceren relaties tussen de tabellen.
Hoe voegen we gegevens uit verschillende tabellen samen.
SELECT-statements gebruiken in SELECT-statements. Eigenlijk is het niet zo moeilijk.
Dit is een beetje moeilijker dan het vorige college: het SELECT-statement in de subquery verwijst naar de hoofdquery.
Het moeilijkste deel van het SELECT-statement. Maar toch nog belangrijk. Als je ooit data-analyse wil doen, zijn de Window-functies belangrijke hulpmiddelen in een databank.
Het SELECT-statement is het meest uitgebreide statement. Maar we moeten natuurlijk ook data kunnen toevoegen, wijzigen en verwijderen.
We hebben het statement om een tabel te creëren al gezien. Maar we gaan nu dieper in detail.
Ook over SELECT, INSERT, UPDATE en DELETE valt meer te vertellen dan wat we al gezien hebben.
Voor grote databanken zijn indexen belangrijk. Hoe maken we ze en, nog belangrijker, hoe kunnen we controleren of SQLite ze gebruikt.
Een heel theoretisch college. Maar het is toch belangrijk qua achtergrond. Want weten wat transacties zijn en waarom ze zo belangrijk zijn in een databank is essentiële kennis voor iedereen die met databanken werkt.
SQLAlchemy is een extra module die we kunnen installeren wanneer we met databanken willen werken. Maar wat is het eigenlijk?
Hoe maken we tabeldefinities en Python en zorgen we ervoor dat SQLAlchemy voor ons de tabellen maakt in de databank?
Hoe kunnen we SQLAlchemy SELECT-statements laten genereren op basis van onze Python code?
Dataclasses behoren tot de Object-georiënteerde Pythontaal. Wanneer je weet wat dataclasses zijn, ga je het volgende college beter kunnen begrijpen.
Object-Relation-mapping (ORM) is een manier om in een programmeertaal met een databank te werken, zonder echt in aanraking te komen met de databank. En SQLAlchemy is een ORM-tool. Dus we gaan even bekijken wat het is. (zodat u weet of u voor of tegen moet zijn).
Een voorbeeld van een programma dat SQLite gebruikt als bestandsformaat. Maar het is de bedoeling dat u het zelf doet.
Wanneer je niet weet hoe je de argumenten op de command prompt van een Python verwerkt, kan deze video je helpen. Ik gebruik hiervoor de ArgumentParser die meegeïnstalleerd wordt bij Python
Zorg ervoor dat "python litezip.py test --basisdir basis" werkt.
Zorg ervoor dat "python litezip zip --basisdir basis" werkt.
Zorg ervoor dat "python litezip unzip --basisdir basis" werkt.
En hier is mijn oplossing
Elk Pythonprogramma werkt met data. Die data kan afkomstig zijn uit verschillende bronnen: gebruikersinput, data van een meettoestel, informatie van een website, gegevens in een databank, ... In deze cursus bekijken we hoe we vanuit Python met een relationele databank kunnen werken.
Als databank heb ik SQLite gekozen. Het voordeel van SQLite voor Pythonprogrammeurs is dat men niets extra moet installeren. SQLite wordt automatisch tezamen met Python geïnstalleerd. Wanneer u achteraf zou beslissen om een andere databank te gebruiken (Oracle, MS SQLServer, MySQL, MariaDB, PostgreSQL, ...), dan is dat geen probleem. Python heeft een gestandaardiseerde reeks functies om met relationele databanken te werken (DBAPI 2.0). Dat wil zeggen dat de Pythoncode hetzelfde is, ongeacht de databank die u wil gebruiken.
DE taal om met relationele databanken te werken is SQL. We wijden dan ook een heel hoofdstuk aan die taal. We vertrekken van een eenvoudig SELECT-statement met gegevens uit 1 tabel en we eindigen met de Common Table Expressions (CTE) en de SQL Window functies.
Omdat performantie belangrijk is bij een databank bekijken we ook hoe we met indexen kunnen werken en hoe we een Query Plan kunnen gebruiken om de indexen te optimaliseren. En een uitleg over relationele databanken is niet volledig wanneer ik niet zou uitleggen hoe transacties werken in SQLite.
Om te eindigen bespreken we nog de extra module SQLAlchemy. Wanneer u wil weten wat dat is, moet u maar eens op de website van SQLAlchemy kijken, of, misschien nog beter, deze cursus volgen ;-).
Naast de meer dan 6 uur aan videomateriaal heb ik ook een hele reeks oefeningen voorzien. Ik heb ondertussen gemerkt dat oefeningen niet zo populair zijn bij cursisten. Video's kijken is veel gemakkelijker en dus ook aangenamer. Maar ik heb deze cursus zo opgevat dat oefeningen een essentieel onderdeel vormen. Dus het is een goed idee om ze te maken.