PythonでSQLiteテーブルの作成と削除
SQLiteは聞いたことがありますよね
一回特徴だけをまとめて、簡単に説明します。
目次
ゼロ設定
サーバレス
単一のデータベースファイル
クロスプラットフォームのデータベースファイル
コンパクト
マニフェスト型付け
可変長のレコード
オープソース
サンプルコード
早速今回実行するサンプルコードを見てみましょう!
(動作確認できた環境はPython 3です。)
import sqlite3 from contextlib import closing def test_sqlite3(): dbname = 'database.db' with closing(sqlite3.connect(dbname)) as conn: con = conn.cursor() # executeメソッドでSQL文を実行する # ここでは、もしusersテーブルが存在していたら、一旦削除します。 drop_table = '''drop table if exists users''' con.execute(drop_table) # ここでは、もしusersテーブルが存在していなかったら、作成します。 create_table = '''create table if not exists users (id int, name varchar(64), age int, gender varchar(32))''' con.execute(create_table) # SQL文に値をセットする場合は,Pythonのformatメソッドなどは使わずに, # セットしたい場所に?を記述し,executeメソッドの第2引数に?に当てはめる値を # タプルで渡す. sql = 'insert into users (id, name, age, gender) values (?,?,?,?)' user = (1, '高橋', 34, 'male') con.execute(sql, user) # 一度に複数のSQL文を実行したいときは,タプルのリストを作成した上で # executemanyメソッドを実行する insert_sql = 'insert into users (id, name, age, gender) values (?,?,?,?)' # タプルデータの配列 users = [ (2, '斎藤', 23, 'male'), (3, '井上', 34, 'mail'), (4, '水谷', 32, 'female'), (5, '小林', 19, 'male') ] con.executemany(insert_sql, users) conn.commit() select_sql = 'select * from users' for row in c.execute(select_sql): print(row)
少しmySQLなどの経験があれば、すぐ理解できるプログラムですね。
とても簡単ですね。
私、自分のプロジェクトでmySQLを使ったり、昔会社の業務システムでOracle SQLServerを使った経験がありますが
SQLiteで本当に手軽に使えていいですね。
そんな、大規模の、ミッションクリティカル出ない場面でしたら、手取り早いですね。
もっと情報を参照したいときは、こちらへどうぞ
https://docs.python.jp/3/library/sqlite3.html
最新版が
SQLite Release 3.24.0 On 2018-06-04
4日前ですね!
[amazonjs asin=”0596521189″ locale=”JP” title=”Using SQLite”]
[amazonjs asin=”479811944X” locale=”JP” title=”SQLite入門 第2版”]