SQLite3 のチュートリアルを読んでも、もう一つ使い方が分かった気がしなかった。そこで、コマンドラインのデータベースアクセスプログラム sqlite3 を使って小さなデータベースを作ってみることにした。
材料にしたのは例によって、Wikipediaからコピペしてきたアミノ酸のデータベースだ。タブ区切りになっていたのを vi を利用して、コンマ区切りの次のようなファイルにした。 ファイル名: aminoacid.txt Alanine,Ala,A,nonpolar,neutral,1.8 Arginine,Arg,R,polar,basic(strongly),-4.5 Asparagine,Asn,N,polar,neutral,-3.5 Asparticacid,Asp,D,polar,acidic,-3.5 Cysteine,Cys,C,nonpolar,neutral,2.5 Glutamicacid,Glu,E,polar,acidic,-3.5 Glutamine,Gln,Q,polar,neutral,-3.5 Glycine,Gly,G,nonpolar,neutral,-0.4 Histidine,His,H,polar,basic(weakly),-3.2 Isoleucine,Ile,I,nonpolar,neutral,4.5 Leucine,Leu,L,nonpolar,neutral,3.8 Lysine,Lys,K,polar,basic,-3.9 Methionine,Met,M,nonpolar,neutral,1.9 Phenylalanine,Phe,F,nonpolar,neutral,2.8 Proline,Pro,P,nonpolar,neutral,-1.6 Serine,Ser,S,polar,neutral,-0.8 Threonine,Thr,T,polar,neutral,-0.7 Tryptophan,Trp,W,nonpolar,neutral,-0.9 Tyrosine,Tyr,Y,polar,neutral,-1.3 Valine,Val,V,nonpolar,neutral,4.2 それから、aminoacid.db というデータベースに aa というテーブルを作るスキーマ aa.sql を次のように作った。 ファイル名: aa.sql create table aa( name varchar(14), let3 varchar(3), let1 varchar(1), polarity varchar(8), acidity varchar(16), hydropathy real ); これで準備ができたので、sqlite3 をつかって、aminoacid.db と言うデータベースを作り、その中に aa というテーブルを作った。 $ sqlite3 aminoacid.db < aa.sql それから、aminoacid.txt のデータをテーブル aa にインポートした。 $ sqlite3 -separator , aminoacid.db ".import aminoacid.txt aa" そうして、sqlite3 で、aminoacid.db に接続し、次のような操作でテーブルがちゃんとできているか確認した。(結果の表示は省略。) $ sqlite3 aminoacid.db SQLite version 3.4.2 Enter ".help" for instructions sqlite> .tables sqlite> select * from aa; スキーマを確認。 sqlite> .schema カラムの幅を指定。(0にすると自動的に設定してくれる。) sqlite> .width 0 0 0 0 0 0 表示をわかりやすくする。 sqlite>.explain もう一度、テーブルを表示 sqlite> select * from aa; カラムの幅を調整 sqlite> .width 14 3 3 8 16 10 もう一度表示 sqlite> select * from aa; 並べ替え sqlite> select * from aa order by let1; 検索 sqlite> select * from aa where hydropathy > 3; やはり、データベースはデータを入力して動かして見ないと使い方が分からない。sqlite3 はサーバーを動かさなくても、コマンドラインから簡単に扱えるので、個人用の小さなデータをデータベースで処理してみるのには手軽で便利だ。 sqlite3-ruby を使うと、検索の出力を Ruby の配列にできるようなので、それをさらに加工することもできる。便利になったものだ。
by tnomura9
| 2008-10-09 00:01
| Ruby
|
Comments(0)
|
カテゴリ
新型コロナウイルス 主インデックス Haskell 記事リスト 圏論記事リスト 考えるということのリスト 考えるということ ラッセルのパラドックス Haskell Prelude Ocaml ボーカロイド 圏論 jQuery デモ HTML Python ツールボックス XAMPP Ruby ubuntu WordPress 脳の話 話のネタ リンク 幸福論 キリスト教 心の話 メモ 電子カルテ Dojo JavaScript C# NetWalker ed と sed HTML Raspberry Pi C 言語 命題論理 以前の記事
最新のトラックバック
最新のコメント
ファン
記事ランキング
ブログジャンル
画像一覧
|
ファン申請 |
||