SQLite - Perl: 基礎者のガイド
こんにちは、未来のデータベース魔术師さんたち!SQLiteとPerlの素晴らしい世界への旅にあなた们を案内できることを、私たちはとても嬉しく思っています。コンピュータサイエンスを多年間教えてきた者として、この組み合わせはピーナッツバターとジャムのように - とても美味しいものです!それでは、腕をまくっていきましょう!
インストール
データベースの魔法を創造する前に、私たちのツールを設定する必要があります。これを、高級料理を作る前にキッチンを準備することに例えることができます。
1.まず、システムにPerlがインストールされていることを確認してください。ターミナルを開いて以下のコマンドを実行します:
perl -v
バージョン情報が表示されれば、問題ありません!
2.次に、DBI(データベースインターフェース)モジュールとSQLiteドライバーをインストールする必要があります。ターミナルを開いて以下のコマンドを実行します:
cpan install DBI
cpan install DBD::SQLite
これは数分かかるかもしれませんので、待っている間にコーヒーを飲むのも悪くありません。
DBIインターフェースAPI
今、材料が準備できたので、レシピブック - DBIインターフェースAPIを見てみましょう。これらは、私たちがSQLiteデータベースと対話するために使用する関数です。
以下是我们将使用的一些最常见的DBIメソッドの表です:
メソッド | 説明 |
---|---|
connect() | データベース接続を確立 |
prepare() | SQLステートメントを実行のために準備 |
execute() | 準備されたステートメントを実行 |
fetch() | SELECTステートメントからデータの行を取得 |
disconnect() | データベース接続を閉じる |
これらが今は混乱するかもしれませんが、進むにつれて詳細に説明していきます。
データベースに接続
まず、私たちのSQLiteデータベースに接続を確立しましょう。これは、ドアをノックして、丁寧に中に入る許可を求めるようなものです。
#!/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 "データベースを開くのに成功しました\n";
以下にこれを分解します:
- 必要なモジュールをインポートします。
- ドライバー(SQLite)とデータベース名を指定します。
- データソース名(DSN)文字列を作成します。
-
DBI->connect()
を使用して接続を確立し、$dbh
に格納します。 - 接続が成功した場合、成功メッセージを表示します。
テーブルの作成
今、データを保存するためのテーブルを作成しましょう。これを、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 "テーブルを作成しました\n";
}
以下に起こっていることを説明します:
- 私たちは、COMPANYという名前のテーブルを作成するSQLステートメントを定義します。
-
$dbh->do()
を使用してステートメントを実行します。 - 操作が成功したかどうかを確認し、適切なメッセージを表示します。
INSERT操作
テーブルにデータを追加する時がきました。これは、スプレッドシートの行を記入することに例えることができます。
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 "レコードを作成しました\n";
このコードでは:
- SQL INSERTステートメントを作成します。
-
$dbh->do()
を使用してステートメントを実行します。 - 成功した場合、確認メッセージを表示します。
SELECT操作
今、私たちのデータを取得しましょう。これは、スプレッドシートから情報を読み取ることに例えることができます。
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";
}
以下に説明します:
- 私たちは、SELECTステートメントを準備します。
-
$sth->execute()
を使用してステートメントを実行します。 -
while
ループを使用して、$sth->fetchrow_array()
で各行を取得し表示します。
UPDATE操作
時々、データを変更する必要があります。これは、スプレッドシートのセルを編集することに例えることができます。
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 "更新された行の总数: $rv\n";
}
このコードでは:
- SQL UPDATEステートメントを作成します。
-
$dbh->do()
を使用してステートメントを実行します。 - 影響を受けた行の数を確認し、結果を表示します。
DELETE操作
最後に、データを削除する方法を学びましょう。これは、スプレッドシートの行を削除することに例えることができます。
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 "削除された行の总数: $rv\n";
}
このコードはUPDATE操作と同じパターンを follows:
- SQL DELETEステートメントを作成します。
-
$dbh->do()
を使用してステートメントを実行します。 - 影響を受けた行の数を確認し、結果を表示します。
それで、あなたは刚刚Perlを使用してSQLiteデータベースを操作する基本を学びました。練習は完璧を生みますので、これらの例を試してみることをお勧めします。しばらくすると、複雑なデータベースアプリケーションを簡単に作成できるようになるでしょう!
Credits: Image by storyset