python连接数据库oracle,mysql,sql server

1.python连接oracle 使用的库为cx_Oracle

    我们先把cx_Oracle模块安装好,我主要是使用pip install cx_Oracle ,python版本是3.6. 注意如下代码中:connect('user/password@ip:port/database') 其中的user 对应数据库的用户名,password对应密码,ip对应机器地址 ,port对应端口 ,database对应数据库,大家在实际使用的时候不要照搬,注意灵活替换哦。


import cx_Oracle as co
import pandas as pd
#connect oracle database
conn=co.connect('user/password@ip:port/database')
#create sursor,remember to close the cursor when you finished using
c=conn.cursor()
#query 
sql='select * from table a '
r=c.execute(sql)
#get the all rusult,when get one result you can use fetchone
result=c.fetchall()
pd_result=pd.DataFrame(result)
print(pd_result)
#release the connection
c.close()
conn.close()

2.python 连接mysql   

使用的库为pymysql 先安装pymysql ,依旧使用pip安装,pip install pymysql

import pymysql
# 打开数据库连接
db = pymysql.connect("localhost","user","password","database" )
# 使用 cursor() 方法创建一个游标对象 cursor
cursor = db.cursor()
# 使用 execute()  方法执行 SQL 查询 
cursor.execute("SELECT * from table")
# 使用 fetchone() 方法获取单条数据.
data = cursor.fetchone()
 
print ("Database version : %s " % data)
 
# 关闭数据库连接
db.close()

3.python连接SQL SERVER

使用的库为pymssql 先安装pymssql ,依旧使用pip安装,pip install pymssql

import pymssql as pl
"""使用pymssql下的connect来连接数据库,有特殊端口号则需要指出,最好指定编码格式"""
conn=pl.connect(server=server,port=port,user=user,password=password,database=database,charset="UTF-8")
"""游标方法"""
cursor=conn.cursor()
"""execute()函数用来执行SQL语句,直接在函数里面写SQL语句即可"""
sql="select * from table"
resList=cursor.execute(sql)
"""把执行的结果传递给变量r"""
r=cursor.fetchall()
for i in r:
    a='\t'.join(['%10s'%x for x in i])
    print (a)
conn.close()

4.万能连接sqlalchemy 

SQLAlchemy 的一个目标是提供能兼容众多数据库(如 SQLite、MySQL、Postgres、Oracle、MS-SQL、SQLServer 和 Firebird)的企业级持久性模型。所以接下来我介绍下如何结合python的pandas 利器和sqlalchemy 。

首先安装sqlalchemy ,依旧使用pip安装:pip install sqlalchemy

import pandas as pd
import sqlalchemy as s
#connect oracle database
db=s.create_engine('oracle://user:password@ip:port/database') # 通过改变这里的数据库类型来更换不同的连接
conn=db.connect()

#query 
sql='select * from table'
df=pd.read_sql(sql,conn)
print(df)
#release the connection
conn.close()

通过改变create_engine()里面的参数来改变不同的数据库连接,参数用法如下:

create_engine('数据库名称+数据库驱动名称://用户名:密码@机器地址:端口/数据库名称')

      通过将数据库连接和pandas查询结合后,最后的查询结果会返回为DataFrame,这样就可以直接进行Pandas 的相关操作了,包括数据处理,数据导出等一系列强大的动能啦。

总结:学习过python连接数据库的种种方法后,最后还是习惯了去学习并使用sqlalchemy,毕竟越强大越好用啊,给开发这个包的程序猿点个赞!最后在数据学习的过程中会遇到各种包,建议安装pip,是个包管理工具,这样在安装其他包的时候不会涉及到包依赖等问题而需要反复安装等耗费时间的操作。

猜你喜欢

转载自blog.csdn.net/qq_27575895/article/details/81002313