python连接数据库oracle,mysql,sql server
1.python连接oracle 使用的库为cx_Oracle,
我们先把cx_Oracle模块安装好,我主要是使用pip install cx_Oracle ,python版本是3.6. 注意如下代码中:connect('user/[email protected]:port/database') 其中的user 对应数据库的用户名,password对应密码,ip对应机器地址 ,port对应端口 ,database对应数据库,大家在实际使用的时候不要照搬,注意灵活替换哦。
import cx_Oracle as co
import pandas as pd
#connect oracle database
conn=co.connect('user/[email protected]: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:[email protected]: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,是个包管理工具,这样在安装其他包的时候不会涉及到包依赖等问题而需要反复安装等耗费时间的操作。
推荐阅读
-
python连接数据库oracle,mysql,sql server
-
java web 连接数据库:mysql、sql server方法
-
MySQL和Oracle数据库sql查询日期比较条件的差异
-
使用 JDBC 连接MySQL 、SQL Server数据库
-
java连接数据库Oracle|DB2|Sql Server|Sybase|Informix|MySQL||PostgreSQL|access
-
Mac下python以及django的安装,管理,连接mysql数据库 博客分类: djangopython pythondjango
-
【SQL】Oracle和MySQL数据库列值横排
-
Python的ORM框架SQLAlchemy使用入门(二)【连接MySql数据库】
-
mysql8.0连接时报错:java.sql.SQLException: The server time zone value '�й���ʱ��' is unrecognized
-
Python --使用sqlalchemy连接、操作MySQL数据库 博客分类: Python学习 PythonSQLAlchemyMySQL