导读
数据库(DataBase):即存储数据的仓库。其数据是按一定的数据模型(结构)进行组织、描述和存储的结构化数据,其目的是最大限度的减少数据的冗余度。
数据表:是由行(Row)和列(Column)组成的表格,常用于定义(存放)有关联或某些同类型的数据。数据库是由众多的数据表和其它元素组成。
数据库管理系统:英文名(DataBase Management System),是一个用于管理数据库的系统(软件),用户通过它可以方便的定义数据、操作数据以及维护数据,其功能主要包括:
- 数据定义功能:使用数据定义语言(Data Definition Language, DDL),可以生成和维护各种数据对象的定义。
- 数据操作功能:通过数据操作语言(Data Manipulation Language, DML),可以对数据库进行查询、插入、修改和删除等基本操作。
- 数据库管理和维护:提供数据库的安全性、完整性、并发性、备份和恢复等功能。
开发数据库互连:英文( Open DataBase Connectivity ,ODBC),是一套提供数据库连接(编程)的标准应用程序接口(API),通过它可以使得开发程序可以连接本地的数据库,以进行相关的操作。本节将以 SQLite3 为例讲解其执行过程。
SQLite 数据库
SQLite 数据库是一款开源的轻型的数据库,其占用资源非常低,被广泛应用于各种嵌入式设备中,当然 SQLite 还支持 Windows、Linux、Mac 等操作系统平台。
SQLite支持的数据类型包括:NULL、INTEGER、REAL、TEXT和BLOB,分别对应Python的数据类型:None、int、float、str 和 bytes 。【注:SQLite在执行中不对数据类型进行检查,例如将 int 类型数据插入到 str 类型中】
SQLite 数据库官网:http://www.sqlite.org
SQLite3 模块
SQLite3 模块,其功能就是为 Python 提供与本地 sqlite 数据库连接、操作的应用程序接口,通过 SQLite3 接口提供的方法,可以完成数据库连接、建库、建表、数据查询、插入数据、修改数据、更新数据和删除数据等操作。
Python 不仅提供了为 SQLite 数据连接的 SQLite3 模块,还提供了各种数据库的连接操作模块,具体如下表:
数据库 | Python 操作模块 | 官方网址 |
---|---|---|
SQLite | SQLite3 | http://www.sqlite.org |
MySQL | mysql-python | http://sourceforge.net/projects/mysql-python |
SQL Server | pymssql | http://pymssql.sourceforge.net/ |
Oracle | DCOracle2 | http://www.zope.org/Members/matt/dco2 |
PostgreSQL | PyGreSQL | http://www.pygresql.org/ |
IBM DB2 | pydb2 | http://sourceforge.net/projects/pydb2 |
下面将通过 SQLite3 模块演示 在 Python 下对 SQLite 数据库的基本操作,在实际演示前,先来认识 SQLite3 提供的常用方法、属性、基本的操作过程等知识点。
SQLite3 模块中,主要包含以下常用属性、方法、对象。更多可使用:dir"sqlite3" 语句查看。
sqlite3.version # 属性,SQLite版本号
sqlite3.connect # 方法,用于连接本地数据库
sqlite3.Connect # 对象,数据库连接对象
sqlite3.Cursor # 对象,游标对象
sqlite3.Row # 对象,行对象
SQLite3 操作数据库的基本过程:
第一步:导入模块
第二步:连接数据库(创建连接对象)
第三步:创建游标对象
第四步:使用游标对象函数(方法)传入SQL语句,执行具体操作
第五步:获取游标操作结果
第六步:数据库的提交和回滚
第七步:关闭游标对象和连接对象
其中,在完成第三步的创建游标对象后,其对象就提供了:
execute(sql,[parameters]) # 执行 SQL 语句,parameters为可选参数
executemany(sql, seq_of_parameters) # 根据参数执行多次 SQL 语句
executescript(sql, script) # 执行 SQL 脚本
这些操作方法,通过调用某种方法,并传入要执行的语句,就可以完成数据库的各种操作了。