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版”]