データ型
メニューを表示するにはスワイプしてください
SQLite は、テーブルに格納できるデータの種類を定義するために、いくつかのデータ型、またはストレージクラスを提供しています。SQLite は動的型付けであり、厳密なデータ型を強制しませんが、5つの主要なアフィニティ型を認識します。
異なるデータ型を持つテーブルの作成
以下は、さまざまな SQLite データ型を使用したテーブル作成の例です:
CREATE TABLE example (
id INTEGER PRIMARY KEY, -- Integer (auto-increment if PRIMARY KEY)
name TEXT NOT NULL, -- Text field (mandatory)
price REAL, -- Floating-point number
data BLOB, -- Binary data
created_at TEXT DEFAULT NULL -- Text field with NULL as default
);
SQLite では、テーブル作成時に宣言された型に関係なく、任意の型のデータを任意のカラムに格納できます(ただし、INTEGER PRIMARY KEY カラムは例外です)。また、データを正しく解釈し保存するためのアプローチを採用しており、すべてが円滑かつ効率的に動作するようになっています。
1234567891011121314151617181920212223242526272829import sqlite3 conn = sqlite3.connect('data.db') cursor = conn.cursor() # Creating the table cursor.execute(''' CREATE TABLE IF NOT EXISTS users ( id INTEGER PRIMARY KEY, name TEXT, age INTEGER ) ''') # Inserting different types of data into the `age` column cursor.execute("INSERT INTO users (name, age) VALUES ('Alice', 25)") # standard value cursor.execute("INSERT INTO users (name, age) VALUES ('Bob', 'Thirty')") # text value in `INTEGER` column cursor.execute("INSERT INTO users (name, age) VALUES ('Charlie', 30.5)") # float value in `INTEGER` column # Retrieving all records from the table cursor.execute("SELECT * FROM users") rows = cursor.fetchall() # Printing the results for row in rows: print(row) # Closing the database connection conn.close()
この例は、SQLiteが同じカラムに対して異なる型のデータを挿入できることを示しています。たとえカラムがINTEGERとして宣言されていても、ageカラム(INTEGERとして宣言)には次のようなデータが挿入されています:
- 整数(
25) - テキスト値(
'Thirty') - 浮動小数点値(
30.5)
SQLiteは動的型付けシステムを採用しているため、カラムに挿入できるデータ型に制限がありません。この仕組みにより、1つのカラムにさまざまなデータ型をエラーなく保存できます。
1. SQLiteで値が存在しないことを表すデータ型はどれですか?
2. SQLite で INTEGER カラムにテキスト値を挿入しようとするとどうなりますか?
すべて明確でしたか?
フィードバックありがとうございます!
セクション 3. 章 2
AIに質問する
AIに質問する
何でも質問するか、提案された質問の1つを試してチャットを始めてください
セクション 3. 章 2