Indien we vanuit python willen communiceren met een database, hebben we een query-taal nodig die ons helpt vragen te stellen aan de database. Je hebt de keuze uit verschillende talen, zoals PostgreSQL, Microsoft SQL, SQLite, Sybase, … maar de populairste taal is echter MySQL. MySQL is een relationele database die vlot mee kan met andere databasesystemen.
In tegenstelling tot bijvoorbeeld MS Access bevat MySQL geen interface om databases te ontwerpen en al zeker niet om formulieren of rapporten aan te maken. De liefhebbers zullen via command-line aan de slag gaan. De iets minder geavanceerde gebruiker zal kiezen om een tool te gebruiken die je in staat stelt om via een GUI je hele MySQL server te bedienen. Een bekende gratis tool is PHPMyAdmin. Deze tool is volledig in PHP geschreven en laat toe om je hele server te configureren alsook om databases en tabellen aan te maken.
Vaak wordt MySQL op dezelfde server gedraaid als de web- en PHP server. Een MySQL server kan meerdere databases bevatten, dewelke zelf opnieuw verschillende tabellen kunnen bevatten. Een tabel is, zoals in MS Access, opgebouwd uit twee delen: de structuur en de data.
De structuur bevat de velden: veldnamen en veldtypes. De data zijn de gegevens die in de tabellen worden ingevoerd.