HOMEUP

最近(2009.02.23)、Monoでいろいろとやってます。

Monoっていうのは.NET Framework互換環境で、MicrosoftのC#やらF#(^^;)、VBとかもLinuxで動いちゃいます。Linuxで開発したC#アプリとかもWindowsXPで動いちゃう。

一度作ったものはどこでも動いちゃう(Write once, run anywhere : まあ動くヤツは動くのです)、Javaのコンセプトとよく似てます。(こう書くとなんか突っ込まれそうだけど…)

とりあえずC#(csharp)使ったことがないのでcsharpの勉強開始。

で、今はDataBase関係であれやこれややっています。

MySQLが好きなので、いつもMySQLでやっていたのですがSQLite楽との事なのでSQLiteも勉強してみます。Monoに関しては別にカテゴリを作成予定。

私の使いそうないろいろな言語にも対応しているし設定が楽なので勉強することにしました。

例によって個人用メモページ作成開始。

公式ページ

公式ページはSQLite Home Pageです。

とりあえずシェルやDOS窓(って最近言わない?)とかで動かすために…

公式ページ上のDOWNLOADをクリックすると表示されるページからLinux,MacOSX,Windows用のダウンロードができます。

Linuxの場合は大抵のディストリビューションで用意してくれていると思うので各ディストリビューションのパッケージ管理ソフトで調べて見てください。(私の使っているFedora 10(x86_64)でももちろんありました)

SQLiteの特徴とか

SQLiteはAccessやMySQLなどと同じようなDBMS(データベース管理システム)です。

ライセンス形態はパブリックドメイン
つまり勝手にSQLiteを使った会計システムとか作って販売したりしても別に構わなかったりします。(まあ自分が作ったりしたらSQLite使わせてもらってますみたいに書くと思うけど…)
標準的なSQLの文法を多くサポート
まだちゃんと調べていないんですがTRIGGERとかも使えたりします。FULL OUTER JOINとかは使えないみたいですけど(使ったことない^^;)
SQL92に準拠しているそうなのでSQL勉強したい人には最適かもしれません。(軽い<し、小さいので)
ライブラリとして実装されている
スタンドアローンなシステムでは非常に使いやすそうです。(電子レンジとかの組み込みシステムでレシピとか管理するのにいいかもしれません)
配布する際も最低実行形式のファイル一つだけでもいけそうですね。
DBのファイルはひとつだけ
1DBは1FILEです。配布したりするときも便利だけどいろいろ触ったりする時にバックアップとか取るのはコピーするだけでできます。ものぐさものの私にはピッタリです。一度作ったDBを他のプログラミング言語で触ったりするときにも楽ですね〜。

とりあえず動かしてみる

とりあえずLinux(Fedora 10)でbashのプロンプトから動かしてみます。(Windowsではまだ試していません)

$ ls
$ sqlite3 test.db
SQLite version 3.5.9
Enter ".help" for instructions
sqlite> create table testtable (
   ...> id integer not null,
   ...> name text not null,
   ...> primary key (id))
   ...> ;
sqlite> .schema
CREATE TABLE testtable (
id integer not null,
name text not null,
primary key (id));
sqlite> .quit
$ ls
test.db

上記の様にデータベース名(test.db)が指定されているとそのデータベースがないときは作成され、あるときはそのデータベースが開かれます。

漢字の取扱い

TEXT型ははUTF-8, UTF-16BE, UTF-16LEをサポートしています。Fedora 10はデフォルトでUTF-8を使用するので

$ sqlite3 test.db
SQLite version 3.5.9
Enter ".help" for instructions
sqlite> select * from testtable;
sqlite> insert into testtable(id,name) values (1,"SBCL スティールバンクコモンリスプ");
sqlite> insert into testtable(id,name) values (2,"C# csharp シーシャープ");
sqlite> select * from testtable where name like "%リスプ%";
1|SBCL スティールバンクコモンリスプ
sqlite> .quit
$ 

このように普通に漢字が使えたりします。(カタカナですが^^;)

Windowsでプログラミングするときになんか問題ありそうな予感。(その内Windowsでも実験しようと思います。)

HOMEUP