Guida per principianti sull'interfaccia PostgreSQL - Python
Ciao there, futuri maghi dei database! Sono entusiasta di essere il tuo guida in questo viaggio emozionante nel mondo di PostgreSQL e Python. Come qualcuno che ha insegnato scienze informatiche per anni, posso dirti che questa combinazione è come il burro e la marmellata - semplicemente deliziosa! Allora, mettiamo le mani sporche e tuffiamoci!
Installazione
Prima di iniziare a fare magie, dobbiamo impostare i nostri strumenti. Pensate a questo come preparare la cucina prima di cucinare un pasto gourmet.
-
Prima di tutto, assicurati di avere PostgreSQL installato sul tuo computer. Puoi scaricarlo dal sito ufficiale di PostgreSQL.
-
Poi, dobbiamo installare il modulo Python che ci permetterà di comunicare con PostgreSQL. Apri il tuo terminale o prompt dei comandi e digita:
pip install psycopg2
Questo comando è come chiedere al tuo computer di aggiungere un nuovo strumento al suo cassetto degli attrezzi. Una volta fatto, sei pronto a partire!
API del modulo Python psycopg2
Ora che abbiamo i nostri strumenti, diamo un'occhiata veloce a cosa possono fare. Il modulo psycopg2 ci fornisce un set di funzioni per interagire con PostgreSQL. Ecco una tabella delle più comuni:
Funzione | Descrizione |
---|---|
connect() | Stabilisce una connessione al database |
cursor() | Crea un oggetto cursor per eseguire comandi SQL |
execute() | Esegue un'operazione di database (query o comando) |
fetchone() | Recupera la prossima riga di un set di risultati di una query |
fetchall() | Recupera tutte (le rimanenti) righe di un set di risultati di una query |
commit() | Commit della transazione corrente |
rollback() | Torna all'inizio di qualsiasi transazione pendente |
close() | Chiude la connessione al database |
Non preoccuparti se questo sembra un linguaggio estraneo ora. Esploreremo ciascuno di questi in dettaglio man mano che procediamo!
Connessione al Database
Iniziamo facendo una connessione al nostro database. È come bussare alla porta e chiedere di entrare.
import psycopg2
try:
connection = psycopg2.connect(
database="mydb",
user="myuser",
password="mypassword",
host="localhost",
port="5432"
)
print("Connessione riuscita!")
except (Exception, psycopg2.Error) as error:
print("Errore durante la connessione a PostgreSQL", error)
In questo codice, stiamo:
- Importando il modulo psycopg2
- Utilizzando la funzione
connect()
per stabilire una connessione - Fornendo i dettagli necessari come nome del database, utente, password, ecc.
- Utilizzando un blocco try-except per gestire eventuali errori
Se tutto va bene, dovresti vedere "Connessione riuscita!" stampato. Congratulazioni, hai appena aperto la porta al tuo database!
Creazione di una Tabella
Ora che siamo dentro, creiamo una tabella per memorizzare alcuni dati. Immagina di allestire una libreria per organizzare i tuoi libri.
try:
cursor = connection.cursor()
create_table_query = '''CREATE TABLE books
(ID INT PRIMARY KEY NOT NULL,
TITLE TEXT NOT NULL,
AUTHOR TEXT NOT NULL,
PUBLISHED_DATE DATE);'''
cursor.execute(create_table_query)
connection.commit()
print("Tabella creata con successo!")
except (Exception, psycopg2.Error) as error:
print("Errore durante la creazione della tabella", error)
finally:
if connection:
cursor.close()
connection.close()
print("Connessione PostgreSQL chiusa")
Ecco cosa sta succedendo:
- Creiamo un oggetto cursor, che è come il nostro assistente di database
- Definiamo la nostra query SQL per creare una tabella chiamata 'books'
- Utilizziamo
execute()
per eseguire la query - Effettuiamo un
commit()
per rendere permanenti le modifiche - Infine, chiudiamo il cursor e la connessione per essere buoni cittadini del database
Operazione INSERT
È giunto il momento di aggiungere alcuni libri alla nostra libreria! Inseriamo un record nella nostra tabella.
try:
cursor = connection.cursor()
insert_query = """ INSERT INTO books (ID, TITLE, AUTHOR, PUBLISHED_DATE)
VALUES (%s, %s, %s, %s)"""
record_to_insert = (1, "To Kill a Mockingbird", "Harper Lee", "1960-07-11")
cursor.execute(insert_query, record_to_insert)
connection.commit()
print("Record inserito con successo")
except (Exception, psycopg2.Error) as error:
print("Errore durante l'inserimento dei dati", error)
In questo codice:
- Creiamo la nostra query INSERT con placeholders (%s) per i nostri valori
- Definiamo una tupla con i valori che vogliamo inserire
- Eseguiamo la query, passando la nostra tupla di valori
- Effettuiamo un
commit()
per rendere permanenti le modifiche
Operazione SELECT
Ora, controlliamo la nostra libreria e vediamo cosa abbiamo!
try:
cursor = connection.cursor()
select_query = "SELECT * from books"
cursor.execute(select_query)
records = cursor.fetchall()
for row in records:
print("ID:", row[0])
print("TITOLO:", row[1])
print("AUTORE:", row[2])
print("DATA DI PUBBLICAZIONE:", row[3], "\n")
except (Exception, psycopg2.Error) as error:
print("Errore durante il recupero dei dati", error)
Ecco cosa sta succedendo:
- Creiamo una query SELECT per recuperare tutti i record dalla nostra tabella 'books'
- Eseguiamo la query
- Utilizziamo
fetchall()
per ottenere tutti i risultati - Iteriamo attraverso i risultati e stampiamo i dettagli di ciascun libro
Operazione UPDATE
Ops! Abbiamo fatto un errore. Aggiorniamo un record per correggerlo.
try:
cursor = connection.cursor()
update_query = """Update books set AUTHOR = %s where ID = %s"""
cursor.execute(update_query, ("Nelle Harper Lee", 1))
connection.commit()
print("Record aggiornato con successo")
except (Exception, psycopg2.Error) as error:
print("Errore durante l'aggiornamento dei dati", error)
In questo codice:
- Creiamo una query UPDATE con placeholders per il nuovo nome dell'autore e l'ID
- Eseguiamo la query con i nuovi valori
- Effettuiamo un
commit()
per rendere permanenti le modifiche
Operazione DELETE
Finalmente, impariamo come rimuovere un libro dalla nostra libreria.
try:
cursor = connection.cursor()
delete_query = """Delete from books where ID = %s"""
cursor.execute(delete_query, (1,))
connection.commit()
print("Record eliminato con successo")
except (Exception, psycopg2.Error) as error:
print("Errore durante l'eliminazione dei dati", error)
finally:
if connection:
cursor.close()
connection.close()
print("Connessione PostgreSQL chiusa")
Ecco cosa sta succedendo:
- Creiamo una query DELETE con un placeholder per l'ID
- Eseguiamo la query con l'ID del record che vogliamo eliminare
- Effettuiamo un
commit()
per rendere permanenti le modifiche - Infine, chiudiamo il cursor e la connessione
Ecco fatto! Ora hai imparato le basi del lavoro con PostgreSQL utilizzando Python. Ricorda, la pratica rende perfetti, quindi non aver paura di sperimentare e provare cose diverse. Buon coding, e may your databases always be in perfect order!
Credits: Image by storyset