Python mette a disposizione diversi moduli per interagire con i database, tra cui sqlite3, MySQLdb e psycopg2. Questi moduli consentono un facile interagire con il database per memorizzare, recuperare e manipolare i dati in modo efficiente. È possibile costruire, modificare e gestire database in modo efficace ed efficiente con una conoscenza di base del linguaggio Python e della sintassi SQL.
Passi per la Creazione di un Database Utilizzando Python
Passo 1
Installare un adattatore di database che corrisponda al sistema di gestione del database che si desidera utilizzare. Ad esempio, se si intende utilizzare SQLite, è possibile installare il modulo sqlite3. Per MySQL, è possibile installare il modulo MySQLdb, e per PostgreSQL, è possibile installare psycopg2. In questa guida, considereremo SQLite, MongoDB e MySQLdb. Per utilizzare SQLite nel codice Python, importare il modulo sqlite3:
import sqlite3
Una volta installato il modulo appropriato, è necessario creare una connessione al database, che funge da ponte tra il codice Python e il database, consentendo di inviare comandi e ricevere risultati. Ad esempio, in SQLite, è possibile creare una connessione utilizzando il seguente codice.
Per un esempio di database chiamato school.db, si collega come mostrato nel codice seguente:
conn = sqlite3.connect('school.db')
Passo 2
Creare tabelle nel database. Per creare tabelle in un database, è necessario scrivere istruzioni SQL utilizzando l’oggetto cursore ottenuto dalla connessione. Ad esempio, per creare una tabella chiamata “employees” con colonne “id”, “username”, stipendio, dipartimento e “email”, si utilizza il seguente codice:
conn = sqlite3.connect('school.db')
cursor = conn.cursor()
cursor.execute('''
CREATE TABLE employees (
id INTEGER PRIMARY KEY,
username TEXT,
email,
salary REAL,
department TEXT
)
''')
Passo 3
Inserire, aggiornare e recuperare dati dal database utilizzando comandi SQL e l’oggetto cursore. Per aggiungere dati alle tabelle, è possibile utilizzare l’istruzione SQL “INSERT INTO”. Salvare i dati utilizzando il metodo `commit()`. Ad esempio, il seguente codice inserisce dati nella tabella “employees”:
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()
Passo 4
Recuperare dati dalle tabelle. Per recuperare dati dalle tabelle, è possibile utilizzare l’istruzione SQL “SELECT”. Ad esempio, per recuperare tutti gli utenti dalla tabella “users”, è possibile utilizzare il seguente codice:
cursor.execute("SELECT * FROM employees")
rows = cursor.fetchall()
for row in rows:
print(row)
Passo 5
Creare viste eseguendo un’istruzione CREATE VIEW e utilizzare il metodo `execute()` dell’oggetto cursore per eseguire un’istruzione CREATE VIEW.
# Eseguire l'istruzione CREATE VIEW
cursor.execute('''
CREATE VIEW employees_view AS
SELECT name, age, department, email, FROM employees;
''')
Passo 6
Chiudere la connessione. Una volta terminato di lavorare con il database, è importante chiudere la connessione per liberare le risorse. È possibile chiudere la connessione utilizzando il metodo close() dell’oggetto connessione. Ad esempio:
conn.commit()
conn.close()
Esempio per MySQLdb
Per creare un database in MySQLdb, importare il modulo MYSQLdb e connettersi al database utilizzando il metodo `connect()`. È possibile creare un cursore e utilizzarlo per eseguire comandi SQL. Il metodo `execute()` viene utilizzato per creare una tabella e inserire dati al suo interno. Dopo aver confermato le modifiche, utilizziamo il cursore per selezionare dati dalla tabella e recuperarli tutti utilizzando il metodo `fetchall()`. E infine, chiudere il cursore e la connessione al database.
import MySQLdb
# Connettersi al database
conn = MySQLdb.connect(host="localhost", user="std", passwd="@12343!J", db="school.db")
# Creare un cursore per eseguire comandi SQL
cursor = conn.cursor()
# Creare una tabella
cursor.execute("""
CREATE TABLE employees (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(255),
salary DECIMAL(10,2),
department VARCHAR(255)
)
""")
# Inserire dati nella tabella
cursor.execute("""
INSERT INTO employees (name, salary, department)
VALUES
("Joseph", 70000, "IT"),
("Jane", 80000, "Marketing")
""")
# Confermare le modifiche al database
conn.commit()
# Selezionare dati dalla tabella
cursor.execute("SELECT * FROM employees")
# Recuperare tutti i dati
employees = cursor.fetchall()
# Stampare i dati
for employee in employees:
print(employee)
# Chiudere il cursore e la connessione
cursor.close()
conn.close()
Esempio per MongoDB
Importare il modulo pymongo e connettersi al database utilizzando la classe `MongoClient()`. Si ottiene quindi un riferimento al database e alla raccolta equivalente a una tabella in SQL. Il metodo `inser_many()` viene utilizzato per inserire dati nella raccolta. Il metodo `find()` viene utilizzato per interrogare dati dalla raccolta, e i dati vengono recuperati utilizzando un ciclo for. E infine, chiudere la connessione al database utilizzando il metodo `close()`.
from pymongo import MongoClient
# Connettersi al database
client = MongoClient("mongodb://localhost:27017/")
# Ottenere un riferimento al database
db = client["school.db"]
# Ottenere un riferimento alla raccolta (equivalente a una tabella in SQL)
collection = db["employees"]
# Inserire dati nella raccolta
employee1 = { "name": "Joseph", "salary": 70000, "department": "IT" }
employee2 = { "name": "Jane", "salary": 80000, "department": "Marketing" }
collection.insert_many([employee1, employee2])
# Interrogare dati dalla raccolta
employees = collection.find()
# Stampare i dati
for employee in employees:
print(employee)
# Chiudere la connessione
client.close()
Conclusion
In conclusione, Python offre diversi moduli per interagire con diversi tipi di database, come MySQL e MongoDB. Il modulo MySQLdb viene utilizzato per interagire con un database MySQL, mentre il modulo pymongo viene utilizzato per interagire con un database MongoDB. Entrambi i moduli facilitano ai sviluppatori la realizzazione di operazioni comuni sui database, come la creazione di tabelle, l’inserimento di dati, la consultazione dei dati e molto altro. Grazie alla semplicità e all’uso facile di Python, è diventato una scelta popolare per lo sviluppo di applicazioni guidate da database. Che tu sia un principiante o uno sviluppatore esperto, l’utilizzo di questi moduli renderà l’interazione con i database in Python una passeggiata.
Source:
https://dzone.com/articles/an-overview-of-creating-databases-with-python-2