
【スポンサーリンク】
データベースの準備
まず、以下のコードを実行してサンプルデータベースを作成する。
import sqlite3 #データベース読み込み db = sqlite3.connect( "text.db", #ファイル名 isolation_level=None, ) #フィールド作成用SQL文 sql = """ CREATE TABLE Fruit ( id INTEGER PRIMARY KEY, name VARCHAR(20), price INTEGER ); """ db.execute(sql) #sql文を実行 #登録データ r = [(1, "banana", 130), (2, "apple", 100), (3, "orange", 198)] #レコード一括登録登録用SQL文 sql = """ INSERT INTO Fruit VALUES ( ?, ?, ? ) """ db.executemany(sql, r) #sql文を実行 db.close() #データベースを閉じる
作成されるデータベースは以下の通り。
テーブル名:Fruit
id | name | price | 1 | banana | 130 |
---|---|---|
2 | apple | 100 |
3 | orange | 198 |
フィールド(カラム)名を取得
カーソルオブジェクトで以下のSQLコマンドを実行した後、descriptionメソッドを使用すると、データベース内に存在しているフィールド名を取得することができる。
SELECT * FROM Fruit
以下、データベース内のフィールド名を取得して表示する例を示す。
import sqlite3 #データベース読み込み db = sqlite3.connect( "test.db", #ファイル名 isolation_level=None, ) sql = "SELECT * FROM Fruit" #カーソルオブジェクトを作成 c = db.cursor() #命令を実行 c.execute(sql) #フィールド名を取得 print(c.description) db.close() #データベースを閉じる
出力される結果は以下の通り。7要素を持つタプルが3つ出力され、タプルの先頭の要素がフィールド名となる。
(('id', None, None, None, None, None, None), ('name', None, None, None, None, None, None), ('price', None, None, None, None, None, None))
フィールド名のみを取得する場合は以下の通り。
for d in c.description: print(d[0])
【スポンサーリンク】
フィールドを追加
SQLコマンドALTER TABLE テーブル名 ADD COLUMN 追加するフィールド名 型
を実行すると、フィールドを追加することができる。以下、サンプルデータベースにquantityフィールドをinteger型で追加する例を示す。
import sqlite3 #データベース読み込み db = sqlite3.connect( "test.db", #ファイル名 isolation_level=None, ) #SQL文(Fruitテーブルにフィールド「quantity」を追加) sql = """ALTER TABLE Fruit ADD COLUMN quantity INTEGER""" db.execute(sql) #命令を実行 db.close() #データベースを閉じる
【スポンサーリンク】