接上文Python开发从零开始-49.4-数据库操作,本文小编与大家分享 Python 数据库操作的相关知识。
(三)SQLite 基础操作
SQLite 支持标准 SQL 语法,下面通过 SQLite 基础操作的介绍可以为初学者熟悉 SQL 打下基础。
1、关系型数据库的逻辑结构
关系型数据库的逻辑结构主要包括以下组成:
数据库(Database):最高层逻辑单元,包含多个表及相关对象(如索引、视图等)。数据库系统可以创建多个数据库;
表(Table):数据存储的基本单位,由列(字段)和行(记录)组成二维结构,类似 Excel 表格;
模式(Schema):定义表的结构(列名、数据类型、约束等);
列(Column/Field):也称为字段或属性,是表中某一列数据的集合,具有统一数据类型;
行(Row/Record):也称为记录或元组,是表中的一行数据;
主键(Primary Key):也称为主码,是唯一标识一行数据的字段;
外键(Foreign Key):也称为外码,是建立表间关联的字段,通常外键引用另一个表(也可以是表自身)的主键。
除以上组成,还包括视图(View)、索引(Index)、存储过程(Procedure)、触发器(Trigger)、游标(Cursor)、约束(Constraint)等组成对象,这些内容大家可以查阅教程文档了解。
2、SQLite 语法
(1)大小写敏感性
SQLite 不区分大小写,但也有一些命令是大小写敏感的,比如 GLOB 和 glob 在 SQLite 的语句中有不同的含义。
(2)注释
可以在 SQLite 代码中添加注释以增加其可读性,它们可以出现在任何空白处,包括在表达式内和其他 SQL 语句的中间,但它们不能嵌套;
单行注释以 -- 字符开始,直至换行符(ASCII 0x0a)或输入结束。-- 后建议使用空格,再接注释内容(编码规范通行做法);
也可以使用 C 语言风格的注释,以 /* 开始,直至 */ 结束,可跨行。
(3)SQLite 语句
SQLite 语句以 SELECT、INSERT、UPDATE、DELETE、ALTER、DROP 等关键字开始,所有语句以分号 ; 结束。SQLite 语句较多,大家可查看相关教程了解,小编也会在后续文章中部分讲解。
(4)SQLite 数据类型
1)核心存储类型
数据库的数据类型定义了字段能存储的数据种类与格式,用于确保数据完整性与存储效率。SQLite 采用动态类型,即不需要事先声明字段的数据类型,在插入数据时,SQLite 会根据插入的数据自动推断字段的数据类型。另外,即使创建表时声明了字段类型,该字段依旧可以存储任何类型数据。例如,创建表时声明了一个字段类型为 INTEGER,仍然可以插入 TEXT 或 REAL 类型的值,SQLite 不会报错。
强烈建议创建表时指定字段的数据类型,因为这对于开发团队沟通和数据库维护非常重要。虽然 SQLite 使用动态类型,但是实际存储依赖下表所示的 5 种核心存储类型。

2)亲和类型
SQLite 支持亲和类型。所谓亲和类型,是指建表时的字段类型声明仅为亲和性建议(优先存储的类型),并不严格限制该字段能存储的数据类型,当插入数据时,SQLite 会优先采用亲缘类型作为存储方式。SQLite 目前支持以下五种亲缘类型:

3)Boolean 数据类型
SQLite 没有单独的 Boolean 存储类。通过 INTEGER 存储布尔值,整数 0(false)、整数 1(true)。亲和类型为 NUMERIC 时,插入时会按NUMERIC 规则转换(如 true 会尝试转为 1)。
4)Date 与 Time 数据类型
SQLite 没有一个单独的用于存储日期和时间的存储类型,但 SQLite 能够把日期和时间存储为 TEXT、REAL 或 INTEGER 值。

可以使用任何上述格式来存储日期和时间,并且可以使用内置的日期和时间函数来自由转换不同格式。
受文章篇幅所限,下文将继续介绍 Python 数据库操作的相关知识。