SQLite - Perl: Ein Anfängerleitfaden

Hallo那里,未来的数据库巫师们!我很高兴能成为你们在这个激动人心的SQLite和Perl-Welt旅程中的向导。作为一个教了多年计算机科学的人,我可以告诉你,这种组合就像花生酱和果酱一样——简单美味!那么,让我们卷起袖子,跳进去吧!

SQLite - Perl

Installation

在我们开始创造数据库魔法之前,我们需要设置我们的工具。想想这就像在烹饪美味大餐之前准备你的厨房。

  1. 首先,确保你的系统上安装了Perl。你可以通过打开终端并输入以下命令来检查:
perl -v

如果你看到了版本信息,那你就准备好了!

  1. 接下来,我们需要安装DBI(数据库接口)模块和SQLite驱动程序。打开你的终端并输入:
cpan install DBI
cpan install DBD::SQLite

这可能需要几分钟的时间,所以你可以趁机喝杯咖啡。

DBI Interface APIs

现在我们的原料准备好了,让我们来看看食谱书——DBI接口API。这些是我们用来与SQLite数据库交互的函数。

下面是我们将要使用的一些最常见的DBI方法表格:

Methode Beschreibung
connect() eine Datenbankverbindung herstellen
prepare() eine SQL-Anweisung für die Ausführung vorbereiten
execute() eine vorbereitete Anweisung ausführen
fetch() eine Datenzeile aus einer SELECT-Anweisung abrufen
disconnect() eine Datenbankverbindung schließen

Mach dir keine Sorgen, wenn diese jetzt verwirrend erscheinen. Wir werden jeden von ihnen im Detail durchgehen.

Datenbankverbindung herstellen

Lassen Sie uns mit der Herstellung einer Verbindung zu unserer SQLite-Datenbank beginnen. Das ist so, als würde man an die Tür klopfen und höflich um Einlass bitten.

#!/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 "Datenbank erfolgreich geöffnet\n";

Lassen Sie uns das aufschlüsseln:

  1. Wir beginnen mit dem Importieren der notwendigen Module.
  2. Wir geben den Treiber (SQLite) und den Datenbanknamen an.
  3. Wir erstellen eine Datenquellenname (DSN)-Zeichenkette.
  4. Wir verwenden DBI->connect() um eine Verbindung herzustellen und speichern sie in $dbh.
  5. Wenn die Verbindung erfolgreich ist, drucken wir eine Erfolgsmeldung.

Eine Tabelle erstellen

Nun, wo wir drin sind, lassen Sie uns eine Tabelle erstellen, um einige Daten zu speichern. Stellen Sie sich das wie das Erstellen einer neuen Excel-Tabelle vor.

my $stmt = qq(CREATE TABLE UNTERNEHMEN
(ID INT PRIMARY KEY     NOT NULL,
NAME           TEXT    NOT NULL,
ALTER          INT     NOT NULL,
ADRESSE        CHAR(50),
GEHALT         REAL););

my $rv = $dbh->do($stmt);
if($rv < 0) {
print $DBI::errstr;
} else {
print "Tabelle erfolgreich erstellt\n";
}

Hier ist, was passiert:

  1. Wir definieren unsere SQL-Anweisung, um eine Tabelle namens UNTERNEHMEN zu erstellen.
  2. Wir verwenden $dbh->do() um die Anweisung auszuführen.
  3. Wir überprüfen, ob der Vorgang erfolgreich war und drucken eine entsprechende Nachricht.

INSERT-Operation

Es ist an der Zeit, einige Daten in unsere Tabelle hinzuzufügen. Das ist so, als würde man die Zeilen eines Arbeitsblatts ausfüllen.

my $stmt = qq(INSERT INTO UNTERNEHMEN (ID,NAME,ALTER,ADRESSE,GEHALT)
VALUES (1, 'Paul', 32, 'Kalifornien', 20000.00 ));

my $rv = $dbh->do($stmt) or die $DBI::errstr;
print "Datensätze erfolgreich erstellt\n";

In diesem Code:

  1. Wir erstellen eine SQL-INSERT-Anweisung.
  2. Wir führen sie mit $dbh->do() aus.
  3. Wenn erfolgreich, drucken wir eine Bestätigungsmeldung.

SELECT-Operation

Nun lassen Sie uns unsere Daten abrufen. Das ist so, als würde man Informationen aus einer Excel-Tabelle lesen.

my $stmt = qq(SELECT id, name, address, salary from UNTERNEHMEN;);
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 "ADRESSE = ". $row[2] ."\n";
print "GEHALT = ". $row[3] ."\n\n";
}

Hier ist die Zusammenfassung:

  1. Wir bereiten unsere SELECT-Anweisung mit $dbh->prepare() vor.
  2. Wir führen die Anweisung mit $sth->execute() aus.
  3. Wir verwenden eine While-Schleife mit $sth->fetchrow_array() um jede Zeile abzurufen und auszudrucken.

UPDATE-Operation

Manchmal müssen wir unsere Daten ändern. Das ist so, als würde man eine Zelle in einer Excel-Tabelle bearbeiten.

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

if( $rv < 0 ) {
print $DBI::errstr;
} else {
print "Anzahl der aktualisierten Zeilen: $rv\n";
}

In diesem Code:

  1. Wir erstellen eine UPDATE-SQL-Anweisung.
  2. Wir führen sie mit $dbh->do() aus.
  3. Wir überprüfen, wie viele Zeilen betroffen waren und drucken das Ergebnis.

DELETE-Operation

Schließlich lernen wir, wie man Daten entfernt. Das ist so, als würde man eine Zeile aus einer Excel-Tabelle löschen.

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

if( $rv < 0 ) {
print $DBI::errstr;
} else {
print "Anzahl der gelöschten Zeilen: $rv\n";
}

Dieser Code folgt dem gleichen Muster wie unsere UPDATE-Operation:

  1. Wir erstellen eine DELETE-SQL-Anweisung.
  2. Wir führen sie mit $dbh->do() aus.
  3. Wir überprüfen, wie viele Zeilen betroffen waren und drucken das Ergebnis.

Und da hast du es! Du hast gerade die Grundlagen des Arbeitens mit SQLite-Datenbanken in Perl gelernt. Denke daran, Übung macht den Meister, also habe keine Angst, diese Beispiele auszuprobieren. Bereit, komplexe Datenbankanwendungen mit Leichtigkeit zu erstellen!

Credits: Image by storyset