SQLite - Perl : Guide pour débutants

Salutations, futurs magiciens des bases de données ! Je suis ravi de vous guider dans cette incroyable aventure dans le monde de SQLite et de Perl. En tant que quelqu'un qui enseigne l'informatique depuis des années, je peux vous dire que cette combinaison est comme du beurre de cacahuète et de la gelée - simplement délicieux ! Alors, mettons nos manches à la pâte et plongons dedans !

SQLite - Perl

Installation

Avant de pouvoir commencer à créer des magies de bases de données, nous devons configurer nos outils. Pensez à cela comme préparer votre cuisine avant de préparer un repas gastronomique.

  1. Tout d'abord, assurez-vous que Perl est installé sur votre système. Vous pouvez vérifier cela en ouvrant un terminal et en tapant :
perl -v

Si vous voyez des informations de version, vous êtes prêt à partir !

  1. Ensuite, nous devons installer le module DBI (Interface de base de données) et le pilote SQLite. Ouvrez votre terminal et tapez :
cpan install DBI
cpan install DBD::SQLite

Cela peut prendre quelques minutes, donc n'hésitez pas à prendre un café pendant que vous attendez.

API de l'interface DBI

Maintenant que nous avons nos ingrédients prêts, penchons-nous sur le livre de recettes - les API de l'interface DBI. Ce sont les fonctions que nous utiliserons pour interagir avec notre base de données SQLite.

Voici un tableau des méthodes DBI les plus courantes que nous utiliserons :

Méthode Description
connect() Établit une connexion à la base de données
prepare() Prépare une instruction SQL pour l'exécution
execute() Exécute une instruction préparée
fetch() Récupère une rangée de données d'une instruction SELECT
disconnect() Ferme une connexion à la base de données

Ne vous inquiétez pas si cela semble confus maintenant. Nous explorerons chacun de ces points en détail au fur et à mesure.

Connexion à la base de données

Commençons par établir une connexion à notre base de données SQLite. C'est comme frapper à la porte et demander poliment de rentrer.

#!/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 "Base de données ouverte avec succès\n";

Reprenons cela :

  1. Nous commençons par importer les modules nécessaires.
  2. Nous spécifions le pilote (SQLite) et le nom de la base de données.
  3. Nous créons une chaîne de nom de source de données (DSN).
  4. Nous utilisons DBI->connect() pour établir une connexion et la stocker dans $dbh.
  5. Si la connexion est réussie, nous affichons un message de succès.

Création d'une table

Maintenant que nous sommes dedans, créons une table pour stocker des données. Imaginez cela comme créer une nouvelle feuille de calcul dans 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 "Table créée avec succès\n";
}

Voici ce qui se passe :

  1. Nous définissons notre instruction SQL pour créer une table nommée COMPANY.
  2. Nous utilisons $dbh->do() pour exécuter l'instruction.
  3. Nous vérifions si l'opération a réussi et affichons un message approprié.

Opération INSERT

Il est temps d'ajouter des données à notre table. C'est comme remplir les lignes de notre feuille de calcul.

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 "Records created successfully\n";

Dans ce code :

  1. Nous créons une instruction SQL INSERT.
  2. Nous l'exécutons en utilisant $dbh->do().
  3. Si réussi, nous affichons un message de confirmation.

Opération SELECT

Maintenant, rétrievons nos données. C'est comme lire les informations de notre feuille de calcul.

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";
}

Voici le détail :

  1. Nous préparer notre instruction SELECT en utilisant $dbh->prepare().
  2. Nous exécutons l'instruction avec $sth->execute().
  3. Nous utilisons une boucle while avec $sth->fetchrow_array() pour récupérer et afficher chaque rangée.

Opération UPDATE

Parfois, nous devons modifier nos données. C'est comme éditer une cellule dans notre feuille de calcul.

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 "Nombre total de lignes mises à jour : $rv\n";
}

Dans ce code :

  1. Nous créons une instruction SQL UPDATE.
  2. Nous l'exécutons avec $dbh->do().
  3. Nous vérifions combien de lignes ont été affectées et affichons le résultat.

Opération DELETE

Enfin, apprenons comment supprimer des données. C'est comme supprimer une rangée de notre feuille de calcul.

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 "Nombre total de lignes supprimées : $rv\n";
}

Ce code suit le même schéma que notre opération UPDATE :

  1. Nous créons une instruction SQL DELETE.
  2. Nous l'exécutons avec $dbh->do().
  3. Nous vérifions combien de lignes ont été affectées et affichons le résultat.

Et voilà ! Vous avez maintenant appris les bases de la manipulation des bases de données SQLite avec Perl. Souvenez-vous, la pratique rend parfait, donc n'ayez pas peur d'expérimenter avec ces exemples. Avant de vous en rendre compte, vous serez en train de créer des applications de base de données complexes avec aisance !

Credits: Image by storyset