【スポンサーリンク】
テーブルを作成(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() #データベースを閉じる
【スポンサーリンク】