2017.11.20 MySQL和Python的连接,并利用Pandas
2016-11-20 15:43
435 查看
一、MySQL和Python连接
MySQL和Python连接有很多方式:oursql、PyMySQL、 myconnpy、MySQL Connector等等这些只要百度一下都能找到对应的官网和使用方法,我是是用的MySQLdb的方式进行连接的。整个使用过程包括:数据库连接、数据库操作
(一)数据库连接
MySQLdb提供了connect方法进行数据库连接,可以接收多个参数,这里只介绍比较常用的。conn=MySQLdb.connect(host="localhost",user="root",passwd="jb51",db="test",charset="utf8")
其中:host:数据库主机名.默认是用本地主机
user:数据库登陆名.默认是当前用户
passwd:数据库登陆的秘密.默认为空
db:要使用的数据库名.没有默认值
port:MySQL服务使用的TCP端口.默认是3306
charset:数据库编码
我们通常只需要填写用户、密码、数据库就可以,还有更多参数可以去上面的官网查看。
(二)对数据库进行操作
对数据库的操作是用的是cursor()方法,这个方法是用Python写的,可以比较让我们轻松的是用MySQL。cursor方法主要包括两类操作:执行命令和接收返回值
主要的命令有:execute(query,args)执行单条sql语句,excutemany(query,args)执行单挑sql语句,但是重复执行参数列表里的参数,注意参数要用元组来表示,fetchall()返回全部结果集。
# -*- coding: UTF-8 -*- import MySQLdb as mdb #连接mysql,获取连接的对象 con = mdb.connect('localhost', 'root', 'root', 'test'); #仍然是,第一步要获取连接的cursor对象,用于执行查询 cur = con.cursor() #类似于其他语言的query函数,execute是python中的执行查询函数 cur.execute("SELECT * FROM Writers") #使用fetchall函数,将结果集(多维元组)存入rows里面 rows = cur.fetchall() #依次遍历结果集,发现每个元素,就是表中的一条记录,用一个元组来显示 for row in rows: print row con.close()
再看一个官方的例子:
c=db.cursor() max_price=5 c.execute("""SELECT spam, eggs, sausage FROM breakfast WHERE price < %s""", (max_price,))注意这里的参数用的是元组。
多次插入数据:
c.executemany( """INSERT INTO breakfast (name, spam, eggs, sausage, price) VALUES (%s, %s, %s, %s, %s)""", [ ("Spam and Sausage Lover's Plate", 5, 1, 8, 7.95 ), ("Not So Much Spam Plate", 3, 2, 0, 3.95 ), ("Don't Wany ANY SPAM! Plate", 0, 4, 3, 5.95 ) ] )
二、Pandas和MySQL结合
在得到了数据库的连接con后,可以是用Pandas的read_sql()方法将数据读入为Dataframe结构的数据。import pandas as pd
import MySQLdb
mysql_cn= MySQLdb.connect(host='localhost', port=3306,user='myusername', passwd='mypassword', db='mydb')
df = pd.read_sql('select * from test;', con=mysql_cn)
mysql_cn.close()
参考:http://www.jb51.net/article/34102.htm
http://www.jb51.net/article/57290.htm
相关文章推荐
- 利用 Python 只连接一次 MySQL
- python远程连接mysql以及pandas.DataFrame.to_sql写入数据库
- python&pandas 与mysql 连接
- Python 2.7_pandas连接MySQL数据处理_20161229
- 利用pandas连接mysql,oracle数据库进行查询和插入操作
- python&pandas 与mysql 连接
- python中利用MySQLdb操作mysql(二)
- python连接mysql
- Python连接MySQL的实例代码
- Python连接MySQL的实例代码
- python连接mysql时 出现DeprecationWarning: the sets module is deprecated 警告
- 关于MySQLdb的一些新发现(使用python连接mysql的库)
- 如何利用"c3p0"配置Oracle和MySQL连接
- 关于hibernate 利用c3p0连接mysql 数据库
- 利用python将hive查询结果保存到mysql
- python连接mysql
- hibernate与mysql连接,HQL语句利用聚集函数报错
- 安装MySQL-python(MySQLdb)时报错,找不到libmysqlclient_r.so.16动态连接库
- python连接mysql-mysqldb
- How to use perl to connect MySQL?(利用Perl连接MySQL)