LoginSignup
0
1

More than 1 year has passed since last update.

pythonでのsqlite3データベース作成

Last updated at Posted at 2022-06-03

目的

SQLiteでデータベース、テーブルの作成、編集をしてみたかったので、試してみました。
後に記事にしますが、これを使用して、物品管理ができるプログラムを作成していきます。

開発環境

Python version:3.9.7
OS: windows 10.0

プログラム

データベース名は、book_list.db、テーブル名は、bookitemsにしています。
make_tableでは、テーブルの作成と値の設定しています。reset_statusでは、デーブル内で設定したstatusを初期状態に戻す操作をしています。この操作は、bookitemsが作成されていない時に実行すると走行するようにしています。

make_db.py
import sqlite3

def make_table(cur):
    # make the table
    cur.execute(
        'CREATE TABLE bookitems(name TEXT , code INTEGER, status INTEGER)'
    )
    
    # Data registration
    inserts = [
        ("あいうえお",10001, 0),
        ("かきくけこ",10002, 0),
        ("さしすせそ",10003, 0),
        ("たちつてと",10004, 0),
        ("なにぬねの",10005, 0),
        ("はひふへほ",10006, 0),
        ("まみむめも",10007, 0),
        ("やゆよ",10008, 0),
        ("らりるれろ",10009, 0),
        ("わをん",10010, 0)
    ]
    # execute many data 
    cur.executemany('INSERT INTO bookitems values(?, ?, ?)', inserts)
    cur.close()
    
def reset_status(cur):
    cur.execute('UPDATE bookitems SET status = "0" ')
    cur.close()    

def main():
    
    # connect database
    dbname = 'book_list.db'
    conn = sqlite3.connect(dbname)
    
    # make cursor to operate SQlite
    cur = conn.cursor()
    
    #check if the table exist the table 
    cur.execute(''' SELECT count(name) FROM sqlite_master WHERE type='table' AND name='bookitems' ''')
    if cur.fetchone()[0]==1:
        reset_status(cur)
    else:
        make_table(cur)
        
    conn.commit()   # commit 
    conn.close()    # close data base

if __name__ == '__main__':
    main()

DB Browser

作成したbook_list.dbは、DB Browser for SQLiteで操作すると、編集がしやすいです。
使い方は、こちらを参照してください。

参考リンク

下記サイトを参考にさせていただきました。

PythonからSQLiteを操作する方法
python3でsqlite3の操作。作成や読み出しなどの基礎。

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1