0Pricing
Python Academy · Lezione

Connessione e creazione di tabelle

Aprire un database e definire lo schema

Connessione e creazione di tabelle è una lezione Python Academy gratuita su CoddyKit. Questa è la lezione 1 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento Python Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso Python Academy include 4 lezioni in totale.

Che cos'è sqlite3?

Python include il modulo sqlite3 nella libreria standard. Permette di lavorare con SQLite, un database SQL leggero e basato su file che non richiede un server separato.

  • Non richiede installazione
  • L'intero database risiede in un unico file
  • È perfetto per prototipi, test e piccole app
import sqlite3
print(sqlite3.version)

Connettersi a un database

Utilizzi sqlite3.connect() per aprire un database. Se il file non esiste, SQLite lo crea.

Passare ':memory:' crea un database temporaneo in memoria che scompare quando la connessione viene chiusa.

import sqlite3
conn = sqlite3.connect(':memory:')
print('Connected:', conn)
conn.close()

L'oggetto Cursor

Per eseguire SQL è necessario un cursore. Chiami conn.cursor() per ottenerne uno, quindi utilizzi cursor.execute() per inviare le istruzioni SQL.

import sqlite3
conn = sqlite3.connect(':memory:')
cur = conn.cursor()
print('Cursor ready:', cur)
conn.close()

Creare una tabella

Definisca uno schema con CREATE TABLE. Ogni colonna richiede un nome e un tipo, come INTEGER, TEXT o REAL.

import sqlite3
conn = sqlite3.connect(':memory:')
cur = conn.cursor()
cur.execute('CREATE TABLE users (id INTEGER, name TEXT, age INTEGER)')
print('Table created')
conn.close()

Chiavi primarie

Una chiave primaria identifica univocamente ogni riga. Dichiarare INTEGER PRIMARY KEY consente a SQLite di incrementare automaticamente il valore.

import sqlite3
conn = sqlite3.connect(':memory:')
cur = conn.cursor()
cur.execute('CREATE TABLE books (id INTEGER PRIMARY KEY, title TEXT)')
print('books table ready')
conn.close()

IF NOT EXISTS

Eseguire CREATE TABLE due volte genera un errore. Aggiunga IF NOT EXISTS per poter eseguire l'istruzione più volte senza rischi.

import sqlite3
conn = sqlite3.connect(':memory:')
cur = conn.cursor()
sql = 'CREATE TABLE IF NOT EXISTS notes (id INTEGER PRIMARY KEY, body TEXT)'
cur.execute(sql)
cur.execute(sql)
print('No error on second run')
conn.close()

Vincoli delle colonne

I vincoli applicano le regole sui dati a livello di database.

  • NOT NULL richiede un valore
  • UNIQUE impedisce i duplicati
  • DEFAULT fornisce un valore alternativo
import sqlite3
conn = sqlite3.connect(':memory:')
cur = conn.cursor()
cur.execute('CREATE TABLE accounts (id INTEGER PRIMARY KEY, email TEXT NOT NULL UNIQUE, active INTEGER DEFAULT 1)')
print('accounts table with constraints')
conn.close()

Ispezionare lo schema

SQLite memorizza le informazioni sullo schema in sqlite_master. Lo interroghi per elencare le tabelle.

import sqlite3
conn = sqlite3.connect(':memory:')
cur = conn.cursor()
cur.execute('CREATE TABLE users (id INTEGER PRIMARY KEY, name TEXT)')
cur.execute("SELECT name FROM sqlite_master WHERE type='table'")
print(cur.fetchall())
conn.close()

Salvare in un file

Per rendere persistenti i dati, passi un nome di file a connect(). Il database rimane disponibile anche dopo la fine del programma.

Deve chiamare conn.commit() per scrivere le modifiche sul disco.

import sqlite3
conn = sqlite3.connect('app.db')
cur = conn.cursor()
cur.execute('CREATE TABLE IF NOT EXISTS items (id INTEGER PRIMARY KEY, name TEXT)')
conn.commit()
print('Saved to app.db')
conn.close()

Eliminare una tabella

Rimuova una tabella con DROP TABLE. Utilizzi IF EXISTS per evitare errori quando la tabella è già stata eliminata.

import sqlite3
conn = sqlite3.connect(':memory:')
cur = conn.cursor()
cur.execute('CREATE TABLE temp (id INTEGER)')
cur.execute('DROP TABLE IF EXISTS temp')
print('Dropped temp table')
conn.close()

Chiuda sempre la connessione

Le connessioni aperte mantengono i descrittori di file. Le chiuda sempre con conn.close() al termine oppure utilizzi un blocco with per la pulizia automatica.

import sqlite3
conn = sqlite3.connect(':memory:')
cur = conn.cursor()
cur.execute('CREATE TABLE t (id INTEGER)')
conn.close()
print('Connection closed cleanly')

Verifica rapida

Verifichi la Sua comprensione della creazione delle tabelle.

Riepilogo

Ha appreso le nozioni di base di sqlite3.

  • connect() apre o crea un file di database
  • cursor() fornisce un oggetto per eseguire SQL
  • CREATE TABLE definisce lo schema con tipi e vincoli
  • commit() rende persistenti le modifiche e close() rilascia la connessione

Ora inserirà e leggerà le righe.

Domande Frequenti

La lezione «Connessione e creazione di tabelle» è gratuita?

Sì — il testo completo di «Connessione e creazione di tabelle» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso Python Academy, passa a CoddyKit PRO. Il corso Python Academy include 4 lezioni in totale.

Cosa imparerò in «Connessione e creazione di tabelle»?

Aprire un database e definire lo schema Eserciti Python Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.

Ho bisogno di esperienza per iniziare Python Academy?

Non è richiesta alcuna esperienza precedente. Python Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 1 di 4.

Quanto tempo richiede la lezione «Connessione e creazione di tabelle»?

La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.

Posso scrivere ed eseguire codice in questa lezione Python Academy?

Sì. Ogni lezione Python Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.

Tutte le lezioni di questo corso

  1. Connessione e creazione di tabelle
  2. Insert, Select, Update, Delete
  3. Query parametrizzate
  4. Transazioni e context manager
← Torna a Python Academy