Sqlite-perl
SQLite-Perl
この章では、PerlプログラムでSQLiteを使用する方法を学習します。
インストール
SQLite3は、Perlプログラミング言語用のデータベースアクセスモジュールであるPerl DBIモジュールを使用してPerlと統合できます。 標準のデータベースインターフェイスを提供する一連のメソッド、変数、および規則を定義します。
以下は、Linux/UNIXマシンにDBIモジュールをインストールする簡単な手順です-
あなたがDBI用のSQLiteドライバをインストールする必要がある場合、それは次のようにインストールすることができます-
DBIインターフェイスAPI
以下は重要なDBIルーチンであり、PerlプログラムからSQLiteデータベースを操作するための要件を満たすことができます。 より洗練されたアプリケーションをお探しの場合は、Perl DBIの公式ドキュメントをご覧ください。
Sr.No. | API & Description |
---|---|
1 |
DBI→connect($data_source, "", "", \%attr) 要求された$ data_sourceへのデータベース接続またはセッションを確立します。 接続が成功した場合、データベースハンドルオブジェクトを返します。 データソースの形式は- DBI:SQLite:dbname = 'test.db' です。SQLiteはSQLiteドライバー名で、test.dbはSQLiteデータベースファイルの名前です。 ファイル名が ':memory:' として指定されている場合、メモリ内にセッション中だけ持続するメモリ内データベースが作成されます。 ファイル名が実際のデバイスファイル名である場合、その値を使用してデータベースファイルを開こうとします。 その名前のファイルが存在しない場合、その名前の新しいデータベースファイルが作成されます。 2番目と3番目のパラメーターは空の文字列として保持し、最後のパラメーターは次の例に示すようにさまざまな属性を渡すことです。 |
2 |
$dbh→do($sql) このルーチンは、単一のSQLステートメントを準備して実行します。 影響を受けた行の数またはエラー時にundefを返します。 -1の戻り値は、行数が不明、適用できない、または利用できないことを意味します。 ここで、$ dbhはDBI→ connect()呼び出しによって返されるハンドルです。 |
3 |
$dbh→prepare($sql) このルーチンは、データベースエンジンによる後の実行のためにステートメントを準備し、ステートメントハンドルオブジェクトへの参照を返します。 |
4 |
$sth→execute() このルーチンは、準備されたステートメントの実行に必要な処理を実行します。 エラーが発生すると、undefが返されます。 実行が成功すると、影響を受ける行の数に関係なく常にtrueが返されます。 ここで、$ sthは、$ dbh→ prepare($ sql)呼び出しによって返されるステートメントハンドルです。 |
5 |
$sth→fetchrow_array() このルーチンは、データの次の行をフェッチし、フィールド値を含むリストとしてそれを返します。 nullフィールドは、リスト内のundef値として返されます。 |
6 |
$DBI::err これは、$ h→ errと同等です。$ hは、$ dbh、$ sth、$ drhなどのハンドルタイプのいずれかです。 これは、最後に呼び出されたドライバーメソッドからネイティブデータベースエンジンのエラーコードを返します。 |
7 |
$DBI::errstr これは、$ h→ errstrと同等です。$ hは、$ dbh、$ sth、$ drhなどのハンドルタイプのいずれかです。 これは、最後に呼び出されたDBIメソッドからのネイティブデータベースエンジンエラーメッセージを返します。 |
8 |
$dbh→disconnect() このルーチンは、DBI→ connect()の呼び出しによって以前に開かれたデータベース接続を閉じます。 |
データベースに接続
次のPerlコードは、既存のデータベースに接続する方法を示しています。 データベースが存在しない場合は、データベースが作成され、最終的にデータベースオブジェクトが返されます。
次に、上記のプログラムを実行して、現在のディレクトリにデータベースtest.dbを作成します。 要件に応じてパスを変更できます。 上記のコードをsqlite.plファイルに保持し、以下に示すように実行します。 データベースが正常に作成された場合、次のメッセージが表示されます-
テーブルを作成する
次のPerlプログラムを使用して、以前に作成したデータベースにテーブルを作成します。
上記のプログラムが実行されると、test.dbにCOMPANYテーブルが作成され、次のメッセージが表示されます-
注-操作のいずれかで次のエラーが表示される場合-
- このような場合、DBD-SQLiteインストールで使用可能な* dbdimp.cファイル*を開き、* sqlite3_prepare()関数を見つけて、その3番目の引数を0ではなく *-1 に変更します。 最後に、 make を使用してDBD
- SQLiteをインストールし、 make install を実行して問題を解決します。
INSERT操作
次のPerlプログラムは、上記の例で作成されたCOMPANYテーブルにレコードを作成する方法を示しています。
上記のプログラムが実行されると、COMPANYテーブルに特定のレコードが作成され、次の2行が表示されます-
SELECT操作
次のPerlプログラムは、上記の例で作成されたCOMPANYテーブルからレコードを取得して表示する方法を示しています。
上記のプログラムを実行すると、次の結果が生成されます。
更新操作
次のPerlコードは、ステートメントを更新してレコードを更新し、更新されたレコードをCOMPANYテーブルからフェッチして表示する方法を示しています。
上記のプログラムを実行すると、次の結果が生成されます。
削除操作
次のPerlコードは、DELETEステートメントを使用してレコードを削除し、COMPANYテーブルから残りのレコードを取得して表示する方法を示しています-
上記のプログラムを実行すると、次の結果が生成されます。