Come installare e usare SQLite su Ubuntu 20.04

L’autore ha selezionato il Free and Open Source Fund per ricevere una donazione come parte del programma Write for DOnations.

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:

Output
3.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:

Output
SQLite 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:

    Output
    Error: 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:

    Output
    1|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:

    Output
    1|Sammy|Greenland Shark|427

    Guardiamo meglio questo comando.

    1. Prima, noi SELECT tutti (*) i valori del nostro database, sharks.
    2. Poi guardiamo tutti i valori id.
    3. Poi restituiamo tutte le voci della tabella dove id è uguale a 1.

    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;
    Output
    1|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:

    Output
    1|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:

    Output
    1|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:

    Output
    1|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.

    Lascia un commento

    Il tuo indirizzo email non sarà pubblicato.