Insert, Select, Update, Delete
Eseguire operazioni CRUD
Insert, Select, Update, Delete è una lezione Python Academy gratuita su CoddyKit. Questa è la lezione 2 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.
Operazioni CRUD
Le quattro operazioni di base sui database sono creazione, lettura, aggiornamento ed eliminazione (CRUD). In SQL corrispondono a INSERT, SELECT, UPDATE e DELETE.
import sqlite3
conn = sqlite3.connect(':memory:')
cur = conn.cursor()
cur.execute('CREATE TABLE users (id INTEGER PRIMARY KEY, name TEXT, age INTEGER)')
print('Ready for CRUD')
conn.close()Inserire una riga
Utilizzi INSERT INTO per aggiungere una riga. Elenchi prima le colonne e poi i valori corrispondenti.
import sqlite3
conn = sqlite3.connect(':memory:')
cur = conn.cursor()
cur.execute('CREATE TABLE users (id INTEGER PRIMARY KEY, name TEXT, age INTEGER)')
cur.execute("INSERT INTO users (name, age) VALUES ('Alice', 30)")
print('Inserted Alice')
conn.close()Leggere tutte le righe
SELECT * legge tutte le colonne. Utilizzi fetchall() per ottenere un elenco di tutte le righe sotto forma di tuple.
import sqlite3
conn = sqlite3.connect(':memory:')
cur = conn.cursor()
cur.execute('CREATE TABLE users (id INTEGER PRIMARY KEY, name TEXT, age INTEGER)')
cur.execute("INSERT INTO users (name, age) VALUES ('Alice', 30)")
cur.execute("INSERT INTO users (name, age) VALUES ('Bob', 25)")
cur.execute('SELECT * FROM users')
print(cur.fetchall())
conn.close()Recuperare una riga
fetchone() restituisce una singola riga oppure None quando non ci sono altre righe. È utile quando prevede esattamente un risultato.
import sqlite3
conn = sqlite3.connect(':memory:')
cur = conn.cursor()
cur.execute('CREATE TABLE users (id INTEGER PRIMARY KEY, name TEXT)')
cur.execute("INSERT INTO users (name) VALUES ('Alice')")
cur.execute('SELECT * FROM users')
print(cur.fetchone())
conn.close()Selezionare colonne specifiche
Anziché utilizzare *, indichi i nomi delle colonne desiderate. In questo modo l'operazione è più rapida e il codice più chiaro.
import sqlite3
conn = sqlite3.connect(':memory:')
cur = conn.cursor()
cur.execute('CREATE TABLE users (id INTEGER PRIMARY KEY, name TEXT, age INTEGER)')
cur.execute("INSERT INTO users (name, age) VALUES ('Alice', 30)")
cur.execute('SELECT name FROM users')
print(cur.fetchall())
conn.close()Filtrare con WHERE
La clausola WHERE limita le righe interessate o restituite.
import sqlite3
conn = sqlite3.connect(':memory:')
cur = conn.cursor()
cur.execute('CREATE TABLE users (id INTEGER PRIMARY KEY, name TEXT, age INTEGER)')
cur.execute("INSERT INTO users (name, age) VALUES ('Alice', 30)")
cur.execute("INSERT INTO users (name, age) VALUES ('Bob', 25)")
cur.execute('SELECT name FROM users WHERE age > 28')
print(cur.fetchall())
conn.close()Aggiornare le righe
UPDATE modifica i dati esistenti. Aggiunga sempre una clausola WHERE, altrimenti verranno aggiornate tutte le righe.
import sqlite3
conn = sqlite3.connect(':memory:')
cur = conn.cursor()
cur.execute('CREATE TABLE users (id INTEGER PRIMARY KEY, name TEXT, age INTEGER)')
cur.execute("INSERT INTO users (name, age) VALUES ('Alice', 30)")
cur.execute("UPDATE users SET age = 31 WHERE name = 'Alice'")
cur.execute('SELECT age FROM users')
print(cur.fetchone())
conn.close()Eliminare righe
DELETE FROM rimuove le righe. Come UPDATE, richiede una clausola WHERE per selezionare righe specifiche.
import sqlite3
conn = sqlite3.connect(':memory:')
cur = conn.cursor()
cur.execute('CREATE TABLE users (id INTEGER PRIMARY KEY, name TEXT)')
cur.execute("INSERT INTO users (name) VALUES ('Alice')")
cur.execute("INSERT INTO users (name) VALUES ('Bob')")
cur.execute("DELETE FROM users WHERE name = 'Bob'")
cur.execute('SELECT * FROM users')
print(cur.fetchall())
conn.close()Contare le righe interessate
Dopo UPDATE o DELETE, cursor.rowcount indica quante righe sono state modificate.
import sqlite3
conn = sqlite3.connect(':memory:')
cur = conn.cursor()
cur.execute('CREATE TABLE users (id INTEGER PRIMARY KEY, name TEXT)')
cur.execute("INSERT INTO users (name) VALUES ('Alice')")
cur.execute("INSERT INTO users (name) VALUES ('Bob')")
cur.execute('DELETE FROM users')
print('Deleted rows:', cur.rowcount)
conn.close()lastrowid
Dopo un'operazione INSERT, cursor.lastrowid fornisce la chiave primaria generata automaticamente per la nuova riga.
import sqlite3
conn = sqlite3.connect(':memory:')
cur = conn.cursor()
cur.execute('CREATE TABLE users (id INTEGER PRIMARY KEY, name TEXT)')
cur.execute("INSERT INTO users (name) VALUES ('Alice')")
print('New id:', cur.lastrowid)
conn.close()Ordinare i risultati
Aggiunga ORDER BY per ordinare i risultati. Utilizzi ASC per l'ordine crescente, che è quello predefinito, oppure DESC per l'ordine decrescente.
import sqlite3
conn = sqlite3.connect(':memory:')
cur = conn.cursor()
cur.execute('CREATE TABLE users (id INTEGER PRIMARY KEY, name TEXT, age INTEGER)')
cur.execute("INSERT INTO users (name, age) VALUES ('Alice', 30)")
cur.execute("INSERT INTO users (name, age) VALUES ('Bob', 25)")
cur.execute('SELECT name FROM users ORDER BY age DESC')
print(cur.fetchall())
conn.close()Verifica rapida
Verifichi la Sua conoscenza delle operazioni CRUD.
Riepilogo
Ha fatto pratica con tutte le operazioni CRUD in SQLite.
INSERT INTOaggiunge righe;lastrowidfornisce il nuovo identificativoSELECTlegge i dati confetchone()ofetchall()UPDATEeDELETEmodificano le righe, sempre conWHEREORDER BYordina i risultati
Domande Frequenti
La lezione «Insert, Select, Update, Delete» è gratuita?
Sì — il testo completo di «Insert, Select, Update, Delete» è 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 «Insert, Select, Update, Delete»?
Eseguire operazioni CRUD 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 2 di 4.
Quanto tempo richiede la lezione «Insert, Select, Update, Delete»?
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
- Connessione e creazione di tabelle
- Insert, Select, Update, Delete
- Query parametrizzate
- Transazioni e context manager