安装
1
| pip3 install pymysql -i http://pypi.douban.com/simple
|
使用
1. 执行sql
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
| import pymysql
conn = pymysql.connect(host='127.0.0.1', port=3306, user='root', passwd='123', charset='utf8', db='db1')
cursor = conn.cursor() cursor = conn.cursor(cursor=pymysql.cursors.DictCursor)
r = cursor.execute("'update t1 set name='John' where id=5")
r = cursor.execute("'update t1 set name='John' where id=%s", (5,))
r = cursor.executemany("insert into t1(name) values(%s)", ('张三','李四','王五'))
conn.commit()
cursor.close()
conn.close()
|
2. 获取新创建数据的自增ID
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| import pymysql conn = pymysql.connect(host='127.0.0.1', port=3306, user='root', passwd='123', charset='utf8', db='db1')
cursor = conn.cursor()
cursor.execute('insert into t1(name) values (%s)', ('鲤鱼',))
print('***',cursor.lastrowid) cursor.executemany('insert into t1(name) values(%s)', ('测试', '系统', '运维'))
newid = cursor.lastrowid print('****', newid)
conn.commit() cursor.close() conn.close()
|
3. 获取查询数据
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
| import pymysql conn = pymysql.connect(host='127.0.0.1', port=3306, user='root', passwd='123', charset='utf8', db='db1')
cursor = conn.cursor()
cursor.execute('select * from t1')
r1 = cursor.fetchone() print(r1)
r2 = cursor.fetchmany(3) print(r2)
r3 = cursor.fetchall() print(r3)
conn.commit() cursor.close() conn.close()
|
注:在fetch数据时按照顺序进行,可以使用cursor.scroll(num,mode)来移动游标位置,如:
- cursor.scroll(1,mode=’relative’) # 相对当前位置移动1行
- cursor.scroll(2,mode=’absolute’) # 相对绝对位置移动2行
4. fetch数据类型
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| import pymysql
conn = pymysql.connect(host='172.16.100.153', user='root', password='qingdao@123QWE', charset='utf8', db='db2')
cursor = conn.cursor(cursor=pymysql.cursors.DictCursor)
cursor.execute('select * from t1') r1 = cursor.fetchone() print(r1)
conn.commit() cursor.close() conn.close()
|
5. 执行存储过程
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| import pymysql
conn = pymysql.connect(host='172.16.100.153', user='root', password='qingdao@123QWE', db='db2') cursor = conn.cursor(cursor=pymysql.cursors.DictCursor)
cursor.callproc('p5', (1,))
ret = cursor.fetchall()
cursor.execute('select @_p5_0') result = cursor.fetchall()
conn.commit() cursor.close() conn.close()
print(ret) print(result)
|