python中常用的各种数据库操作模块和连接实例
发布时间:2024-01-18 16:29:20
工作中,经常会有用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的需求的话,可以试试看,我还是尽量不用这种格式了,哈哈。
猜你喜欢
- 又发一个js版幻灯片,接口比较少,但功能和外观都还不错的,可自定义切换时间:)method: adRotator.initialize(容器
- 箱形图概念后面的图形都是一些专业的统计图形,当然也会是我们可视化的对象。箱形图(Box-plot)又称为盒须图、盒式图或箱线图,是一种用作显
- 本文实例为大家分享了pygame实现贪吃蛇小游戏的具体代码,供大家参考,具体内容如下由于这段时间实在是太聊了,没什么事做,游戏也玩腻了,所以
- 操作步骤1.下载BeautifulReport文件,本例文件下载地址 最新文件下载地址2.复制文件BeautifulReport,至pyth
- tpch是TPC(Transaction Processing Performance Council)组织提供的工具包。用于进行OLAP测
- <% pagenum=55'指定打印行数 %> <HTML> <HEAD> <
- 下面介绍mysql中模糊查询的四种用法: 1,%:表示任意0个或多个字符。可匹配任意类型和长度的字符,有些情况下若是中文,请使用两个百分号(
- 英文原文:The seven rules of Unobtrusive JavaScript原文地址:http://icant.co.uk/
- 一、创建矩阵的方法import numpy as np# 1直接创建mat=np.mat("1 2 3;4 5 6;7 8 9&q
- 利用''%.af''%b——其中 b 代表要限定的数字, a 代表要求限定小数点的位数,结果自动四舍五入。例
- 引言RunLoop:又叫运行循环机制,在iOS中的两大机制之一。并不是只有iOS有Runloop其他语言也有,他们的方式不太一样,但是核心都
- 在使用matplotlib绘制图片时,x轴的刻度可能比较密集,特别是以日期作为x轴时,则最后会显示不出来。数据如下,速度V的数组与时间字符串
- 如何在VSCode中添加Python解释器并安装Python库一. 安装VScode编辑器双击“VSCodeUserSe
- 前言今天就来学习一下图形设计界面的美化,首先我们知道 QtDesigner设计出来的界面默认是不太怎么美观的。所以在以后的实际开发中很多界面
- 当完整备份数据库的时候,我们有时候可能会遇到一种极端情况,比如服务器上C,D,E三个盘符都只剩下5G空间了但是如果要完整备份业务库需要12G
- 前言迭代器是 23 种设计模式中最常用的一种(之一),在 Python 中随处可见它的身影,我们经常用到它,但是却不一定意识到它的存在。在关
- 当数据库服务器变得十分繁忙导致性能下降时,你会怎么办?购买更多的硬件升级你的服务器,还是重新考虑数据库服务器设计使得数据库平台具备良好的可升
- 1.基本构架:mport PIL.Image 相关模块img=Image.open(img_name) 打开图片img.save(save_
- 引言照例,我们先来一个场景~面试官:"知道事务的四大特性么?"你:"懂,ACID嘛,原子性(Atomicity
- 之前一直在windows环境使用pycharm加上virtualenv方式开发,最近由于本地多个virtualenv比较混乱,所以尝试切换a