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删除nginx缓存文件示例(python文件操作)
Mar 26 Python
为什么选择python编程语言入门黑客攻防 给你几个理由!
Feb 02 Python
redis之django-redis的简单缓存使用
Jun 07 Python
简单了解python高阶函数map/reduce
Jun 28 Python
Python生成验证码、计算具体日期是一年中的第几天实例代码详解
Oct 16 Python
Python装饰器使用你可能不知道的几种姿势
Oct 25 Python
Python实现word2Vec model过程解析
Dec 16 Python
详解opencv中画圆circle函数和椭圆ellipse函数
Dec 27 Python
使用 pytorch 创建神经网络拟合sin函数的实现
Feb 24 Python
Python语法垃圾回收机制原理解析
Mar 25 Python
Python基于Hypothesis测试库生成测试数据
Apr 29 Python
python获取百度热榜链接的实例方法
Aug 25 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中预定义的6种接口介绍
2015/05/12 PHP
PHP+MySql+jQuery实现的"顶"和"踩"投票功能
2016/05/21 PHP
laravel学习笔记之模型事件的几种用法示例
2017/08/15 PHP
PHP实现带进度条的Ajax文件上传功能示例
2019/07/02 PHP
JavaScript 克隆数组最简单的方法
2009/02/12 Javascript
JS 去前后空格大全(IE9亲测)
2013/07/15 Javascript
浅谈JavaScript字符集
2014/05/22 Javascript
一个js过滤空格的小函数
2014/10/10 Javascript
javascript获取flash版本号的方法
2014/11/20 Javascript
jQuery背景插件backstretch使用指南
2015/04/21 Javascript
基于jquery实现全屏滚动效果
2015/11/26 Javascript
详解AngularJS中自定义过滤器
2015/12/28 Javascript
jQuery操作cookie
2016/08/08 Javascript
Python编码时应该注意的几个情况
2013/03/04 Python
Python中lambda的用法及其与def的区别解析
2014/07/28 Python
快速排序的算法思想及Python版快速排序的实现示例
2016/07/02 Python
Python实现并行抓取整站40万条房价数据(可更换抓取城市)
2016/12/14 Python
Python通过matplotlib绘制动画简单实例
2017/12/13 Python
python+matplotlib实现鼠标移动三角形高亮及索引显示
2018/01/15 Python
Python中的groupby分组功能的实例代码
2018/07/11 Python
python实现获取单向链表倒数第k个结点的值示例
2019/10/24 Python
python为QT程序添加图标的方法详解
2020/03/09 Python
利用python实现平稳时间序列的建模方式
2020/06/03 Python
详解查看Python解释器路径的两种方式
2020/10/15 Python
浅析python实现动态规划背包问题
2020/12/31 Python
Nordgreen英国官网:斯堪的纳维亚设计师手表
2018/10/24 全球购物
播音主持女孩的自我评价分享
2013/11/20 职场文书
运输服务质量承诺书
2014/03/27 职场文书
中学生寄语大全
2014/04/03 职场文书
《一个小村庄的故事》教学反思
2014/04/13 职场文书
对外汉语专业大学生职业生涯规划范文
2014/09/13 职场文书
庆六一宣传标语
2014/10/08 职场文书
锅炉工岗位职责
2015/02/13 职场文书
2015年乡镇流动人口工作总结
2015/05/12 职场文书
mysql left join快速转inner join的过程
2021/06/30 MySQL
golang使用map实现去除重复数组
2022/04/14 Golang