SQLite の INTEGER 型と BIGINT 型: 詳細解説
SQLiteの型「Long」について
INTEGER型は、32ビットの整数値を格納できます。これは、-2,147,483,648から2,147,483,647までの範囲の値を表すことができます。
BIGINT型は、64ビットの整数値を格納できます。これは、-9,223,372,036,854,775,808から9,223,372,036,854,775,807までの範囲の値を表すことができます。
Long型は、プログラミング言語によって異なる意味を持つ場合があります。多くの場合、INTEGER
型またはBIGINT
型と同じ意味で使用されます。
SQLiteでは、Long
型は正式なデータ型ではありません。しかし、INTEGER
型またはBIGINT
型のエイリアスとして使用されることがあります。
例えば、次のコードは、id
列をBIGINT
型として定義するテーブルを作成します。
CREATE TABLE users (
id BIGINT PRIMARY KEY,
name TEXT
);
このコードは、id
列をLong
型として定義することもできます。
CREATE TABLE users (
id Long PRIMARY KEY,
name TEXT
);
import sqlite3
# データベース接続
connection = sqlite3.connect("database.sqlite")
cursor = connection.cursor()
# テーブル作成
cursor.execute("""
CREATE TABLE users (
id INTEGER PRIMARY KEY,
name TEXT
);
""")
# データ挿入
cursor.execute("""
INSERT INTO users (id, name) VALUES (?, ?)
""", (1, "John Doe"))
cursor.execute("""
INSERT INTO users (id, name) VALUES (?, ?)
""", (2, "Jane Doe"))
# データ取得
cursor.execute("""
SELECT * FROM users
""")
for row in cursor.fetchall():
print(row)
# データベース接続解除
connection.close()
このコードは、users
というテーブルを作成し、id
列とname
列を挿入します。id
列はINTEGER
型、name
列はTEXT
型です。
次に、SELECT
ステートメントを使用して、users
テーブルからすべてのデータを取得します。
このコードを実行すると、次の出力が得られます。
(1, 'John Doe')
(2, 'Jane Doe')
SQLiteでLong型を使用する他の方法
INTEGER型またはBIGINT型を使用する
SQLiteには、INTEGER
型とBIGINT
型の2つの整数型があります。これらの型は、異なるサイズの整数値を格納するために使用されます。
多くの場合、INTEGER
型またはBIGINT
型は、Long型を表すために十分です。
STRING型を使用する
非常に大きな値を格納する必要がある場合は、STRING
型を使用することができます。STRING
型は、最大2GBまでの文字列を格納できます。
ただし、STRING
型を使用してLong型を表す場合、いくつかの制限があります。
- 数値演算に使用できない
- ソートやインデックス作成に使用できない
BLOB型を使用する
バイナリデータを格納する必要がある場合は、BLOB
型を使用することができます。BLOB
型は、最大64GBまでのバイナリデータを格納できます。
カスタム型を使用する
SQLiteでは、カスタム型を作成することができます。カスタム型を使用して、Long型を表すことができます。
ただし、カスタム型を使用するには、SQLiteの知識が必要です。
- 格納する値のサイズ
- 値を使用する方法
一般的なガイドライン
- 値が
INTEGER
型またはBIGINT
型の範囲内であれば、これらの型を使用する - 値が非常に大きい場合は、
STRING
型またはBLOB
型を使用する - カスタム型は、特別なニーズがある場合にのみ使用する
SQLiteでLong型を使用するには、いくつかの方法があります。どの方法を使用するかは、格納する値のサイズと値を使用する方法によって異なります。
sqlite