PythonとSQLite3でTableの作成とTableの出力

概要

PythonとSQLite3でTableの作成とTableの出力。

出力データ

ID Ver Name Date
220 220.0 nico 2022/02/20
221 221.1 nuke 2022/02/21
222 222.2 neko 2022/02/22

Pythonコード

import pprint
import sqlite3


def main():

    print("PRESS ENTER KEY TO BOOT")
    input()

    con = None
    cur = None

    try:
        con = sqlite3.connect(":memory:")
        cur = con.cursor()

        create_sql = """
            CREATE TABLE Sample (
                ID   INTEGER
               ,Ver  REAL
               ,Name TEXT
               ,Date TEXT DEFAULT (datetime('now', 'localtime'))
            )
        """
        cur.execute(create_sql)
        cur.execute("INSERT INTO Sample VALUES(220, 220.0, 'nico', '2022/02/20')")
        cur.execute("INSERT INTO Sample VALUES(221, 221.1, 'nuke', '2022/02/21')")
        cur.execute("INSERT INTO Sample VALUES(222, 222.2, 'neko', '2022/02/22')")

        # pprint.pprint(tuple(cur.execute("SELECT * FROM sqlite_master")))
        # pprint.pprint(tuple(cur.execute("PRAGMA table_info('Sample')")))
        pprint.pprint(tuple([row[0] for row in cur.execute("SELECT name FROM sqlite_master WHERE type='table'")]))
        pprint.pprint(tuple([row[1] for row in cur.execute("PRAGMA table_info('Sample')")]))
        pprint.pprint(tuple(cur.execute("SELECT * FROM 'Sample'")))

    except Exception as e:
        print(e)
    finally:
        cur = cur.close() if cur is not None else None
        con = con.close() if con is not None else None

    print()
    print("PRESS ENTER KEY TO EXIT")
    input()


if __name__ == "__main__":
    main()

Link1

Python documentation
https://docs.python.org/3/
Python Standard Library
https://docs.python.org/3/library/
sqlite3 - DB-API 2.0 interface for SQLite databases
https://docs.python.org/3/library/sqlite3.html

sqlite documentation
https://www.sqlite.org/docs.html
List Of PRAGMAs
https://www.sqlite.org/pragma.html#toc
Datatypes In SQLite
https://www.sqlite.org/datatype3.html

pandas documentation
https://pandas.pydata.org/docs/
pandas api input/output
https://pandas.pydata.org/docs/reference/io.html
pandas api reference pandas.read_csv
https://pandas.pydata.org/docs/reference/api/pandas.read_csv.html
pandas api reference pandas.read_sql
https://pandas.pydata.org/docs/reference/api/pandas.read_sql.html
pandas api reference pandas.DataFrame.to_csv
https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.to_csv.html
pandas api reference pandas.DataFrame.to_sql
https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.to_sql.html
pandas api user guide dtypes
https://pandas.pydata.org/docs/user_guide/basics.html#basics-dtypes

Link2

SQLite入門
https://www.javadrive.jp/
https://www.javadrive.jp/sqlite/

SQLiteはどこが凄いデータベース管理システムなのか調べてみた
https://qiita.com/ko1nksm/items/87d27a287e1b6005d11c

python3でsqlite3の操作。作成や読み出しなどの基礎。
https://qiita.com/saira/items/e08c8849cea6c3b5eb0c
SQLite3のためのSQLリファレンス
https://qiita.com/tetr4lab/items/691ceeb528d6144547c8

SELECT文の評価順序の話
https://qiita.com/suzukito/items/edcd00e680186f2930a8
SQL記述者全員が理解すべきSELECT文の論理的な処理順序のお話
https://qiita.com/k_0120/items/a27ea1fc3b9bddc77fa1

SQL サブクエリ入門
https://qiita.com/aki3061/items/6df0513ccc5aa40a075a
SQL サブクエリ編
https://qiita.com/sho91/items/0de49ba749952ee5cb22

SQLiteで日付時刻を扱う際のポイント
https://qiita.com/TomK/items/132831ab45e2aba822a8
SQLite3 で created_at, updated_at
https://qiita.com/kerupani129/items/0372ea29d9375e55bb36

あとがき

ノンプログラマーの素人が記述をしたコードです。
狭い利用範囲と少ない利用頻度での確認ですので、
記載内容に間違いや勘違いがあるかもしれません。
上記内容を参照の際は自己責任でお願い致します。