SQLiteManagerでDB作成

(1/1)
PHPで動かすことができるSQLite管理ツール「SQLiteManager」を導入し、これを使ってデータベースを作成する。

SQLiteManagerの入手とインストール

SQLiteManager はオープンソースのSQLite管理ツールで、PHP5で動かすことができる。

まず、ダウンロードサイトから圧縮ファイルをダウンロードする。
圧縮ファイルを解凍すると、PHPのスクリプトが入っているフォルダ "SQLiteManager-xxxx" ができるので、これをPHPが実行できるフォルダへコピーする。ここでは、"/sqlitemanager" という名前のフォルダにコピーしたとする。

SQLiteManager 1.24の日本語エンコードは EUC-JP であるため、これを UTF-8 に変更しておく。
ファイル "/sqlitemanager/lang/japanese.inc.php" の冒頭にある2行を下記のように変更する。
【変更前】
$charset = 'euc-jp';
$langSuffix = 'ja-euc';
【変更後】
$charset = 'utf-8';
$langSuffix = 'ja-utf-8';
変更したら、このファイルを UTF-8 に変換して、保存する。

また、いくつかの関数定義で警告が出るため、次のように変更する。
ファイル "/sqlitemanager/lang/sqlite.class.php" の "function getDbVersion" の先頭に "static" に加える。
また、いくつかの関数定義にエラーが出るため、以下のように
ファイル "/sqlitemanager/lang/ParsingQuery.class.php" の "function explodeSelect" の先頭に "static" に加える。

データベースの作成

データベース作成 - SQLiteManager
Webブラウザから "https://localhost/sqlitemanager" を開くと、SQLiteManager が実行され、上図のような画面になる右側のプルダウンメニューから "日本語" を選ぼう。

次に、「新しいデータベースを追加」のところで、Versionは "3" を選び、名前に "pahoodb"、パスに "pahoodb.sqlite3" と入力し、「保存」ボタンをクリックする。これでデータベース "pahoodb" が作成される。
SQLiteは1つのデータベースが1つのファイルから成り立つ。実際に "/sqlitemanager" フォルダの下にバイナリ・ファイル "pahoodb.sqlite3" ができていることを確認してみよう。
Linuxの場合、このファイルを読み書きできる必要があるので、パーミッションが 666 になっていることも確認しておこう。

テーブルの作成

データベース、テーブル、レコード、カラムの関係
ここでは、歴史上の人物のデータベースをつくってみることにする。格納するデータは、人物の名前、生年、没年、実績の4種類とする。

まず、データベースの実体である「テーブル」を作成する。
一般にRDBMSでは、1つのデータベースの中に複数のテーブルを格納することができる。データベースが Excelのブックに、テーブルがExcelのシートに、カラムがExcelの列、レコードがExcelの行に対応していると考えてもらえば分かりやすいだろう。実際、SQLiteの場合、データベース(ブック)毎にファイルが1つ作成される。
テーブル作成 - SQLiteManager
SQLiteManager でテーブルをつくるには、上図のように、テーブルの名前とカラムの個数を入力する。カラムは、名前、生年、没年、実績の4種類なので、"4" を入力する。テーブルの名前は "chronologic"(年代の、年代記の)とする。

カラムの設定

テーブル作成 - SQLiteManager
次にカラムの「型」を指定する画面になる。
一般にRDBMSでは、格納するデータの型を指定してやる必要がある。

SQLiteでは以下のような型を指定することができる。
説明
CHAR文字列(固定長)
VARCHAR文字列(可変長)
INTEGER整数
REAL小数
TEXTテキスト
BLOBバイナリデータ
ここでは、以下のように対応づけた。
内容 名前
名前nameVARCHAR 40バイト以下
生年birth整数
没年death整数
実績commentテキスト
また、そのカラムに必ずデータが入っていなければならないものを「not null」で、検索キーを「プライマリ」で指定してやる必要がある。ここでは、名前(name)を not null でプライマリとした。
テーブル作成 - SQLiteManager
以上を設定し「保存」ボタンをクリックすると、上のような画面になる。

データ挿入

データ挿入 - SQLiteManager
これでデータベースの“入れ物”は用意された。次に、データを入力(挿入)してみよう。

SQLiteManagerのメニュー(上から2行目)の「挿入」をクリックすると、データ挿入画面になる。ここでは、徳川家康のプロフィールを入力してみる。
項目 内容
名前徳川家康
生年1548
没年1616
実績江戸幕府初代将軍(1603~1605)。三河岡崎城主・松平広忠の長男。今川義元の人質から解放され、織田信長、豊臣秀吉に協力。秀吉の死後、関ヶ原の戦いで勝利し、1603年、征夷大将軍となる。

データ・インポート

データインポート - SQLiteManager
データを一人一人入力していくのは大変である。
そこで、あらかじめ用意したCSVファイルを使い、一気に挿入する方法を紹介する。CSVファイルはMicrosoft Excelなどを使ってつくっておけばよい。ただし、UTF-8 に変換してから保存すること。
まず、リンク先の圧縮ファイルをダウンロードして、解凍してほしい。先ほどの徳川家康を含め、戦国時代の人物13人のプロフィールが登録されたCSVファイルが入っている。

先ほどの入力画面で「ファイルからデータを挿入」をクリックすると、上手のような画面になる。ここで、先ほど解凍した "chrono1.csv" を指定し、区切り文字をカンマ "," に変更し、「実行」ボタンをクリックする。
データインポート - SQLiteManager
すると上図のように、一気に挿入されたことが分かる。

これから、このデータベース "pahoodb.sqlite3" を使って話を進めていくので、消去しないようにしてほしい。

参考サイト

(この項おわり)
header