SQLite Database Browserを使った視覚的なSQLの試し打ち

[ View CodeClose ]

MySQL,PostgreSQLといろいろあるが、これらのソフトはインストールとユーザの設定やテーブルの設定、セキュリティなど初期構築が初めて取り扱う者が初めに行うことになる作業でありながらかなり複雑で奥が深すぎ、またコンソールからの対話となるため全体が掴みにく、PHPサーバを経由することでウェブブラウザからGUI操作できるがそれもひと手間増えるのでSQLite Database ManagerというSQLiteを使ったデータベースに親しむ方法を紹介する

公式スクリーンショットhttp://sqlitebrowser.sourceforge.net/screenshots.html
Downloadhttp://sourceforge.net/projects/sqlitebrowser/files/sqlitebrowser/2.0%20beta1/

File > New Database で新規にデータベースファイルを作成

このような表を作ろうと思う

Calendar
NUMBERENGLISHJAPANESE
1January一月
2Febrary二月


データベースのファイル名を適当に決め、"Create Table" Dialogが出てくるので「Calender」にした。
そして"Add"ボタンで上のNUMBER,ENGLISH,JAPANESE列を追加して"Create"ボタンで作成

NUMBERINTEGER PRIMARY KEYあるいはNUMERICでもいい
ENGLISHTEXT
JAPANESETEXT

*他のSQLではデータの型により細かい定義がある他SQLiteでもvarcharやintegerでより細かい設定は可能

LOGでSQLクエリが見れる

便利なのはLOGでSQLクエリとして何が発行されたのか調べることができる点。
開いたフォルダとかフリッピーディスクのアイコンとかが並んでいるツールバーから"LOG"アイコンをクリックし"Apprication"を選択すると発行されたクエリが見れる

SELECT name, sql FROM sqlite_master WHERE type='table' ORDER BY name;
SELECT name, sql FROM sqlite_master WHERE type='index' ORDER BY name;
CREATE TABLE Calendar (ENGLISH TEXT, JAPANESE TEXT, NUMBER INTEGER PRIMARY KEY);
SELECT name, sql FROM sqlite_master WHERE type='table' ORDER BY name;
PRAGMA TABLE_INFO(Calendar);
SELECT name, sql FROM sqlite_master WHERE type='index' ORDER BY name;
SELECT rowid, *  FROM Calendar ORDER BY rowid; 
SELECT name, sql FROM sqlite_master WHERE type='table' ORDER BY name;
PRAGMA TABLE_INFO(Calendar);
SELECT name, sql FROM sqlite_master WHERE type='index' ORDER BY name;
SELECT rowid, *  FROM Calendar ORDER BY rowid; 

ここで今気ににしているのは

CREATE TABLE Calendar (ENGLISH TEXT, JAPANESE TEXT, NUMBER INTEGER PRIMARY KEY);

の行でこれでテーブルが作成されていることが分かる

"Execute SQL" タブでクエリの試し打ちをする

"Execute SQL" タブでクエリの試し打ちができる便利な機能があるため
ここで

drop table Calander

として"Execute query"ボタンを押すと残念なことにせっかく作成したテーブルは削除される。他の「Database Structure」とか「Browse Data」ダブでそれは確認できる


他の時コマンド

そしたら今度は手動で

CREATE TABLE Calendar (ENGLISH TEXT, JAPANESE TEXT, NUMBER INTEGER PRIMARY KEY);

すれば再作成できる

データベースはオートセーブではないので変更したらこまめにフロッピーボタン押してセーブする

値を加える

ここからちょっとこちらの話で辞書データを作成するため

dicciones
pisclexenglishotras

というテーブルを作成した

create table dicciones(pisclex text,english text,otras text)


それで「Browse Data」タブを開いて値を追加できる

tertake
tenirtake

を加えてみた。


logから

INSERT

で行を追加して

UPDATE

で値をコマに入れてるんだろうと思われる

列を追加する

ツールバーの表の右上が爆発しているアイコンを押すと列を追加できる。
ここでは

notasTEXT

という列を追加した

また、logから

CREATE TEMPORARY TABLE TEMP_TABLE(notas TEXT, pisclex text, english text, otras text);
INSERT INTO TEMP_TABLE SELECT notas, pisclex, english, otras FROM dicciones;
DROP TABLE dicciones;
CREATE TABLE dicciones (notas TEXT, pisclex text, english text, otras text);
INSERT INTO dicciones SELECT notas, pisclex, english, otras FROM TEMP_TABLE;
DROP TABLE TEMP_TABLE;

の部分で

  1. 一時的なテーブルを作製してそこに旧データを流しこみ
  2. 旧テーブルを削除、
  3. 新規にテーブルを作製してそこに一時的なテーブルからデータを流しこんでいる ことが分かる

そして気になれば「Execute SQL」で打ってみればい。 構文: GQLを使ったselect文の試し打ち

SELECT * from Dicciones

とか。

最後に

こういうわけで、SQLite Database Managerを使えば設備構築に時間を取られることなくデータベースを利用できる

辞書ファイル./pisclex(sqlite3 database 拡張子なしなので File > OpenDatabase で開いてください)
SQLite Database Browser Firefox addonhttps://addons.mozilla.org/en-US/firefox/addon/sqlite-manager/

注.

FROM sqlite_master

のsqlite_masterテーブルはsqliteオリジナルである。

csv import

File importからcsvインポートを行なったが、gui上ではń,ś,ćが文字化けした。日本語もうまくいかない可能性がある。(Ubuntu Locale utf8)
その際のプログラム上のエンコードも

PRAGMA encoding;

で調べてみたがutf8で一致していた。
コマンドラインから

~# sqlite3 Pisclex
SQLite version 3.6.22
Enter ".help" for instructions
Enter SQL statements terminated with a ";"
sqlite> .separator "\t"
sqlite> .import csv.txt import
sqlite> .quit

すると文字化けしなかったためSQLite Database Manager側の問題である可能性があるimport tableは事前に作成

Sun 5/15 2011


Leave your comments

    inserted by FC2 system