python中常用的各种数据库操作模块和连接实例


Posted in Python onMay 29, 2014

工作中,经常会有用python访问各种数据库的需求,比如从oracle读点配置文件或者往mysql写点结果信息之类的。
这里列一下可能用到的各个模块。

sqlite3: 内置模块
用sqlite,有时候确实很方便,我觉得它确实做到了宣称的“零配置”。python自2.5版以来,就内置了对sqlite3的支持,使用也非常简单,按照文档上来:

#打开db文件,获得连接
conn = sqlite3.connect('数据文件名')
#获得游标
c = conn.cursor()
#执行SQL
c.execute('''SQL 片段''')
#如果有对数据的修改操作,那就需要commit一下
conn.commit()
#关闭游标
c.close()
#关闭连接
conn.close()

另外,关于sqlite在C和bash下的用法,可以参考为以前的文章。

oracle: cx_Oracle

其实,前面先介绍sqlite3,除了它确实是个小数据库以外,还有一个原因:其他数据库在python下的操作,其实基本上和sqlite3的操作是一样的,也就是说,python其实已经几乎统一了数据库的接口。
打开cx_Oracle的文档页面,你会发现其风格也和python文档很像,因为他们都是用 Sphinx 做的。模块的使用方法就更像了,把上面的代码里,获得连接的那行,换成这样:

conn = cx_Oracle.connect('username/password@TNSname')

就可以了。只要把用户名、密码、TNS组成一个字符串,传进去,就可以得到一个oracle的连接了。

mysql: MySQLdb

和前两个非常类似,连接的时候用以下两个语法之一:

conn = MySQLdb.connect('host', 'username', 'password', 'database')
conn = MySQLdb.connect(host="host", user="username", passwd="password", db="database")

接下来,也把它当成sqlite用就好了。

excel: pyExcelerator

好吧,我承认excel不算数据库,只是写在这里充数而已,哈哈。因为偶尔还是要取下别人发来的excel里的数据的。
其实,用pyExcelerator来读取文件也是很简单的:

sheets=pyExcelerator.parse_xls('xxx.xls')

这样出来以后,sheets就是整个工作薄了,它是工作表组成的list,而一个工作表对应于一个tuple,格式是: ('工作表名', 内容),而内容又是一个dict,key是一个(行数, 列数)的tuple,value才是正在的对应格子的内容。看起来确实比较绕,好在处理excel的应用也不多,将就吧。
另外,其实pyExcelerator还支持写入数据到excel的,如果有把查询结果保存成excel的需求的话,可以试试看,我还是尽量不用这种格式了,哈哈。
Python 相关文章推荐
理解python多线程(python多线程简明教程)
Jun 09 Python
Python中使用第三方库xlrd来写入Excel文件示例
Apr 05 Python
python使用SMTP发送qq或sina邮件
Oct 21 Python
Python中的默认参数实例分析
Jan 29 Python
python字符串string的内置方法实例详解
May 14 Python
pyspark操作MongoDB的方法步骤
Jan 04 Python
django中ORM模型常用的字段的使用方法
Mar 05 Python
Python使用QQ邮箱发送邮件报错smtplib.SMTPAuthenticationError
Dec 20 Python
Python如何实现的二分查找算法
May 27 Python
matplotlib基础绘图命令之bar的使用方法
Aug 13 Python
Django DRF APIView源码运行流程详解
Aug 17 Python
5款实用的python 工具推荐
Oct 13 Python
从零学Python之入门(五)缩进和选择
May 27 #Python
从零学Python之入门(四)运算
May 27 #Python
一则python3的简单爬虫代码
May 26 #Python
从零学Python之入门(三)序列
May 25 #Python
从零学Python之入门(二)基本数据类型
May 25 #Python
Python tempfile模块学习笔记(临时文件)
May 25 #Python
Python logging模块学习笔记
May 24 #Python
You might like
优化php效率,提高php性能的一些方法
2011/03/24 PHP
PHP和Mysqlweb应用开发核心技术-第1部分 Php基础-2 php语言介绍
2011/07/03 PHP
php递归创建目录的方法
2015/02/02 PHP
PHP实现的mysql主从数据库状态检测功能示例
2017/07/20 PHP
eval与window.eval的差别分析
2011/03/17 Javascript
Jquery带搜索框的下拉菜单
2013/05/06 Javascript
javascript获取所有同类checkbox选项(实例代码)
2013/11/07 Javascript
jquery模拟进度条实现方法
2015/08/03 Javascript
js图片翻书效果代码分享
2015/08/20 Javascript
JavaScript优化专题之Loading and Execution加载和运行
2016/01/20 Javascript
AngularJS的Filter的示例详解
2017/03/07 Javascript
JavaScript中递归实现的方法及其区别
2017/09/12 Javascript
JS开发中基本数据类型具体有哪几种
2017/10/19 Javascript
JS面向对象的程序设计相关知识小结
2018/05/26 Javascript
Vue-component全局注册实例
2018/09/06 Javascript
Python科学画图代码分享
2017/11/29 Python
python实现发送邮件功能代码
2017/12/14 Python
Python使用wxPython实现计算器
2018/01/30 Python
Django ManyToManyField 跨越中间表查询的方法
2018/12/18 Python
在Python中表示一个对象的方法
2019/06/25 Python
python3 写一个WAV音频文件播放器的代码
2019/09/27 Python
Python3实现将一维数组按标准长度分隔为二维数组
2019/11/29 Python
Django 路由层URLconf的实现
2019/12/30 Python
Python操作注册表详细步骤介绍
2020/02/05 Python
对python中arange()和linspace()的区别说明
2020/05/03 Python
Django实现后台上传并显示图片功能
2020/05/29 Python
如何基于Python pygame实现动画跑马灯
2020/11/18 Python
matplotlib之多边形选区(PolygonSelector)的使用
2021/02/24 Python
电子狗项圈:eDog Australia
2019/12/04 全球购物
感恩老师演讲稿400字
2014/08/28 职场文书
学校实习推荐信
2015/03/27 职场文书
2015年学校财务工作总结
2015/05/19 职场文书
学术会议开幕词
2016/03/03 职场文书
SQLServer 错误: 15404,无法获取有关 Windows NT 组/用户 WIN-8IVSNAQS8T7\Administrator 的信息
2021/06/30 SQL Server
Python获取指定日期是"星期几"的6种方法
2022/03/13 Python
奥特曼十大神器:奥特手镯在榜,第一是贝利亚的神器
2022/03/18 日漫