一、数据库基础
经常需要将大量数据保存起来以备后续使用,数据库是一个很好的解决方案。
数据库是数据的仓库,将大量数据按照一定的方式组织并存储起来,方便进行管理和维护,例如快速检索和统计等。数据库的主要特点:
以一定的方式组织、存储数据;
能为多个用户共享;
与程序彼此独立。
……
数据库管理系统是一种操纵和管理数据库的大型软件。它对数据库进行统一的管理和控制,以保证数据库的安全性和完整性。用户通过DBMS访问数据库中的数据,数据库管理员通过DBMS进行数据库的维护工作。
主要功能包括:数据定义(创建数据库、表等)、数据操纵(增删查改等)、数据库控制(并发、权限等)、数据库维护(转存、恢复等)等。
(一)常见的数据库类型
当前常见的数据库类型有:关系型数据库、键值存储数据库、面向文档数据库、图数据库等。
关系型数据库:当前应用最广泛的数据库类型,把复杂的数据结构归结为简单的二元关系(即二维表形式),例如MySQL、SQL Server、Oracle、SQLite等;
键值存储数据库:使用简单的键值方法来存储数据,其中键作为唯一标记,是一种非关系数据库,例如Redis;
面向文档数据库:用于存放并获取文档,主要是XML、JSON等具备自我描述特性、呈现层次结构的文档,例如MongoDB;
图数据库:一种存储图关系的数据库,应用图理论存储实体之间的关系信息,例如Neo4J。
(二)关系型数据库
关系型数据库是指采用关系模型组织数据的数据库,它以行和列的形式存储数据,一系列的行和列组成了表,一组表组成了数据库。在关系模型中,实体以及实体之间的联系都会映射成统一的关系:二维表,关系型数据库操作的对象和返回的结果都是二维表。
关系:可以理解为一张二维表,每个关系都有一个关系名,也就是表名;
属性: 可以理解为二维表中的一列,在数据库中称为字段,属性名就是表中的列名;
域:属性值的取值范围,数据库中某一列的取值范围;
元组:可以理解为二维表中的一行,在数据库中称为记录;
分量:元组中的一个属性值;
关键字:可以唯一标识元组的属性或属性组,数据库中称为主键。
(三)SQLite 数据库
SQLite是一个轻量级的关系型数据库,SQLite并没有包含大型客户/服务器数据库(如Oracle、SQL Server)的所有特性,但它包含了操作本地数据的所有功能,简单易用、反应快,python标准库中内置了SQLlite3模块。
SQLite本质上就是一个文件,内部只支持 NULL、INTEGER、REAL(浮点数)、TEXT(字符串文本)和BLOB(二进制对象)这五种数据类型,但实际上SQLite也接受varchar(n)等数据类型,只不过在运算或保存时会转成上面对应的数据类型。
SQLite最大的特点是可以把各种类型的数据保存到任何字段中,而不用关心字段声明的数据类型是什么。因此SQLite在解析建表语句时,会忽略建表语句中跟在字段名后面的数据类型信息。

