- 1. 数据库概述
- 2. python 数据库编程接口(DB — API)
- 2.1 DB — API 简介与统一操作模式
- 2.2 接口模块(Module Interface)
- 2.3 Connection 对象
- 2.4 Cursor 游标对象
- 结束语
数据库是按照数据结构来组织、存储和管理数据的建立在计算机设备上的仓库,用户可对其中数据进行新增、查询、更新、删除等操作;
数据库为程序运行提供了安全、可靠、完整的存储方式,在程序中实现对数据库的操作极为重要,典型的数据库包括关系数据库和非关系数据库;
随着信息技术和市场的发展,数据管理不仅仅是存储和管理数据,而转变成用户所需要的各种数据管理方式;
任何一种数据库管理系统不管是 MySQL、SQL Server、PostgreSQL 或者是 SQLite 都有其内的数据库操作模式,而且彼此不一样,所以在 Python 的早期版本中,每一种数据库管理系统都带有自己的 Python 模块,
所有这些模块均以不同的方式工作,并提供任何不同的函数;
为了提高程序的的可维护性,就有了Python 数据库编程接口(DB — API);DB — API 是一个规范,定义了一系列必需的对象和数据库存取方式,可为各种不同的数据库管理系统的数据库操作提供一致的访问接口;
DB — API 中,所有连接数据库的模块即便是底层网络协议不同,也会使用同一个共同的接口,这样使得开发人员在不同的数据库之间轻松移植代码;
Python 中使用 DB — API 时,对于不同的数据库管理系统,需要下载不同的 DB — API 模块;
虽然不同数据库管理系统的 DB — API 模块不一样,但所有这些 DB — API 的执行步骤都是一样的(如上图所示):
- 导入 DB — API 模块;
- 获取与数据库的连接;
- 执行相关操作(SQL 语句与存储过程);
- 关闭与数据库的连接;
DB — API 的模块接口提供了 Cnnection 对象构造器和必须定义的全局变量,如下表所示:
全局变量的含义如下:
apilevel为字符串变量,表示该 DB — API 所兼容的 DB — API 最高版本号,默认为“1.0”;
threadsafety 为整型常量,表示该 DB — API 所支持的线程安全级别,可能的范围如下所示:
- 0:表示不支持线程安全,多线程不能共享此模式;
- 1:表示支持初级线程安全,多个线程可共享模块,但不能共享连接;
- 2:表示支持中级线程安全,线程可共享模块和连接,但不能共享游标;
- 3:表示完全线程支持,线程可共享模块、连接、游标;
paramstyle 为字符串常量,表示该 DB — API 所期望的 SQL 参数风格,其可能取值及意义如下表所示:
connect() 是一个用来建立程序与数据库连接的函数,并返回一个 Connection 对象;
该函数使用以下参数来建立与数据库的连接,如下表所示:
一个典型的连接可能为:connect (dsn='myhost:MYDB',uer='guido',password='234$')
不同的数据管理系统的接口程序会有些许差异,并非都严格按照规范实现,如: MYSQLdb 则使用 db 参数而不是规范推荐的 database 参数来表示要访问的数据库,MYSQLdb 连接时可用参数如下所示:
- host:数据库主机名,默认是用本地主机;
- user:数据库登录名,默认是当前用户;
- password:数据库登录的密码,默认为空;
- db:要使用的数据库名,没哟默认值;
- port:MYSQL 服务使用的 TCP 端口,默认是3306;
- charset:数据库编码;
采用 MYSQLdb 进行数据库连接时,其 connect 方法写为:db = MYSQLdb.connect(host = "localhost",user =- "python",password = "123456",db = "DemodB")
2.3 Connection 对象Connection 连接对象搭建应用程序与数据库之间的桥梁,完成将命令送往服务器,并从服务器接收数据的功能;
Connection 对象主要方法如下表所示:
`
在与数据库连接之后,需要通过游标对象来实现程序与数据的加护;一个游标对象允许用户执行数据库操作的相关命令以及获取查询结果;游标对象以下常见的属性和方法:
若这篇文章有帮到你,给个赞,收个藏,欢迎大家评论;
若文章有什么错误,欢迎大家指教。



