田舎社会人のいろいろ学習記

Python、英語、その他いろいろ

【sqlite3】テーブルを作成・編集・削除する方法【Python】

f:id:vigilantPotato:20210704082302p:plain
Pythonの組込みモジュールであるsqlite3を用いてデータベースファイルのテーブルを作成・編集・削除する方法を整理する。 データベースの基本的な作成方法は、以下の記事を参照。


【スポンサーリンク】


テーブルを作成(IF NOT EXISTS)

データベース内にテーブルを作成するには、SQLコマンドのCREATE TABLE テーブル名(フィールド)を使用する方法が基本となるが、すでに同じ名前のテーブル名がデータベース内に存在する場合は、エラーとなってしまう。

CREATE TABLEの後にIF NOT EXISTSを記述することで、このようなエラーを防ぐことができる。以下、例を示す。

import sqlite3

#データベース読み込み
db = sqlite3.connect(
    "test.db",              #ファイル名
    isolation_level=None,
)

#存在しない場合のみテーブルを作成
sql = """
    CREATE TABLE IF NOT EXISTS Fruit(
        id INTEGER PRIMARY KEY,
        name VARCHAR(20),
        price INTEGER
    );
"""

db.execute(sql) #sql文を実行
db.close()      #データベースを閉じる

IF NOT EXISTSを加えることで、上記のSQLコマンドを何度実行してもエラーは発生しなくなる。

[↑ 目次へ]


テーブル名を取得

カーソルオブジェクトで以下のSQLコマンドを実行すると、データベース内に存在しているテーブル名を取得することができる。

"""SELECT name FROM sqlite_master WHERE TYPE='table'"""

以下、データベース内のテーブル名を取得して表示する例を示す。

import sqlite3

#データベース読み込み
db = sqlite3.connect(
    "test.db",              #ファイル名
    isolation_level=None,
)

#データベース中のテーブル名を取得する
sql = """SELECT name FROM sqlite_master WHERE TYPE='table'"""

#カーソルオブジェクトを作成
c = db.cursor()

#命令を実行してテーブル名を取得
for t in c.execute(sql):
    print(t)

db.close()      #データベースを閉じる

[↑ 目次へ]


【スポンサーリンク】


テーブル名を変更

SQLコマンドALTER TABLE テーブル名 RENAME TO 変更後のテーブル名を実行すると、テーブル名を変更することができる。以下、先ほど作成したテーブルFruitを、Kudamonoに変更する例を示す。

import sqlite3

#データベース読み込み
db = sqlite3.connect(
    "test.db",              #ファイル名
    isolation_level=None,
)

#テーブル名FruitをKudamonoに変更
sql = """ALTER TABLE Fruit RENAME TO Kudamono"""

db.execute(sql) #sql文を実行
db.close()      #データベースを閉じる

[↑ 目次へ]


テーブルを削除

データベースからテーブルを削除するためには、SQLコマンドDROP TABLE テーブル名を実行する。先ほど作成したKudamonoテーブルを削除する例を示す。

import sqlite3

#データベース読み込み
db = sqlite3.connect(
    "test.db",              #ファイル名
    isolation_level=None,
)

#Kudamonoテーブルを削除
sql = """DROP TABLE Kudamono"""

db.execute(sql) #sql文を実行
db.close()      #データベースを閉じる

[↑ 目次へ]


【スポンサーリンク】