6 sqlite3 python csv イル分析する


PIC
____________________________________________________________________

sqlite はおSQL 利用するためのみですタベつの UNIX イルとしてされており 便うことができることまたバクライアントアキテクチではなくOS するイルシステムして ACID しているという徴があります ( 4)*6 タベ利用するにおいてはタベバクライアントモデル利用しようとするとタベスフ イルホスト名や名やパスワでも必要になりますがそれらが必要なくなります そのためタベインスタンス立ちげなくてもよいんだけどSQL 使いたいというようなクイ クハ便です


PIC

4: 的な DB sqlite


まずこの必要連パインストしまし

apt-get install sqlite3 python-pysqlite2

6.1 タベ

sqlite3 という CUI アプリケがあり的な SQL 文を利用することができますまたruby, perl, ocaml, haskell, common lisp, Smalltalk などの的なプログラミング言語バインデングされておりタベ 利用することができます

まずタベしてみまし

$ sqlite3 debmtg.db
sqlite>

存在しないしいイル名をすればそのイル名でタベされますこのSQL (CREATE TABLE) などが利用できます

6.2 をつこむ

タベできたのでをつこんでみましcsv イルからタベする えてみますsqlite3 .import コマンド使えばよいのですがここではプログラム言語バインデング インポしてみます

まずcsv します

,10
,15
,9

csv イルSQL コマンドする python きます

  #!/usr/bin/python2.5
  
  """ test program to import minimalistic csv file to sqlite database.
  Creates debmtg.db
  """
  from pysqlite2 import dbapi2
  import csv
  
  con = dbapi2.connect(’debmtg.db’)
  cur = con.cursor()
  
  cur.execute(’create table test(name text, score number)’)
  
  for rows in csv.reader(file(’test.csv’)):
      cur.execute(’insert into test(name, score) values(?,?)’,
                      (rows[0].decode(’utf-8’),int(rows[1])))
  
  con.commit()
  con.close()

6.3 SQL 使てみる

sqlite3 コマンドするとインタラクテSQL 文をすることが能です

まずsqlite 命令をつかタベ造を分析してみます

$ sqlite3 debmtg.db
sqlite> .tables
test
sqlite> .dump test
BEGIN TRANSACTION;
CREATE TABLE test(name text, score number);
INSERT INTO "test" VALUES(’ ’,10);
INSERT INTO "test" VALUES(’ ’,15);
INSERT INTO "test" VALUES(’ ’,9);
COMMIT;

SQL 文でランキング調べたり平均調べたりもできます

sqlite> select name, score from test order by score;
|9
|10
|15
sqlite> select sum(score)/count(score) from test;
11

単ですがsqlite でした ____________________________________________________________________________________________

PIC Debian

2008 12 20   1 発行
エ リ ア Debian 発行
__________________________