Python biedt verschillende modules voor het werken met databases, waaronder sqlite3, MySQLdb en psycopg2. Deze modules stellen je in staat om eenvoudig te interageren met databases om gegevens efficiënt op te slaan, op te vragen en te manipuleren. Je kunt databases effectief en efficiënt bouwen, wijzigen en beheren met een basiskennis van de Pythontaal en SQL-syntaxis.
Stappen voor het aanmaken van een database met behulp van Python
Stap 1
Installeer een databaseadapter die overeenkomt met het databasebeheersysteem dat je wilt gebruiken. Als je bijvoorbeeld SQLite wilt gebruiken, kun je het sqlite3-module installeren. Voor MySQL kun je de MySQLdb-module installeren, en voor PostgreSQL kun je psycopg2 installeren. In deze tutorial zullen we SQLite, MongoDB en MySQLdb beschouwen. Om SQLite in je Python-code te gebruiken, importeer je de sqlite3-module:
import sqlite3
Zodra je de juiste module hebt geïnstalleerd, moet je een verbinding tot stand brengen met de database, die als een brug fungeert tussen de Python-code en de database, waardoor je commando’s kunt sturen en resultaten kunt ontvangen. Bijvoorbeeld, in SQLite kun je een verbinding maken met het volgende codevoorbeeld.
Voor een voorbeeld van een database genaamd school.db, verbind je als volgt, zoals weergegeven in de onderstaande code:
conn = sqlite3.connect('school.db')
Stap 2
Maak tabellen in de database. Om tabellen aan te maken in een database, moet je SQL-instructies schrijven met behulp van het cursor-object dat je krijgt van de verbinding. Bijvoorbeeld, om een tabel met de naam “employees” te maken met kolommen “id,” “username,” salary, department, en “email,” gebruik je de volgende code:
conn = sqlite3.connect('school.db')
cursor = conn.cursor()
cursor.execute('''
CREATE TABLE employees (
id INTEGER PRIMARY KEY,
username TEXT,
email,
salary REAL,
department TEXT
)
''')
Stap 3
Voeg, werk en haal gegevens op uit de database met behulp van SQL-commando’s en het cursor-object. Om gegevens toe te voegen aan de tabellen, kun je de “INSERT INTO” SQL-instructie gebruiken. Sla de gegevens op met de `commit()` methode. Bijvoorbeeld, het volgende codevoorbeeld voegt gegevens toe aan de “employees” tabel:
conn = sqlite3.connect('school.db')
cursor = conn.cursor()
cursor.execute("INSERT INTO employees (username, email, salary, department) VALUES ('Joseph', 'joseph@gmail,com' 70000, 'IT')")
conn.commit()
Stap 4
Haal gegevens op uit de tabellen. Om gegevens op te halen uit de tabellen, kun je de “SELECT” SQL-instructie gebruiken. Bijvoorbeeld, om alle gebruikers op te halen uit de “users” tabel, kun je de volgende code gebruiken:
cursor.execute("SELECT * FROM employees")
rows = cursor.fetchall()
for row in rows:
print(row)
Stap 5
Maak weergaven aan door een CREATE VIEW-instructie uit te voeren, en gebruik de `execute()` methode van het cursor-object om een CREATE VIEW-instructie uit te voeren.
# Voer de CREATE VIEW-instructie uit
cursor.execute('''
CREATE VIEW employees_view AS
SELECT name, age, department, email, FROM employees;
''')
Stap 6
Sluit de verbinding. Zodra je klaar bent met werken met de database, is het belangrijk om de verbinding te sluiten om de resources vrij te geven. Je kunt de verbinding sluiten door de close() methode van het verbindingsobject te gebruiken. Bijvoorbeeld:
conn.commit()
conn.close()
Voorbeeld voor MySQLdb
Om een database te creëren in MySQLdb, importeer je het MYSQLdb-module en maak je verbinding met de database met behulp van de `connect()` methode. Je kunt een cursor aanmaken en deze gebruiken om SQL-commando’s uit te voeren. De `execute ()` methode wordt gebruikt om een tabel te creëren en gegevens in te voegen. Na het doorvoeren van de wijzigingen, gebruiken we de cursor om gegevens uit de tabel te selecteren en alle gegevens op te halen met behulp van de `fetchall()` methode. En tenslotte sluiten we de cursor en de verbinding met de database.
import MySQLdb
# Maak verbinding met de database
conn = MySQLdb.connect(host="localhost", user="std", passwd="@12343!J", db="school.db")
# Creëer een cursor om SQL-commando's uit te voeren
cursor = conn.cursor()
# Creëer een tabel
cursor.execute("""
CREATE TABLE employees (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(255),
salary DECIMAL(10,2),
department VARCHAR(255)
)
""")
# Voeg gegevens in de tabel toe
cursor.execute("""
INSERT INTO employees (name, salary, department)
VALUES
("Joseph", 70000, "IT"),
("Jane", 80000, "Marketing")
""")
# Commit de wijzigingen aan de database
conn.commit()
# Selecteer gegevens uit de tabel
cursor.execute("SELECT * FROM employees")
# Haal alle gegevens op
employees = cursor.fetchall()
# Print de gegevens
for employee in employees:
print(employee)
# Sluit de cursor en de verbinding
cursor.close()
conn.close()
Voorbeeld voor MongoDB
Importeer het pymongo module en maak verbinding met de database met behulp van de `MongoClient()` klasse. Je krijgt dan een referentie naar de database en de verzameling die gelijkstaat aan een tabel in SQL. De `inser _many()` methode wordt gebruikt om gegevens in de verzameling in te voegen. De `find()` methode wordt gebruikt om gegevens uit de verzameling te zoeken, en de gegevens worden opgehaald met behulp van een for-lus. En tenslotte sluiten we de verbinding met de database met behulp van de `close()` methode.
from pymongo import MongoClient
# Maak verbinding met de database
client = MongoClient("mongodb://localhost:27017/")
# Krijg een referentie naar de database
db = client["school.db"]
# Krijg een referentie naar de verzameling (gelijk aan een tabel in SQL)
collection = db["employees"]
# Voeg gegevens in de verzameling toe
employee1 = { "name": "Joseph", "salary": 70000, "department": "IT" }
employee2 = { "name": "Jane", "salary": 80000, "department": "Marketing" }
collection.insert_many([employee1, employee2])
# Zoek gegevens uit de verzameling
employees = collection.find()
# Print de gegevens
for employee in employees:
print(employee)
# Sluit de verbinding
client.close()
Conclusie
In conclusie biedt Python verschillende modules om te communiceren met verschillende databases, zoals MySQL en MongoDB. De MySQLdb module wordt gebruikt om te communiceren met een MySQL-database, en de pymongo module wordt gebruikt om te communiceren met een MongoDB-database. Beide modules maken het gemakkelijk voor ontwikkelaars om veel voorkomende database-operaties uit te voeren, zoals het maken van tabellen, het invoegen van gegevens, het opvragen van gegevens, en meer. Met de eenvoud en gebruiksvriendelijkheid van Python is het uitgegroeid tot een populaire keuze voor het ontwikkelen van databasegestuurde toepassingen. Of je nu een beginner of een ervaren ontwikkelaar bent, het gebruik van deze modules zal werken met databases in Python een fluitje van een cent maken.
Source:
https://dzone.com/articles/an-overview-of-creating-databases-with-python-2