Jusene's Blog

python3 pymysql连接mysql

字数统计: 608阅读时长: 2 min
2017/05/26 Share

PyMysql

PyMysql是为了替代Python-MySQL而生,纯python打造,Python-MySQL虽然有更好的性能,但是在python3中已经不再受到支持,而PyMySQL接口兼容Python-MySQL,安装方便。

简单安装

1
pip install pymysql

如果没法联网,需要进行离线安装,例如:

1
pip install pymysql-x.x.x.tar.gz

导入

1
import pymysql

连接

1
def connect_mysql_db():
2
	return pymysql.connect(host='127.0.0.1',
3
							port=3306,
4
							user='root',
5
							password='passwd',
6
							database='db_name',
7
							charset='utf8')

查询

1
def query_name(name):
2
	sql_str=("select * from all_name where name=%s" % (name))
3
	logging.info(sql_str)
4
	con=connect_mysql_db()
5
	cur=con.cursor()
6
	cur.execute(sql_str)
7
	rows=cur.fetchall()
8
	cur.close()
9
	con.close()
10
11
	assert len(rows) == 1,'Fatal Error: name dose not exists'
12
	return rows[0][0]

批量插入

1
ids=[('1234','CAD'),('5678','HKD')]
2
3
con=connect_mysql_db()
4
cur=con.cursor()
5
try:
6
	cur.executemany('insert into t_order (f_id,f_type,f_time) values (%s,%s,now())',ids)
7
	assert cur.rowcount == len(ids),'my error message'
8
	con.commit()
9
except Exception as e:
10
	con.rollback()
11
	logging.exception('insert operation error')
12
finally:
13
	cur.close()
14
	con.close()

较常见的参数

连接:

  • host:数据库主机名.默认是用本地主机.
  • user:数据库登陆名.默认是当前用户.
  • passwd:数据库登陆的秘密.默认为空.
  • db:要使用的数据库名.没有默认值.
  • port:MySQL服务使用的TCP端口.默认是3306.
  • charset:数据库编码.

连接对象也提供了对事务操作的支持,标准的方法:

  • commit() 提交
  • rollback() 回滚

执行sql语句和接收返回值:

  • cursor=conn.cursor()
  • n=cursor.execute(sql,param)

cursor用来执行命令的方法:

  • callproc(self, procname, args):用来执行存储过程,接收的参数为存储过程名和参数列表,返回值为受影响的行数
  • execute(self, query, args):执行单条sql语句,接收的参数为sql语句本身和使用的参数列表,返回值为受影响的行数
  • executemany(self, query, args):执行单条sql语句,但是重复执行参数列表里的参数,返回值为受影响的行数
  • nextset(self):移动到下一个结果集

cursor用来接收返回值的方法:

  • fetchall(self):接收全部的返回结果行.
  • fetchmany(self, size=None):接收size条返回结果行.如果size的值大于返回的结果行的数量,则会返回cursor.arraysize条数据.
  • fetchone(self):返回一条结果行.
  • scroll(self, value, mode=’relative’):移动指针到某一行.如果mode=’relative’,则表示从当前所在行移动value条,如果mode=’absolute’,则表示从结果集的第一行移动value条.
CATALOG
  1. 1. PyMysql
    1. 1.1. 简单安装
    2. 1.2. 导入
    3. 1.3. 连接
    4. 1.4. 查询
    5. 1.5. 批量插入
    6. 1.6. 较常见的参数