Python操作几种不同的关系数据库
一、连接Oracle数据库:
1、安装cx_Oracle包:
http://cx-oracle.sourceforge.net/ 需要注意下版本,根据操作系统和已安装的python版本进行选择
在命令窗口中执行(要先设置Python的环境变量):
python -m pip install cx_Oracle --upgrade
2、Python连接oracle数据库的基本操作:
(1)创建数据库连接connect和关闭数据库连接close ,创建数据库连接的三种方式:
方法一:用户名、密码和监听分开写
import cx_Oracle
db=cx_Oracle.connect('username/password@localhost:1521/orcl')
db.close()
方法二:用户名、密码和监听写在一起
import cx_Oracle
db=cx_Oracle.connect('username','password','localhost:1521/orcl')
db.close()
方法三:配置监听并连接(推荐使用)
import cx_Oracle
tns=cx_Oracle.makedsn('localhost',1521,'orcl')
db=cx_Oracle.connect('username','password',tns)
db.close()
(2)建立cursor并执行SQL语句(查询、更新、插入、删除):创建数据库连接,创建游标cursor,然后执行sql语句,执行完成后,关闭游标,关闭数据库连接
A、查询:
import cx_Oracle #导入cx_Oracle
db=cx_Oracle.connect('scott/root@localhost:1521/orcl') #连接数据库
#一次返回所有行:fetchall
cr=db.cursor() #创建游标
sql = 'select * from student' #定义sql语句
cr.execute(sql) #执行sql语句
rs = cr.fetchall() #一次返回所有的结果集
for x in rs: #利用循环输出所有记录
print(x)
#一次返回一行:fetchone
cr=db.cursor() #创建游标
sql='select * from student'
cr.execute(sql)
while(1):
rs = cr.fetchone()
if rs==None:break
print(rs)
#使用参数查询
pr={'sno':'2018001'} #将参数作为一个字典来处理
cr.execute('select * from student where sno=:sno',pr)
rs=cr.fetchall()
print( "print all :%s"%rs)
#也可以直接写入参数
cr.execute('select * from student where sno=:sno',sno='2018003')
rs=cr.fetchall()
print( "print all :%s"%rs)
cr.close() #关闭游标
db.close() #关闭连接
B、插入、更新、删除操作后需要提交commit
#插入数据
sql="insert into student(id,sno,sname,ssex,sdept,sage,saddress) values(7,'2018007','郭靖','男','历史系',22,'浙江')"
cr.execute(sql)
cr.close()
db.commit()

3、函数方式实现增、删、改、查:
def sqlSelect(sql,db): #查询
cr = db.cursor()
cr.execute(sql)
rs = cr.fetchall()
cr.close()
return rs
def sqlInsert(sql,param,db): #插入、删除、更新
cr = db.cursor()
cr.execute(sql,param)
cr.close()
db.commit()
return 1
二、连接MySql数据库:
1、安装MySql驱动:在命令行使用pip安装
pip install PyMySQL
2、连接并操作MySql数据库
import pymysql
db = pymysql.connect(host='127.0.0.1',port=3306,user='root',password='root',
db='mvc',charset='utf8mb4',cursorclass=pymysql.cursors.DictCursor)
cursor = db.cursor()
sql = 'select * from user'
cursor.execute(sql)
rs = cursor.fetchall()
for x in rs:
print(x)
三、连接SQL Server数据库:
1、下载驱动程序包:
pymssql-2.1.3-cp36-cp36m-win32.whl(https://www.lfd.uci.edu/~gohlke/pythonlibs/ )
2、安装驱动程序(命令行):
pip install pymssql-2.1.3-cp36-cp36m-win32.whl
3、连接并操作数据库:
import pymssql
db = pymssql.connect(host='127.0.0.1',user='a1',password='root',database='dbms')
cursor = db.cursor()
cursor.execute('select * from courses')
rs = cursor.fetchall()
for x in rs:
print(x)
附注:
pip的用法:pip是一个安装和管理 Python 包的工具
(1) 安装一个包
c:\> pip install
c:\> pip install ==
(2)升级一个包 (如果不提供version号,升级到最新版本)
c:\> pip install --upgrade >=
(3)删除一个包
c:\>pip uninstall
分类:
Python
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 25岁的心里话
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现