SQLite e Perl: Una Guida per Principianti

Ciao a tutti, futuri maghi dei database! Sono entusiasta di essere il vostro guida in questo emozionante viaggio nel mondo di SQLite e Perl. Come qualcuno che ha insegnato scienze informatiche per anni, posso dirvi che questa combinazione è come il burro di arachidi e la marmellata - semplicemente deliziosa! Allora, mettiamoci al lavoro e tuffiamoci!

SQLite - Perl

Installazione

Prima di poter iniziare a creare magia con i database, dobbiamo configurare i nostri strumenti. Pensate a questo come preparare la cucina prima di cucinare un pasto gourmet.

  1. Prima di tutto, assicuratevi di avere Perl installato sul vostro sistema. Potete controllare questo aprendo un terminale e digitando:
perl -v

Se vedete informazioni sulla versione, siete a posto!

  1. Successivamente, dobbiamo installare il modulo DBI (Database Interface) e il driver SQLite. Aprite il vostro terminale e digitate:
cpan install DBI
cpan install DBD::SQLite

Questo potrebbe richiedere alcuni minuti, quindi sentitevi liberi di prendervi un caffè mentre aspettate.

API dell'Interfaccia DBI

Ora che abbiamo i nostri ingredienti pronti, esaminiamo il libro delle ricette - le API dell'Interfaccia DBI. Queste sono le funzioni che useremo per interagire con il nostro database SQLite.

Ecco una tabella dei metodi DBI più comuni che useremo:

Metodo Descrizione
connect() Stabilisce una connessione al database
prepare() Prepara una dichiarazione SQL per l'esecuzione
execute() Esegue una dichiarazione preparata
fetch() Recupera una riga di dati da una dichiarazione SELECT
disconnect() Chiude una connessione al database

Non preoccupatevi se queste sembrano confuse ora. Esploreremo ciascuna di queste nel dettaglio man mano che procediamo.

Connessione al Database

Iniziamo stabilendo una connessione al nostro database SQLite. Questo è come knockare alla porta e chiedere gentilmente di entrare.

#!/usr/bin/perl
use strict;
use warnings;
use DBI;

my $driver   = "SQLite";
my $database = "test.db";
my $dsn = "DBI:$driver:dbname=$database";
my $userid = "";
my $password = "";

my $dbh = DBI->connect($dsn, $userid, $password, { RaiseError => 1 })
or die $DBI::errstr;

print "Database aperto con successo\n";

Ecco una spiegazione dettagliata:

  1. Iniziamo importando i moduli necessari.
  2. Specificiamo il driver (SQLite) e il nome del database.
  3. Creiamo una stringa Data Source Name (DSN).
  4. Usiamo DBI->connect() per stabilire una connessione e memorizzarla in $dbh.
  5. Se la connessione ha successo, stampiamo un messaggio di successo.

Creazione di una Tabella

Ora che siamo dentro, creiamo una tabella per memorizzare alcuni dati. Immaginate questo come creare un nuovo foglio di lavoro in Excel.

my $stmt = qq(CREATE TABLE COMPANY
(ID INT PRIMARY KEY     NOT NULL,
NAME           TEXT    NOT NULL,
AGE            INT     NOT NULL,
ADDRESS        CHAR(50),
SALARY         REAL););

my $rv = $dbh->do($stmt);
if($rv < 0) {
print $DBI::errstr;
} else {
print "Tabella creata con successo\n";
}

Ecco cosa sta succedendo:

  1. Definiamo la nostra dichiarazione SQL per creare una tabella chiamata COMPANY.
  2. Usiamo $dbh->do() per eseguire la dichiarazione.
  3. Controlliamo se l'operazione è stata успешна и stampiamo un messaggio appropriato.

Operazione INSERT

È giunto il momento di aggiungere alcuni dati alla nostra tabella. Questo è come riempire le righe del nostro foglio di lavoro.

my $stmt = qq(INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY)
VALUES (1, 'Paul', 32, 'California', 20000.00 ));

my $rv = $dbh->do($stmt) or die $DBI::errstr;
print "Record creati con successo\n";

In questo codice:

  1. Creiamo una dichiarazione SQL INSERT.
  2. La eseguiamo usando $dbh->do().
  3. Se ha successo, stampiamo un messaggio di conferma.

Operazione SELECT

Ora, recuperiamo i nostri dati. Questo è come leggere le informazioni dal nostro foglio di lavoro.

my $stmt = qq(SELECT id, name, address, salary from COMPANY;);
my $sth = $dbh->prepare( $stmt );
my $rv = $sth->execute() or die $DBI::errstr;

if($rv < 0) {
print $DBI::errstr;
}

while(my @row = $sth->fetchrow_array()) {
print "ID = ". $row[0] . "\n";
print "NAME = ". $row[1] ."\n";
print "ADDRESS = ". $row[2] ."\n";
print "SALARY = ". $row[3] ."\n\n";
}

Ecco la spiegazione dettagliata:

  1. Prepariamo la nostra dichiarazione SELECT usando $dbh->prepare().
  2. Eseguiamo la dichiarazione con $sth->execute().
  3. Usiamo un ciclo while con $sth->fetchrow_array() per recuperare e stampare ciascuna riga.

Operazione UPDATE

A volte dobbiamo cambiare i nostri dati. Questo è come modificare una cella nel nostro foglio di lavoro.

my $stmt = qq(UPDATE COMPANY set SALARY = 25000.00 where ID=1;);
my $rv = $dbh->do($stmt) or die $DBI::errstr;

if( $rv < 0 ) {
print $DBI::errstr;
} else {
print "Numero totale di righe aggiornate: $rv\n";
}

In questo codice:

  1. Creiamo una dichiarazione SQL UPDATE.
  2. La eseguiamo con $dbh->do().
  3. Controlliamo quante righe sono state interessate e stampiamo il risultato.

Operazione DELETE

Infine, impariamo come rimuovere i dati. Questo è come eliminare una riga dal nostro foglio di lavoro.

my $stmt = qq(DELETE from COMPANY where ID=2;);
my $rv = $dbh->do($stmt) or die $DBI::errstr;

if( $rv < 0 ) {
print $DBI::errstr;
} else {
print "Numero totale di righe eliminate: $rv\n";
}

Questo codice segue lo stesso schema della nostra operazione UPDATE:

  1. Creiamo una dichiarazione SQL DELETE.
  2. La eseguiamo con $dbh->do().
  3. Controlliamo quante righe sono state interessate e stampiamo il risultato.

Ecco fatto! Avete appena imparato le basi del lavoro con i database SQLite utilizzando Perl. Ricordate, la pratica fa la perfezione, quindi non avete paura di sperimentare con questi esempi. Prima di sapere, sarete in grado di creare applicazioni di database complesse con facilità!

Credits: Image by storyset