📜  SQLite 数据类型及其对应的Python类型(1)

📅  最后修改于: 2023-12-03 14:47:39.664000             🧑  作者: Mango

SQLite 数据类型及其对应的 Python 类型

SQLite 是一个轻量级的关系型数据库,常用于移动应用、小型网站和嵌入式系统中。在 SQLite 中,每个字段都有一个数据类型,它决定了该字段能够存储的数据类型。SQLite 中的数据类型与 Python 中的数据类型有很大的相似性。本文将介绍 SQLite 中的数据类型及其对应的 Python 类型。

整数类型

SQLite 中的整数类型包括 INTEGER, INT, TINYINT, SMALLINT, MEDIUMINT, 和 BIGINT。这些整数类型都可以存储包括负数在内的整数。

在 Python 中,整数类型对应的是 int 类型。

浮点数类型

SQLite 中的浮点数类型包括 REAL, DOUBLE, 和 FLOAT。这些浮点数类型可以存储小数点前后的数字。

在 Python 中,浮点数类型对应的是 float 类型。

字符串类型

SQLite 中的字符串类型包括 CHAR, VARCHAR, VARYING CHARACTER, NCHAR, NATIVE CHARACTER, TEXT, 和 CLOB。这些字符串类型都可以存储文本数据。

在 Python 中,字符串类型对应的是 str 类型。

日期类型

SQLite 中的日期类型包括 DATE, DATETIME, 和 TIMESTAMP。这些日期类型可以存储日期和时间数据。

在 Python 中,日期类型对应的是 datetime 类型。

布尔类型

SQLite 中的布尔类型包括 BOOLEAN, BOOL, 和 BIT。这些布尔类型可以存储 truefalse

在 Python 中,布尔类型对应的是 bool 类型。

BLOB 类型

SQLite 中的 BLOB 类型可以存储二进制数据。

在 Python 中,二进制数据对应的是 bytes 类型。

示例代码
import sqlite3
import datetime

# 连接到 SQLite 数据库
conn = sqlite3.connect('example.db')

# 创建表
conn.execute('''CREATE TABLE EXAMPLE
             (ID INTEGER PRIMARY KEY,
             NAME TEXT NOT NULL,
             AGE INTEGER,
             WEIGHT FLOAT,
             BIRTHDATE DATE,
             IS_ACTIVE BOOLEAN,
             PHOTO BLOB)''')

# 插入数据
birthdate = datetime.date(2000, 1, 1)
photo = b'\x00\x01\x02\x03\x04'
conn.execute("INSERT INTO EXAMPLE (NAME, AGE, WEIGHT, BIRTHDATE, IS_ACTIVE, PHOTO) \
              VALUES (?, ?, ?, ?, ?, ?)",
             ('John Doe', 30, 70.5, birthdate, True, photo))

# 查询数据
result = conn.execute("SELECT * from EXAMPLE")
for row in result:
    print(row)

# 关闭连接
conn.close()

这段代码演示了在 Python 中如何连接到 SQLite 数据库,创建表,插入数据和查询数据。在这个例子中,我们使用了所有的 SQLite 数据类型。