通过python操作数据库有两种方式:
一种是ORM方式,使用sqlalchemy包。ORM方式即是在面向对象的python语言和关系型数据库间建立映射关系,让我们可以直接用面向对象的编程语言模式就可以操作关系型数据库。
sqlalchemy是python的orm程序,在整个python界当中相当出名。
一种类似jdbc形式。操作数据库经历如下几个步骤:
1)引入 API 模块;
2)获取与数据库的连接;
3)执行SQL语句和存储过程;
4)关闭数据库连接。
ORM方式示例:
def to_database(result_list):
#函数功能:将result_list写入mysql数据库
df = pd.DataFrame(result_list, columns=['column','score'])
save_info = "root:password@localhost:3306/database"
#create_engine("数据库类型+数据库驱动://数据库用户名:数据库密码@IP地址:端口/数据库",其他参数).如果数据库驱动是mysqldb,则将下面的pymysql改成mysqldb
conn = create_engine('mysql+pymysql://' + save_info + '?charset=utf8')
#to_sql第一个参数为表名,直接利用dataframe的to_sql函数将数据写入数据库
df.to_sql('result', con=conn, if_exists='replace', index=False)
to_sql的几个参数:
name是表名
con是连接
if_exists:表如果存在怎么处理
append:追加
replace:删除原表,建立新表再添加
fail:什么都不干
index=False:不插入索引index
jdbc方式示例:
#!/usr/bin/python
#-*- coding: UTF-8 -*-
import MySQLdb
#打开数据库连接
db = MySQLdb.connect("localhost", "testuser", "test123", "TESTDB", charset='utf8' )
#使用cursor()方法获取操作游标
cursor = db.cursor()
# 使用execute方法执行SQL语句
cursor.execute("SELECT VERSION()")
# 使用 fetchone() 方法获取一条数据
data = cursor.fetchone()
print "Database version : %s " % data
# 关闭数据库连接
db.close()
参考:
python使用sqlalchemy连接mysql数据库
利用pandas的to_sql将数据插入MySQL数据库和所踩过的坑
Python 操作 MySQL 数据库
Pandas读写MySQL数据库