python3.doc_21
R e i - D r e a m
for Laravel
TOP > Python3 > DB操作(SQLite)
Guest
login

最終投稿日:2022年6月18日

DB操作(SQLite)
SQLiteによるDB操作
SQLiteはお手軽なデータベースです。
特に何の準備も不用で「python」があれば利用できます。
例)
import sqlite3
import os
dir = os.path.dirname(__file__)
db_path = os.path.join( dir, 'hoge.sqlite' )      ※拡張子 sqlite となる DB を定義する
con = sqlite3.connect(db_path)                           ※ファイルはなくても、この時点で作られます
cur = con.cursor()                                                       ※操作するためのカーソルを取得
cur.executescript("""            ※DDL 等を処理する場合は executescript メソッドを使う
    /* 既に items テーブルがあれば削除する */
    drop table if exists items;
    /* テーブルの作成 */
    create table items(
        item_id integer primary key,
        name text unique,
        price integer
    );
    /* データを投入 */
    insert into items (name, price) values ('ケーキ', 600);
    insert into items (name, price) values ('プリン', 300);
    insert into items (name, price) values ('紅茶', 230);
""")
con.commit()                      ※コミットすると永続化されます
cur.execute("select * from items where price > 250")            ※CURD 関連は execute メソッドを使う
item_list = cur.fetchall()                                          ※fetchall() でレコード単位でタプル型となる
for row in item_list:
    print(row)
print('------------------------------------')
cur.execute("insert into items (name, price) values (?, ?)", ('コーヒー', 180))      ※単独の登録
con.commit()
cur.execute("select * from items where price < 500")
item_list = cur.fetchall()
for row in item_list:
    print(row)
print('------------------------------------')
data = [('パン', 120),('アイス', 220)]
           ※複数の登録をする場合は executemany メソッドを使う
cur.executemany("insert into items (name, price) values (?, ?)", data)
con.commit()
condition = (2, 200)
cur.execute("select * from items where item_id > ? and price < ?", condition)
item_list = cur.fetchall()
for row in item_list:
    print(row)
ログインしてコメントを残そう!!


きっぷる