1 数据库类型
- 文件或简单的持久化存储:可以满足一些小应用的需求;
- 数据库系统:适用于大型服务器或高数据容量的应用;
- 混合类型:包括现有系统上的API、ORM、文件管理器、电子表格、配置文件等。
2 数据库和Python
访问数据库包括:
- DB-API,即直接通过数据库接口访问;
- 使用ORM 访问,它不需要显式给出SQL 命令,但也能完成相同的任务。
3 Python 的DB-API
该API 为不同的关系数据库提供了一致性的接口,并且使不同数据库间移植代码变得更加简单,通常只需要修改几行代码即可。
3.1 DB-API模块属性
3.2 Connection 对象
应用程序与数据库之间进行通信需要建立数据库连接。它是最基本的机制,只有通过数据库连接才能把命令传递到服务器,并得到返回的结果。
当一个连接(或一个连接池)建立后,可以创建一个游标,向数据库发送请求,然后从数据库中接收回应。
connection对象没有属性只有方法
3.3 Cursor 对象--游标
游标可以让用户提交数据库命令,并获得查询的结果行。Python DB-API 游标对象总能提供游标的功能,即使是那些不支持游标的数据库。
游标对象最重要的属性是execute()和fetch()方法,所有针对数据库的服务请求都是通过它们执行的。
arraysize 数据属性在为fetchmany()设置默认大小时非常有用。
当然,在不需要时关闭游标是个好主意, 而如果你的数据库支持存储过程,可能会用到callproc()。
3.4 数据库适配器的示例
3.4.1 安装 MySQL 适配器(MySQLdb模块)及mysql数据库
如果执行:
>>>import MySQLdb
提示没有MySQLdb模块,则需要安装。
针对不同系统更详细的安装请移步:https://stackoverflow.com/questions/454854/no-module-named-mysqldb
这是ubantu安装MySQLdb的方法,执行命令:sudo apt-get install python-mysqldb
(python-mysqldb即为 MySQL 适配器):
查看是否安装好,用pip list
,列出所有已安装的程序:
载入MySQLdb模块成功!
Good!!
引入MySQLdb成功,通过python就可以对mysql数据库进行操作,详见http://www.jianshu.com/p/495891f00404
3.4.2 安装 sqlite3 适配器
方法很简单,在python中输入:
>>>import sqlite3
即可,但是如果没有安装sqlite数据库,仍需要先安装才行,具体方法见:http://www.jianshu.com/p/f0568f126153
安装好sqlite后,用python适配器sqlite3进行连接,并新建数据库。新建时,注意标明路径,按照书上做的不行:
创建表user表:CREATE TABLE user(login VARCHAR(8),userid INTEGER)
为user表格添加人员:
查看user表;删除表;关闭游标;断开连接;