L’autore ha selezionato il Free and Open Source Fund per ricevere una donazione come parte del programma Write for DOnations.
- Introduzione
- Prequisiti
- Step 1 – Installazione di SQLite su Ubuntu 20.04
- Passo 2 – Creare un database SQLite
- Passo 3 – Creazione di una tabella SQLite
- Inserimento di valori nelle tabelle
- Passo 4 – Leggere le tabelle in SQLite
- Passo 5 – Aggiornare le tabelle in SQLite
- Aggiungere colonne alle tabelle SQLite
- Aggiornamento dei valori nelle tabelle SQLite
- Passo 6 – Cancellare informazioni in SQLite
- Passo 7 – Unire le informazioni in SQLite
- Conclusione
Introduzione
SQLite è un sistema di gestione database libero e multipiattaforma. È popolare per la sua efficienza e capacità di interfacciarsi con molti linguaggi di programmazione diversi.
In questo tutorial installerai SQLite su Ubuntu 20.04. Poi creerai un database, leggerai i dati da esso, inserirai elementi, eliminerai elementi e unirai elementi da tabelle separate.
Nota: Questo tutorial include istruzioni pratiche per installare e usare SQLite. Non copre questioni concettuali più ampie e problemi di produzione, come ad esempio quando uno dovrebbe, o non dovrebbe, considerare l’uso di un database SQLite. Per un’eccellente panoramica dei popolari database relazionali e come si confrontano, controlla il nostro articolo, SQLite vs MySQL vs PostgreSQL: A Comparison Of Relational Database Management Systems.
Inoltre, molti linguaggi mantengono integrazioni con SQLite. Per istruzioni su come usare SQLite all’interno del tuo codice Python, guarda il nostro tutorial, Come usare il modulo sqlite3
in Python 3.
Prequisiti
Per completare questo tutorial, avrai bisogno di:
- Una macchina locale o un server con Ubuntu 20.04. Per impostare un server, compreso un utente sudo non root e un firewall, è possibile creare un DigitalOcean Droplet con Ubuntu 20.04 e poi seguire la nostra Guida alla configurazione iniziale del server.
Step 1 – Installazione di SQLite su Ubuntu 20.04
Per installare l’interfaccia a riga di comando SQLite su Ubuntu, prima aggiorna la tua lista di pacchetti:
- sudo apt update
Ora installa SQLite:
- sudo apt install sqlite3
Per verificare l’installazione, controlla la versione del software:
- sqlite --version
Si riceverà un output come questo:
Output3.31.1 2020-01-27 19:55:54 3bfa9cc97da10598521b342961df8f5f68c7388fa117345eeb516eaa837balt1
Con SQLite installato, sei ora pronto per creare un nuovo database.
Passo 2 – Creare un database SQLite
In questo passo creerai un database contenente diversi squali e i loro attributi. Per creare il database, apri il tuo terminale ed esegui questo comando sqlite3
:
- sqlite3 sharks.db
Questo creerà un nuovo database chiamato sharks
. Se il file sharks.db
esiste già, SQLite aprirà una connessione ad esso; se non esiste, SQLite lo creerà.
Si riceverà un output come questo:
OutputSQLite version 3.31.1 2020-01-27 19:55:54Enter ".help" for usage hints.
Dopo questo, il tuo prompt cambierà. Ora appare un nuovo prefisso, sqlite>
:
Con il tuo database Shark creato, ora creerai una nuova tabella e la popolerai di dati.
Passo 3 – Creazione di una tabella SQLite
I database SQLite sono organizzati in tabelle. Le tabelle immagazzinano informazioni. Per visualizzare meglio una tabella, si possono immaginare righe e colonne.
Il resto di questo tutorial seguirà una convenzione comune per inserire i comandi SQLite. I comandi SQLite sono in maiuscolo e le informazioni dell’utente in minuscolo. Le linee devono terminare con un punto e virgola.
Ora creiamo una tabella e alcune colonne per vari dati:
- Un ID
- Il nome dello squalo
- Il tipo di squalo
- La lunghezza media dello squalo (in centimetri)
Usa il seguente comando per creare la tabella:
- CREATE TABLE sharks(id integer NOT NULL, name text NOT NULL, sharktype text NOT NULL, length integer NOT NULL);
L’uso di NOT NULL
rende quel campo obbligatorio. Discuteremo NOT NULL
in maggior dettaglio nella prossima sezione.
Dopo aver creato la tabella, ritornerà un prompt vuoto. Ora inseriamo alcuni valori in essa.
Inserimento di valori nelle tabelle
In SQLite, il comando per inserire valori in una tabella segue questa forma generale:
- INSERT INTO tablename VALUES(values go here);
dove tablename
è il nome della vostra tabella, e values
va tra parentesi.
Inserite ora tre righe di VALUES
nella vostra tabella sharks
:
- INSERT INTO sharks VALUES (1, "Sammy", "Greenland Shark", 427);
- INSERT INTO sharks VALUES (2, "Alyoshka", "Great White Shark", 600);
- INSERT INTO sharks VALUES (3, "Himari", "Megaladon", 1800);
Perché prima avete specificato NOT NULL
per ciascuna delle variabili della vostra tabella, dovete inserire un valore per ciascuna.
Per esempio, prova ad aggiungere un altro squalo senza impostare la sua lunghezza:
- INSERT INTO sharks VALUES (4, "Faiza", "Hammerhead Shark");
Riceverai questo errore:
OutputError: table sharks has 4 columns but 3 values were supplied
In questo passo hai creato una tabella e inserito dei valori in essa. Nel prossimo passo leggerai dalla tua tabella del database.
Passo 4 – Leggere le tabelle in SQLite
In questo passo, ci concentreremo sui metodi più basilari per leggere i dati da una tabella. Riconosci che SQLite fornisce metodi più specifici per visualizzare i dati nelle tabelle.
Per visualizzare la tua tabella con tutti i valori inseriti, usa SELECT
:
- SELECT * FROM sharks;
Vedrai le voci precedentemente inserite:
Output1|Sammy|Greenland Shark|4272|Alyoshka|Great White Shark|6003|Himari|Megaladon|1800
Per visualizzare una voce in base al suo id
(i valori che abbiamo impostato manualmente), aggiungi il comando WHERE
alla tua query:
- SELECT * FROM sharks WHERE id IS 1;
Questo restituirà lo squalo il cui id
è uguale a 1
:
Output1|Sammy|Greenland Shark|427
Guardiamo meglio questo comando.
- Prima, noi
SELECT
tutti (*
) i valori del nostro database,sharks
. - Poi guardiamo tutti i valori
id
. - Poi restituiamo tutte le voci della tabella dove
id
è uguale a1
.
Finora avete creato una tabella, inserito dati in essa, e interrogato quei dati salvati. Ora aggiornerai la tabella esistente.
Passo 5 – Aggiornare le tabelle in SQLite
Nelle due sezioni seguenti aggiungerai prima una nuova colonna nella tua tabella esistente e poi aggiornerai i valori esistenti nella tabella.
Aggiungere colonne alle tabelle SQLite
SQLite ti permette di modificare la tua tabella usando il comando ALTER TABLE
. Questo significa che puoi creare nuove righe e colonne, o modificare righe e colonne esistenti.
Usa ALTER TABLE
per creare una nuova colonna. Questa nuova colonna terrà traccia dell’età di ogni squalo in anni:
- ALTER TABLE sharks ADD COLUMN age integer;
Ora hai una quinta colonna, age
.
Aggiornamento dei valori nelle tabelle SQLite
Utilizzando il comando UPDATE
, aggiungi nuovi valori age
per ognuno dei tuoi squali:
- UPDATE sharks SET age = 272 WHERE id=1;
- UPDATE sharks SET age = 70 WHERE id=2;
- UPDATE sharks SET age = 40 WHERE id=3;
Output1|Sammy|Greenland Shark|427|2722|Alyoshka|Great White Shark|600|703|Himari|Megaladon|1800|40
In questo passo hai modificato la composizione della tua tabella e poi aggiornato i valori al suo interno. Nel prossimo passo cancellerai informazioni da una tabella.
Passo 6 – Cancellare informazioni in SQLite
In questo passo cancellerai voci nella tua tabella basate sulla valutazione di un argomento.
Nel seguente comando stai interrogando il tuo database e richiedendo di cancellare tutti gli squali della tua tabella sharks
la cui età è inferiore a 200:
- DELETE FROM sharks WHERE age <= 200;
Il comando SELECT * FROM sharks;
verificherà che Alyoshka
e Himari
, che avevano ciascuno meno di 200 anni, sono stati cancellati. Rimane solo Sammy
lo squalo della Groenlandia:
Output1|Sammy|Greenland Shark|427|272
Passo 7 – Unire le informazioni in SQLite
Immaginiamo di avere due tabelle: la nostra attuale tabella sharks
e una tabella endangered
. E se la tabella endangered
avesse un valore id
che corrisponde ai id
della vostra tabella sharks
e avesse anche un valore status
che indica lo stato di conservazione di ogni squalo?
Se volessi interrogare i dati di entrambe le tabelle, potresti usare uno dei quattro comandi di SQLite:
INNER JOIN
OUTER JOIN
LEFT JOIN
CROSS JOIN
Creiamo questa seconda tabella e poi usiamo INNER JOIN
per unire alcuni dati.
Primo, crea la tua tabella endangered
:
- CREATE TABLE endangered (id integer NOT NULL, status text NOT NULL);
- INSERT INTO endangered VALUES (1, "near threatened");
Ora unisci le tue tabelle:
- SELECT * FROM sharks INNER JOIN endangered on sharks.id = endangered.id;`
Il tuo output sarà come questo:
Output1|Sammy|Greenland Shark|427|272|1|near threatened
Nota che l’output include anche il valore id
di endangered
. Puoi specificare l’output desiderato con un comando più esplicito:
- SELECT sharks.id, sharks.name, sharks.sharktype, sharks.length, sharks.age, endangered.status FROM sharks INNER JOIN endangered on sharks.id = endangered.id;
Questa volta l’output esclude il secondo valore id
:
Output1|Sammy|Greenland Shark|427|272|near threatened
Ora hai unito con successo le informazioni da più tabelle.
Conclusione
SQLite è uno strumento utile per la gestione dei database. Si può creare rapidamente un database e manipolarlo con vari comandi. Seguendo questo tutorial, ora hai una comprensione di base di SQLite e sei pronto a immergerti più a fondo in questo sistema di gestione di database.
Per un’eccellente panoramica dei sistemi di database relazionali e come si confrontano, controlla il nostro articolo, SQLite vs MySQL vs PostgreSQL: A Comparison Of Relational Database Management Systems.
Inoltre, molti linguaggi mantengono integrazioni con SQLite. Per istruzioni su come usare SQLite all’interno del vostro codice Python, guardate il nostro tutorial, Come usare il modulo sqlite3
in Python 3.