Panoramica sulla Creazione di Basi di Dati con Python

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:

Python

 

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:

Python

 

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:

Python

 

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”:

Python

 

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:

Python

 

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.

Python

 

# 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:

Python

 

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.

Python

 

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()`.

Python

 

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